WO2024201835A1 - ロボット制御装置及びロボット制御システム - Google Patents

ロボット制御装置及びロボット制御システム Download PDF

Info

Publication number
WO2024201835A1
WO2024201835A1 PCT/JP2023/012943 JP2023012943W WO2024201835A1 WO 2024201835 A1 WO2024201835 A1 WO 2024201835A1 JP 2023012943 W JP2023012943 W JP 2023012943W WO 2024201835 A1 WO2024201835 A1 WO 2024201835A1
Authority
WO
WIPO (PCT)
Prior art keywords
variable
value
processor
robot
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2023/012943
Other languages
English (en)
French (fr)
Inventor
尚 大島
豪 稲葉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Priority to CN202380095971.6A priority Critical patent/CN120883155A/zh
Priority to JP2023543023A priority patent/JP7534552B1/ja
Priority to DE112023005683.8T priority patent/DE112023005683T5/de
Priority to PCT/JP2023/012943 priority patent/WO2024201835A1/ja
Priority to TW113108665A priority patent/TW202438264A/zh
Publication of WO2024201835A1 publication Critical patent/WO2024201835A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1674Program controls characterised by safety, monitoring, diagnostic

Definitions

  • This disclosure relates to a robot control device and a robot control system.
  • robot program commands have the function of communicating with CNC (computerized numerical control) industrial machines and accessing CNC setting variables. By obtaining or writing setting variables with these commands, the robot or robot control device and the CNC industrial machines can confirm and request each other's status.
  • Access to variables for CNC settings requires the execution of an access command in the robot program. For this reason, the CNC industrial machine cannot make requests to the robot or robot control device at any time, but must wait until the access command is executed in the robot or robot control device. For the same reason, it is difficult for the robot or robot control device and the industrial machine to monitor each other's status. To make requests at any time and monitor the other's status, it is possible to synchronize the robot and CNC industrial machine. In order to synchronize the robot and CNC industrial machine, multiple signals must be prepared. However, CNC variables are usually 8-byte or 16-byte variables. For this reason, if the robot or robot control device obtains one variable to monitor the status of one of the CNC industrial machines, the amount of communication data becomes enormous and the communication cycle becomes slow.
  • the problem that the embodiments of the present disclosure aim to solve is to provide a robot control device and a robot control system that can periodically read (acquire) or write variables for setting industrial machines and use them as variable data for the robot.
  • the robot control device of the embodiment includes an acquisition unit, a storage unit, and an allocation memory unit.
  • the acquisition unit repeatedly acquires variable values from an industrial machine.
  • the storage unit writes the variable values acquired by the acquisition unit to a storage area that stores the variable values.
  • the allocation memory unit stores allocation data indicating the location or address of the storage area to which the variable is written.
  • This disclosure enables a robot control device to read (acquire) or write variables of industrial machinery and use them in the same way as variable data of a robot.
  • FIG. 1 is a block diagram showing an example of a main configuration of a control system according to an embodiment and components included in the control system.
  • 1 is a block diagram showing an example of main functions and main configurations of a control system according to an embodiment
  • 4 is a flowchart showing an example of processing according to the first embodiment performed by a processor of the control device in FIG. 1 .
  • 4 is a flowchart showing an example of processing according to the first and second embodiments by a processor of the industrial machine in FIG. 1 .
  • 4 is a flowchart showing an example of processing according to the first and second embodiments by a processor of the control device in FIG. 1 .
  • 4 is a flowchart showing an example of processing according to the first and second embodiments by a processor of the teaching device in FIG.
  • the processor 110 functions as, for example, an allocation unit 111, a data conversion unit 112, a startup unit 113, a stop unit 114, and a target unit 115.
  • the starting unit 113 starts the robot 300 .
  • the stopping unit 114 stops the robot 300 .
  • the RAM 130 includes, for example, two types of memory areas: a memory area 131 and an IO memory area 132.
  • the memory area 131 is a memory area for storing data other than IO data.
  • the IO memory area 132 is a memory area for storing IO data, and is a memory area capable of storing IO data. The IO data will be described later.
  • the memory area 131 and the IO memory area 132 may be physically present on the same memory, or may be physically present on different memories. However, in the first embodiment, the RAM 130 does not need to include the IO memory area 132.
  • a storage device other than the RAM 130 such as the ROM 120 or the auxiliary storage device 140 , may include the IO memory area 132 .
  • the RAM 130 is also allocated a startup area 133 and an alarm area 134.
  • the startup area 133 and the alarm area 134 will be described later.
  • the auxiliary storage device 140 is an auxiliary storage device of a computer with the processor 110 at its core.
  • the auxiliary storage device 140 is, for example, an EEPROM (electrical erasable programmable read-only memory), a HDD (hard disk drive), or flash memory.
  • the auxiliary storage device 140 stores, for example, system software and application software from among the above programs.
  • the auxiliary storage device 140 also stores data used by the processor 110 in performing various processes, data generated by the processes in the processor 110, various setting values, etc.
  • the auxiliary storage device 140 and the like also store parameter information, allocation information and first execution information, which will be described later.
  • the allocation information and first execution information may be stored in a device other than the control device 100.
  • the parameter information is information that stores, for example, at least one of settings related to obtaining the setting variables 241 from the industrial machine 200 and settings related to writing the setting variables 241 to the industrial machine 200.
  • the value of each setting in the parameter information is set, for example, by a user, administrator, or designer of the control system 1. A default value may be set for each setting in the parameter information.
  • the value of each setting in the parameter information may be changeable or unchangeable.
  • the auxiliary storage device 140 may store multiple pieces of parameter information.
  • the control interface is an interface through which the control device 100 communicates with the robot 300.
  • the control device 100 controls the robot 300 by communicating with the robot 300 via the control interface 150.
  • the communication interface 160 is an interface through which the control device 100 communicates with the industrial machine 200, the teaching device 400, and the like.
  • the communication interface 160 communicates, for example, via a network.
  • the communication interface 160 communicates without using a network.
  • the network is, for example, a communication network including a LAN (local area network) or the Internet.
  • the control device 100 communicates with the industrial machine 200, the teaching device 400, and the like via the communication interface 160.
  • Bus 170 includes a control bus, an address bus, a data bus, etc., and transmits signals exchanged between each part of the control device 100.
  • the industrial machine 200 is, for example, a machine tool or a peripheral device of a machine tool. Alternatively, the industrial machine 200 may be some other machine.
  • the control method of the industrial machine 200 is CNC. Alternatively, the control method of the industrial machine 200 may be NC or some other method.
  • the industrial machine 200 includes, as an example, a processor 210, a ROM 220, a RAM 230, an auxiliary storage device 240, a communication interface 250, an input device 260, and a display device 270.
  • a bus 280 and the like connect these various parts.
  • the processor 210 is the central part of the computer that performs calculations and control processes necessary for the operation of the industrial machine 200, and performs various calculations and processes.
  • the processor 210 is, for example, a CPU, MPU, SoC, DSP, GPU, ASIC, PLD, or FPGA. Alternatively, the processor 210 is a combination of two or more of these. The processor 210 may also be a combination of these with a hardware accelerator or the like.
  • the processor 210 controls each part to realize various functions of the industrial machine 200 based on programs such as firmware, system software, and application software stored in the ROM 220 or the auxiliary storage device 240.
  • the processor 210 also executes processes described below based on the programs. A part or all of the programs may be incorporated into the circuitry of the processor 210.
  • the ROM 220 and the RAM 230 are main memory devices of the computer with the processor 210 at its core.
  • the ROM 220 is a non-volatile memory used exclusively for reading data.
  • the ROM 220 stores, for example, firmware among the above programs.
  • the ROM 220 also stores data used by the processor 210 when performing various processes.
  • the RAM 230 is a memory used for reading and writing data.
  • the RAM 230 is used as a work area for storing data that is temporarily used when the processor 210 performs various processes.
  • the RAM 230 is typically a volatile memory.
  • the auxiliary storage device 240 is an auxiliary storage device of a computer with the processor 210 at its core.
  • the auxiliary storage device 240 is, for example, an EEPROM, a HDD, or a flash memory.
  • the auxiliary storage device 240 stores, for example, system software and application software from among the above programs.
  • the auxiliary storage device 240 also stores data used by the processor 210 when performing various processes, data generated by the processes in the processor 210, various setting values, etc.
  • the auxiliary storage device 240 or RAM 230 stores the setting variables 241.
  • the user of the industrial machine 200 can change the values of the setting variables 241.
  • the setting variables 241 determine various settings of the industrial machine 200 or the control system 1.
  • the setting variables 241 behave like global variables or external variables, for example.
  • the auxiliary storage device 240 or RAM 230 may store multiple setting variables 241.
  • One setting variable 241 may include multiple values. In this case, each of the multiple values determines a setting.
  • the setting variables 241 are shown as being stored in the auxiliary storage device 240 as an example.
  • the above programs include, for example, an industrial machine program 242 and a ladder program 243.
  • the industrial machine program 242 and the ladder program 243 are described as being stored in the auxiliary storage device 240 as an example.
  • the industrial machine program 242 is, for example, a program for the industrial machine 200 to perform processing and is created by an end user.
  • the ladder program 245 performs, for example, processing for operating the industrial machine 200 and for linking with external devices.
  • the input device 260 accepts operations by an operator of the industrial machine 200.
  • the input device 260 is, for example, a keyboard, a keypad, a touchpad, a mouse, or a controller.
  • the input device 260 may also be a device for voice input.
  • the bus 280 includes a control bus, an address bus, a data bus, etc., and transmits signals exchanged between each part of the industrial machine 200.
  • the processor 410 is the central part of the computer that performs the calculations and control processes necessary for the operation of the teaching device 400, and performs various calculations and processes.
  • the processor 410 is, for example, a CPU, MPU, SoC, DSP, GPU, ASIC, PLD, or FPGA. Alternatively, the processor 410 is a combination of two or more of these. The processor 410 may also be a combination of these with a hardware accelerator.
  • the processor 410 controls each part to realize various functions of the teaching device 400 based on programs such as firmware, system software, and application software stored in the ROM 420 or the auxiliary storage device 440.
  • the processor 410 also executes the processes described below based on the programs. Note that a part or all of the programs may be incorporated into the circuitry of the processor 410.
  • the auxiliary storage device 440 is an auxiliary storage device of a computer with the processor 410 at its core.
  • the auxiliary storage device 440 is, for example, an EEPROM, a HDD, or a flash memory.
  • the auxiliary storage device 440 stores, for example, system software and application software among the above programs.
  • the auxiliary storage device 440 also stores data used by the processor 410 when performing various processes, data generated by the processes in the processor 410, various setting values, etc.
  • the communication interface 450 is an interface through which the teaching device 400 communicates with the control device 100 and the like.
  • the communication interface 450 communicates, for example, via the network described above. Alternatively, the communication interface 450 communicates without using a network.
  • the teaching device 400 communicates with the control device 100 and the like via the communication interface 450.
  • the input device 460 accepts operations by an operator of the teaching device 400.
  • the input device 460 is, for example, a keyboard, a keypad, a touchpad, a mouse, or a controller.
  • the input device 460 may also be a device for voice input.
  • the display device 470 displays a screen for notifying the operator of the teaching device 400 of various information.
  • the display device 470 is, for example, a display such as a liquid crystal display or an organic EL display.
  • a touch panel can also be used as the input device 460 and the display device 470. That is, the display panel of the touch panel can be used as the display device 470, and the pointing device of the touch panel that allows touch input can be used as the input device 460.
  • the bus 480 includes a control bus, an address bus, a data bus, etc., and transmits signals exchanged between each part of the teaching device 400.
  • FIGs. 3, 5, and 7 are flowcharts showing an example of the process by the processor 110 of the control device 100.
  • the processor 110 executes the processes of Figs. 3, 5, and 7 based on a program stored in, for example, the ROM 120 or the auxiliary storage device 140.
  • Figs. 4 and 8 are flowcharts showing an example of the process by the processor 210 of the industrial machine 200.
  • the processor 210 executes the process of Fig.
  • Fig. 6 is a flowchart showing an example of the process by the processor 410 of the teaching device 400.
  • the processor 410 executes the process of Fig. 6 based on a program stored in, for example, the ROM 420 or the auxiliary storage device 440.
  • the processor 110 of the control device 100 executes, for example, the processes of FIG. 3, FIG. 5, and FIG. 7 in parallel or in parallel.
  • the processor 210 of the industrial machine 200 executes, for example, the processes of FIG. 4 and FIG. 8 in parallel or in parallel.
  • the processor 110 of the control device 100 determines whether or not to acquire parameter information.
  • the processor 110 determines, for example, to acquire parameter information at every predetermined time TP.
  • the processor 110 determines to acquire parameter information when the current time is after the predetermined time CT.
  • the processor 110 determines to acquire parameter information when an input instructing the processor 110 to acquire parameter information is received.
  • the input instructing the processor 110 to acquire parameter information is, for example, an input from a program executed by the control device 100.
  • the input instructing the processor 110 to acquire parameter information may be an input from outside the control device 100.
  • the processor 110 determines, for each piece of parameter information, whether or not to acquire the parameter information. Alternatively, if the processor 110 determines to acquire the parameter information, it determines which parameter information to acquire.
  • the processor 110 may use a different time TP for each piece of parameter information to be acquired.
  • the processor 110 determines that the parameter information is to be acquired when the time TP corresponding to the parameter information has elapsed since the acquisition of the parameter information. Note that the time PT corresponding to the parameter information is, for example, included in the parameter information.
  • first parameter information and second parameter information.
  • the time TP corresponding to the first parameter information is time TP1.
  • the first parameter information includes time TP1.
  • the time TP corresponding to the second parameter information is time TP2.
  • the second parameter information includes time TP2.
  • the processor 110 determines to acquire the first parameter information. If the time elapsed since the second parameter information was last acquired is equal to or greater than time TP2, the processor 110 determines to acquire the second parameter information.
  • the processor 110 may use a different time CT for each piece of parameter information acquired.
  • step ST101 determines No in step ST101 and repeats the processing of step ST101.
  • the processor 110 determines Yes in step ST101 and proceeds to step ST102.
  • step ST102 the processor 110 acquires parameter information from the auxiliary storage device 140 or the like. If there is a plurality of pieces of parameter information, the processor 110 acquires, for example, the parameter information determined to be acquired in step ST101.
  • step ST103 the processor 110 determines whether to acquire the setting variables 241 from the industrial machine 200.
  • the parameter information includes, for example, information indicating whether to acquire the setting variables 241 from the industrial machine 200 or to write the setting variables 241 to the industrial machine 200 (hereinafter referred to as "setting information").
  • the processor 110 determines whether to acquire the setting variables 241 from the industrial machine 200 by referring to the setting information. If the processor 110 determines to acquire the setting variables 241 from the industrial machine 200, it determines Yes in step ST103 and proceeds to step ST104.
  • the parameter information includes the setting information. Therefore, in step ST101, determining whether to acquire parameter information indicating that the setting variables 241 are to be acquired from the industrial machine 200 can also be said to be determining whether to acquire the setting variables 241 from the industrial machine 200. Also, in step ST101, determining whether to acquire parameter information indicating that the setting variables 241 are to be written to the industrial machine 200 can also be said to be determining whether to write the setting variables 241 to the industrial machine 200.
  • step ST104 the processor 110 generates a variable request.
  • the variable request is information that requests the industrial machine 200 to transmit the setting variables 241.
  • the variable request may also include designation information that designates the setting variables 241 to be transmitted.
  • the processor 110 acquires the designation information from, for example, the parameter information acquired in step ST102.
  • the processor 110 then generates a variable request that includes the designation information.
  • step ST105 the processor 110 instructs the communication interface 160 to send a variable request to the industrial machine 200.
  • the communication interface 160 Upon receiving this instruction to send, the communication interface 160 sends the variable request to the industrial machine 200.
  • the sent variable request is received by the communication interface 250 of the industrial machine 200.
  • step ST121 of FIG. 4 the processor 210 of the industrial machine 200 determines whether or not a variable request has been received by the communication interface 250. If a variable request has not been received, the processor 210 determines No in step ST121 and proceeds to step ST122.
  • step ST122 the processor 210 determines whether or not a write request has been received by the communication interface 250. If a write request has not been received, the processor 210 determines No in step ST122 and returns to step ST121. Thus, the processor 210 goes into a standby state in which steps ST121 and ST122 are repeated until a variable request or a write request is received.
  • processor 210 If the processor 210 receives a variable request while in a standby state in which it repeats steps ST121 and ST122, it determines Yes in step ST121 and proceeds to step ST123.
  • step ST123 the processor 210 acquires the setting variables 241 from the auxiliary storage device 240 or the RAM 230.
  • the processor 210 acquires, for example, the setting variables 241 targeted by the specification information included in the variable request received in step ST121. Alternatively, the processor 210 may acquire all of the setting variables 241.
  • step ST124 the processor 210 generates a variable response.
  • the variable response is information that includes the setting variables 241 acquired in step ST123.
  • step ST125 the processor 210 instructs the communication interface 160 to transmit the variable response generated in step ST124 to the industrial machine 200 that sent the variable request.
  • the communication interface 160 Upon receiving this transmission instruction, transmits the variable response to the industrial machine 200.
  • the transmitted variable response is received by the communication interface 250 of the industrial machine 200.
  • the processor 210 returns to step ST121.
  • step ST106 of FIG. 3 the processor 110 of the control device 100 waits for a variable response to be received by the communication interface 250. If a variable response is received, the processor 110 judges Yes in step ST106 and proceeds to step ST107.
  • the processor 110 acquires allocation information from the auxiliary storage device 140 or the like.
  • the allocation information stores information about the monitored variables.
  • the monitored variables are the setting variables 241 or variables for inputting the values of the setting variables 241.
  • the monitored variables are variables that may be subject to monitoring in the process shown in FIG. 5.
  • the processor 110 allocates the monitored variables to the RAM 130 or the like, for example, when starting the processes shown in FIG. 3 and FIG. 5 or when the control device 100 is started.
  • the auxiliary storage device 140 may store the setting variables 241.
  • the number of monitored variables may be one or more.
  • the allocation information includes information indicating which monitoring variable each setting variable 241 is to be stored in.
  • the allocation information includes information indicating which part of which monitoring variable each setting variable 241 is to be stored in.
  • the allocation information defines which monitoring variable is to be stored in, for example, by the address of a storage area such as the RAM 130 to which the monitoring variable is assigned or the auxiliary storage device 140 that stores the monitoring variable.
  • the allocation information includes information indicating which address of the storage area each setting variable 241 is to be stored in.
  • the allocation information defines which monitoring variable is to be stored in, for example, by the variable name.
  • the variable name is an example of the location of the storage area where the setting variable 241 is stored.
  • the allocation information may also define the storage area of multiple monitoring variables by one address.
  • the allocation information defines the storage area by the address of the beginning of the multiple monitoring variables and the length from the beginning to the end of the multiple monitoring variables. Note that the multiple monitoring variables are assumed to be consecutively arranged in the storage area.
  • RAM 230 or auxiliary storage device 240 is an example of a storage area that stores the values of variables.
  • the area that stores monitored variables is an example of a storage area that stores the values of variables. Therefore, the allocation information is an example of assignment data that indicates the location or address of the storage area where the values of the variables are stored.
  • the allocation information is an example of assignment data that stores the location or address of the storage area that stores the values of the multiple variables.
  • allocation information that defines the storage areas for multiple monitored variables by one address is an example of assignment data that stores one address that indicates the storage area that stores the values of the multiple variables.
  • the auxiliary storage device 140 that stores the allocation information is an example of an assignment memory unit that stores the assignment data.
  • step ST108 the processor 110 inputs (stores) (writes) the setting variable 241 received in step ST106 into the monitoring variable indicated by the allocation information. If the allocation information indicates which address the setting variable 241 is to be stored in, the processor 110 inputs (stores) the setting variable 241 into the address indicated in the allocation information. After processing step ST108, the processor 110 returns to step ST101. As described above, the processor 110 repeats steps ST101 to ST108. As a result, the processor 110 repeatedly acquires the setting variable 241 from the industrial machine 200 periodically or irregularly, and inputs it into the monitoring variable.
  • the processor 110 functions as an example of a storage unit that writes the value of the variable acquired by the acquisition unit into a storage area that stores the value of the variable.
  • the processor 110 does not have to perform the process of step ST101. In this case, the processor 110 starts the process shown in FIG. 3 from step ST102. Then, after the process of step ST108, the processor 110 returns to step ST102. In this case, the processor 110 repeatedly acquires the setting variable 241 from the industrial machine 200 by repeating steps ST102 to ST108 without going through the judgment of step ST101.
  • the processor 110 functions as an example of an acquisition unit that repeatedly acquires variable values from the industrial machine by executing the processes of steps ST101 to ST108 in FIG. 3.
  • step ST131 of FIG. 5 the processor 110 of the control device 100 checks each monitored variable. That is, the processor 110 obtains the value of each monitored variable.
  • step ST132 processor 110 determines whether the value of each monitored variable has changed since it was last acquired. If the value of any monitored variable has changed since it was last acquired, processor 110 determines Yes in step ST132 and proceeds to step ST133. On the other hand, if the value of any monitored variable has not changed since it was last acquired, processor 110 determines No in step ST132 and proceeds to step ST134.
  • step ST133 the processor 110 generates a display request.
  • the display request includes the monitored variables or the values of the monitored variables.
  • the display request is information that requests the teaching device 400 to display the values of the monitored variables.
  • the processor 110 instructs the communication interface 160 to transmit the display request to the industrial machine 200.
  • the communication interface 160 Upon receiving this transmission instruction, transmits the display request to the industrial machine 200.
  • the transmitted display request is received by the communication interface 450 of the industrial machine 200.
  • the processor 410 of the teaching device 400 that receives the display request displays the monitored variable screen on the display device 470.
  • the monitored variable screen includes, for example, an image showing the value of the monitored variable whose value has been changed.
  • step ST141 of FIG. 6 the processor 410 of the teaching device 400 determines whether or not a display request has been received by the communication interface 450. If a display request has not been received, the processor 410 determines No in step ST141 and proceeds to step ST142.
  • processor 410 determines whether or not to change the value of the variable.
  • Processor 410 determines that the value of the variable is to be changed when, for example, an operational input is made to instruct the change of the value of the variable displayed on input device 460. If processor 410 does not determine that the value of the variable is to be changed, it determines No in step ST142 and returns to step ST141. Thus, processor 410 enters a standby state in which it repeats steps ST141 and ST142 until a display request is received or it is determined that the value of the variable is to be changed.
  • step ST141 If a display request is received while in a standby state in which steps ST141 and ST142 are repeated, the processor 410 determines Yes in step ST141 and proceeds to step ST143.
  • step ST143 the processor 410 generates an image corresponding to the variable screen.
  • the processor 410 then instructs the display device 470 to display this generated image.
  • the display device 470 displays the variable screen.
  • FIG. 9 is a diagram showing an example of a variable screen SC1a displayed on the display device 470.
  • the variable screen is a screen that includes the values of the monitoring variables included in the display request.
  • the variable screen allows an operation to instruct the user to change the displayed variable values.
  • the variable screen also allows an operation to instruct how the variable values are to be changed.
  • the operator of the teaching device 400 can give these instructions by, for example, operating the input device 460.
  • the variable screen SC1a includes an area AR1 as an example.
  • Area AR1 shows the numerical value of each variable.
  • Data [1] through Data [16] show the numbers assigned to each variable. However, in the state shown in Figure 9, only variables Data [1] and Data [2] exist. Variables Data [3] through Data [16] are unused or do not exist.
  • Each of the variables displayed in area AR1 can be selected using the input device 460 or the like.
  • each variable displayed in area AR1 can be changed using input device 460 or the like.
  • processor 410 determines in step ST142 of FIG. 6 that the value of the variable is to be changed.
  • the change information described below includes the content of the change in value caused by the operation.
  • step ST143 the processor 410 returns to step ST141.
  • step ST143 the processor 410 functions as an example of a display unit that cooperates with the display device 470 to display the value of the variable.
  • step ST142 determines Yes in step ST142 and proceeds to step ST144.
  • step ST144 the processor 410 generates a change request.
  • the change request includes change information indicating the content of the change to the variable.
  • the change request is information that instructs the control device 100 to change the value of the monitored variable in accordance with the change information.
  • the processor 410 instructs the communication interface 450 to send the change request to the control device 100.
  • the communication interface 450 sends the change request to the control device 100.
  • the sent change request is received by the communication interface 160 of the control device 100.
  • the processor 410 returns to step ST141.
  • the processor 410 functions as an example of a change unit that changes the value of a variable by executing the processing of step ST144.
  • step ST151 of FIG. 7 the processor 110 of the control device 100 waits for a change request to be received by the communication interface 160. If a change request is received, the processor 110 judges Yes in step ST151 and proceeds to step ST152.
  • step ST152 the processor 110 changes the value of the monitored variable according to the change information in the change request received in step ST151. After processing step ST152, the processor 110 returns to step ST151.
  • the processor 110 acquires first execution information from the auxiliary storage device 140 or the like.
  • the first execution information stores, for each monitored variable, what processing is executed when the monitored variable reaches a certain value.
  • the first execution information stores, for example, information identifying the monitored variable, the value, and information indicating the processing to be executed in association with each other.
  • the first execution information indicates that the associated processing is executed when the value of the monitored variable reaches the associated value.
  • the first execution information stores that the robot 300 is started when the monitoring variable stored in the start-up area 133 becomes a predetermined value.
  • the first execution information stores that the robot 300 is stopped when the monitoring variable stored in the alarm area 134 becomes a predetermined value. Note that the monitoring variable stored in the alarm area 134 indicates that an alarm has occurred in the industrial machine 200 when the value of the monitoring variable becomes the predetermined value.
  • step ST135 processor 110 determines whether or not to execute a process corresponding to the value of setting variable 241. That is, for example, for each monitored variable, if the value is the associated value in the first execution information, processor 110 determines to execute a process associated with that monitored variable and that value in the first execution information. If processor 110 does not determine to execute the process, it determines No in step ST135 and returns to step ST131. On the other hand, if processor 110 determines to execute the process, it determines Yes in step ST135 and proceeds to step ST136.
  • 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.
  • processor 110 monitors the monitored variable, and executes the specified processing when the value of the monitored variable becomes a predetermined value.
  • processor 110 inputs the value of setting variable 241 to the monitored variable by the processing in FIG. 3. Therefore, processor 110 monitors the setting variable by the processing in FIG. 3 and FIG. 5, and executes the specified processing when the value of the setting variable becomes a predetermined value.
  • the monitoring variable in this example is a monitoring variable that stores a setting variable 241 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.
  • the stopping unit 114 stops the robot 300. If the processor 110 determines in step ST134 that the value of the monitoring variable in this example has become 1, it stops the robot 300 in step ST135. The processor 110 stops the robot 300, for example, by stopping the robot program.
  • the predetermined process include starting the robot 300, causing the robot 300 to perform a predetermined operation, executing various robot programs, and the control device 100 executing a predetermined process.
  • the processor 110 starts the robot 300, for example, by executing a robot program that includes a start command.
  • the start unit 113 starts the robot 300.
  • the predetermined value may be a range.
  • the predetermined value may be 1 to 3.
  • the processor 110 executes the predetermined process when the value of the monitored variable is between 1 and 3.
  • predetermined values there may be multiple predetermined values. And there may be multiple predetermined processes. For example, suppose there are two predetermined values, a first predetermined value and a second predetermined value. And there are two predetermined processes, a first predetermined process and a second predetermined process. And the process corresponding to the first predetermined value is the first predetermined process, and the process corresponding to the second predetermined value is the second predetermined process.
  • the processor 110 executes the first predetermined process when the value of the monitored variable is the first predetermined value. And the processor 110 executes the second predetermined process when the value of the monitored variable is the second predetermined value.
  • the value of the monitored variable and the specified value are not limited to being numeric.
  • the value of the monitored variable and the specified value may be, for example, a character string, a date, a Boolean type, a pointer, an object, or a structure.
  • the specified value may be a value indicating the absence of a value, such as null or nothing.
  • the specified processing will be further explained using FIG. 10.
  • the value of a certain setting variable 241 (hereinafter referred to as the "target variable") changes when the industrial machine 200 performs a certain action or when a certain operation is performed on the industrial machine 200 (hereinafter referred to as the "value change trigger").
  • the control system 1 can cause the control device 100 to perform some specified processing in response to the value change trigger.
  • FIG. 10 Such an example will be explained using FIG. 10.
  • FIG. 10 is a block diagram for explaining an example of the operation of the control device 100 and the industrial machine 200.
  • the industrial machine 200 is provided with, for example, a start button 261 as an input device 260.
  • the start button 261 is a button for starting and stopping the industrial machine 200.
  • the start button 261 When the start button 261 is operated while the industrial machine 200 is stopped, the industrial machine 200 starts and begins operation.
  • the start button 261 When the start button 261 is operated while the industrial machine 200 is operating, the industrial machine 200 stops.
  • the start button 261 When the start button 261 is operated while the industrial machine 200 is stopped, it outputs a start request signal.
  • the start button 261 When the start button 261 is operated while the industrial machine 200 is operating, it outputs a stop request signal.
  • the processor 210 receives input of the start request signal and the stop request signal.
  • the processor 210 When the processor 210 receives a start request signal, it changes the value of the setting variable 241 (target variable) to a value indicating that the industrial machinery 200 is operating. Conversely, when the processor 210 receives a stop request signal, it changes the value of the target variable to a value indicating that the industrial machinery 200 is stopped.
  • the operation of the start button 261 acts as a value change trigger, changing the value of this target variable.
  • the input of a start request signal or a stop request signal acts as a value change trigger, changing the value of this target variable.
  • the processor 210 also functions as an industrial startup unit 211 by executing a program stored in the ROM 220 or the auxiliary storage device 240.
  • the industrial startup unit 211 starts an industrial machinery program 242 in order to operate the industrial machinery 200 in response to the operation of the startup button 261.
  • the processor 110 of the control device 100 acquires the target variable via the communication interface 160, as described in the explanation of Figs. 3 and 4.
  • the control device 100 stores the acquired target variable or the value of the target variable in the start-up area 133 as a monitored variable.
  • the processor 110 monitors the change in the value of the target variable by monitoring the start-up area 133.
  • the processor 11 performs a predetermined process, for example, starting the robot 300.
  • the start-up unit 113 performs the startup.
  • the processor 11 performs a predetermined process, for example, stopping the robot 300.
  • the stop unit 114 performs the stop.
  • the operation of the start button 261 starts or stops not only the industrial machine 200 but also the robot 300.
  • the processor 110 functions as an example of an execution unit that executes a predetermined process corresponding to a predetermined value when the value of the variable written to the storage area is a predetermined value.
  • the processor 110 determines No in step ST103 in FIG. 3 and proceeds to step ST109.
  • step ST109 the processor 110 acquires the instruction variable.
  • the instruction variable is a variable that indicates the write content indicated by the instruction information described below.
  • the processor 110 uses the acquisition information in the parameter information acquired in step ST102 to determine which variable to acquire as the instruction variable.
  • the acquisition information is information that defines which variable to acquire as the instruction variable.
  • the processor 110 acquires the instruction variable, for example, from the memory area of the robot 300. Alternatively, the processor 110 may acquire the instruction variable from the RAM 130 or the auxiliary storage device 140, or an external device.
  • the value of the instruction variable is an example of a value stored in the storage area. Therefore, by executing the process of step ST109, the processor 110 functions as an example of a robot variable acquisition unit that acquires the value stored in the storage area.
  • the processor 110 In step ST110, the processor 110 generates target information.
  • the target information is information indicating the write target.
  • the write target indicates, for example, which setting variable 241 is the target to which a value is to be written (stored).
  • the target information indicates the write target or the position of the write target, for example, by a variable name or address.
  • the processor 110 determines the write target, for example, by using the target determination information in the parameter information acquired in step ST102.
  • the target determination information is information that determines which setting variable 241 is the target to which a value is to be written.
  • the target determination information determines the setting variable 241, for example, by a variable name or address.
  • the target determination information is an example of allocation data that indicates the variable of the industrial machine 200 that stores the value acquired by the robot variable acquisition unit.
  • the auxiliary storage device 140 that stores the target determination information is also an example of an allocation storage unit that stores the allocation data.
  • step ST111 the processor 110 generates instruction information.
  • the instruction information is information indicating the contents to be written to the setting variable 241.
  • the contents to be written indicated by the instruction information is, for example, the value of the instruction variable acquired in step ST109.
  • the target information is an example of variable designation data indicating the variable of the industrial machine to which the value is to be written.
  • step ST112 the processor 110 generates a write request.
  • the write request includes the target information generated in step ST110 and the instruction information generated in step ST111.
  • the write request is information that instructs the industrial machine 200 to write the content indicated in the instruction information to the target indicated in the target information.
  • step ST113 the processor 110 instructs the communication interface 160 to transmit the write request generated in step ST112 to the industrial machinery 200.
  • the communication interface 160 Upon receiving this transmission instruction, transmits the write request to the industrial machinery 200.
  • the transmitted write request is received by the communication interface 250 of the industrial machinery 200.
  • step ST122 determines Yes in step ST122 and proceeds to step ST126.
  • step ST126 the processor 210 writes the value indicated by the instruction information to the setting variable 241 to be written, which is stored in the auxiliary storage device 240 or RAM 230, etc., in accordance with the write request received in step ST122. If the value indicated by the instruction information differs from the value of the setting variable 241 to be written, the processor 210 changes the value by overwriting the value. However, if the value indicated by the instruction information and the value of the setting variable 241 to be written are the same, the processor 210 does not need to overwrite.
  • step ST127 the processor 210 generates a completion response.
  • the completion response is information indicating that writing of the value based on the write request has been completed.
  • step ST1208 the processor 210 instructs the communication interface 250 to transmit the completion response generated in step ST127 to the control device 100 that sent the write request. Upon receiving this instruction to transmit, the communication interface 250 transmits the completion response to the control device 100. The transmitted completion response is received by the communication interface 160 of the control device 100. After processing step ST128, the processor 210 returns to step ST121.
  • step ST114 of FIG. 3 the processor 110 of the control device 100 waits for a write request to be received by the communication interface 160. If a write request is received, the processor 110 determines Yes in step ST114 and returns to step ST101.
  • the processor 110 repeats steps ST101 to ST103 and steps ST109 to ST114. As a result, the processor 110 repeatedly transmits write requests to the industrial machine 200 on a regular or irregular basis.
  • the processor 110 functions as an example of a transmission unit that periodically and repeatedly transmits to the industrial machine the value acquired by the robot variable acquisition unit and variable designation data indicating the variable of the industrial machine to which the value is to be written, by working together with the communication interface 250 to execute the processing of step ST112.
  • the processor 110 functions as an example of a transmission unit by executing the processing of step ST112.
  • step ST161 of FIG. 8 the processor 210 of the industrial machine 200 checks the values of each setting variable 241 by referring to the auxiliary storage device 240 or the RAM 230, etc.
  • step ST162 the processor 210 determines whether or not to execute processing according to the value of each setting variable 241. For example, when the value of the setting variable 241 is a predetermined value that is set for each setting variable 241, the processor 110 determines that the processing is to be executed. If the processor 210 does not execute the processing, the processor 210 determines No in step ST162 and returns to step ST161. On the other hand, if the processor 210 executes the processing, the processor 210 determines Yes in step ST162 and proceeds to step ST163.
  • step ST163 the processor 210 executes a predetermined process corresponding to the predetermined value. After the process of step ST163, the processor 210 returns to step ST161. As described above, the processor 210 monitors the setting variable 241 by the process of FIG. 8, and executes the predetermined process when the value of the setting variable 241 becomes a predetermined value.
  • the control device 100 repeatedly reads (acquires) the setting variables 241 from the industrial machine 200. This allows the control device 100 to monitor the setting variables of the industrial machine 200. Furthermore, by acquiring the setting variables 241, the control device 100 can use the setting variables 241 as variables of the robot. Furthermore, when adding a signal to a conventional CNC industrial machine, it is necessary to add processing for the added signal to the ladder program. However, end users of CNC industrial machines usually cannot change the ladder program. Therefore, end users request the industrial machine manufacturer or the like to change the ladder program. This results in a large amount of work being required to change the ladder program. On the other hand, the setting variables 241 can be referenced in the machining program without the need to change the ladder program.
  • the control device 100 uses allocation information that stores one location or one address that indicates an assigned memory area for storing the values of multiple variables. This allows the control device 100 to store multiple setting variables 241 together.
  • the control device 100 executes a corresponding predetermined process when the setting variable 241 acquired from the industrial machine 200 is a predetermined value. This allows the industrial machine 200 to operate the control device 100 and the robot 300 using the setting variable 241.
  • the predetermined process is to execute or stop a robot program. Therefore, in the control system 1 of the first embodiment, the industrial machine 200 can execute or stop a robot program.
  • the control device 100 stops the robot 300 based on the value of the setting variable 241 indicating that an alarm has occurred. Therefore, the control device 100 of the first embodiment can stop the robot 300 when an abnormality occurs in the control device 100, for example.
  • the control device 100 repeatedly acquires the instruction variable and transmits a write request to the industrial machine 200. This allows the control device 100 to rewrite the setting variable 241 of the industrial machine 200 when the value of the instruction variable changes. Therefore, the control device 100 can operate the industrial machine 200 using the instruction variable.
  • the teaching device 400 changes the value of the setting variable 241.
  • the control system 1 of the first embodiment allows the setting variable 241 to be manually rewritten.
  • control device 100 converts the setting variables 241 into IO (input/output) data and stores the data in the IO memory area. Also, the control system 1 of the second embodiment differs from the first embodiment in that the instruction variables are IO data and are stored in an IO memory area.
  • the configuration of the control system 1 of the second embodiment is similar to that of the first embodiment, and therefore a description thereof will be omitted.
  • the auxiliary storage device 140 and the like store IO memory information, which will be described later, instead of the allocation information.
  • the auxiliary storage device 140 and the like store second execution information, which will be described later, instead of the first execution information.
  • FIG 11 is a flowchart showing an example of processing by the processor 210 of the industrial machine 200.
  • the processor 210 executes the processing of Figure 11 based on a program stored in, for example, the ROM 220 or the auxiliary storage device 240.
  • Figure 13 is a flowchart showing an example of processing by the processor 410 of the teaching device 400.
  • the processor 410 executes the processing of Figure 13 based on a program stored in, for example, the ROM 420 or the auxiliary storage device 440.
  • the processor 110 of the control device 100 executes the processes shown in Figures 5, 7, and 11.
  • the processor 110 executes, for example, the processes of Figures 5, 7, and 11 in parallel or in parallel.
  • the processor 210 of the industrial machine 200 executes the processes shown in Figures 4 and 8, similar to the first embodiment.
  • the processor 410 of the teaching device 400 executes the processes shown in Figures 6 and 13. Descriptions of operations in the second embodiment that are similar to those in the first embodiment will be omitted.
  • the processor 210 of the industrial machine 200 transmits the setting variable 241 as floating-point data in ST125 of FIG. 4.
  • the processor 210 converts the setting variable 241 to floating-point data and transmits it.
  • the processor 210 transmits the setting variable 241 stored in floating-point data.
  • the industrial machine 200 uses a 32-bit floating-point data type or a 64-bit double-precision floating-point data type as the floating-point data type. In the case of a double-precision floating-point data type, a total of 64 bits are arranged from the beginning in the following order: 1 bit for the sign part, 11 bits for the exponent part, and 52 bits for the mantissa part.
  • Each setting variable 241 is normally 1 bit. By storing the value of each setting variable 241 in each bit of the floating-point type, 64 1-bit setting variable 241 values can be stored in the case of double-precision floating-point type data. In the case of n-bit floating-point type data, n 1-bit setting variable 241 values can be stored. Note that n is a positive number.
  • the industrial machine 200 can also use a setting variable 241 of 2 or more bits.
  • the setting variable 241 is m bits
  • the value of the setting variable 241 is stored using m bits of floating-point data.
  • m is an integer of 2 or more.
  • the auxiliary storage device 140 of the control device 100 and the auxiliary storage device 240 of the industrial machine 200 store bit information.
  • the bit information is data that defines which bit of the floating-point data stores which value of the setting variable 241.
  • the processor 210 of the industrial machine 200 uses the bit information to convert the setting variable 241 into floating-point data.
  • the processor 210 uses the bit information to store the setting variable 241 in the auxiliary storage device 240 or RAM 230, etc., in the form of floating-point data.
  • step ST106 of FIG. 11 if the processor 110 of the control device 100 judges Yes in step ST106 of FIG. 11, it proceeds to step ST201.
  • step ST201 the processor 110 converts the setting variable 241 received in step ST106 into IO data.
  • IO data is a sequence of multiple binary data values such as “0” and “1", “ON” and “OFF”, or "True” and “False”. Therefore, IO data is data like an array of Boolean variables. Binary data values can also be seen as 1-bit binary data.
  • the processor 110 converts the setting variable 241 into IO data. Two methods for converting into IO data are shown below: (i) and (ii).
  • each bit of a variable expressed in binary is used as IO.
  • the received setting variable 241 is floating-point data, which is a variable expressed in binary. Therefore, the processor 110 uses the value of each bit of the floating-point data as is as IO data. For example, if the first four digits of the floating-point data are "0100", the first digit of the IO data is "0”, the second digit is “1”, the third digit is "0”, and the fourth digit is "0".
  • Conversion method 2 is a method in which the absolute value of a positive number obtained by rounding off the decimal point of the value of the setting variable 241 is extracted, converted to binary, and used as IO. For example, assume that the number expressed in decimal of the floating-point type data before conversion is "-1234.567". In this case, the processor 110 rounds off the decimal point of "-1234.567” to "-1234". Then, the processor 110 obtains the absolute value of this value. Here, the absolute value is "1234". Furthermore, the processor 110 converts this absolute value into binary integer type data. Here, the value converted to binary is, for example, "0000 0100 1101 0011” if it is 16 bits.
  • the processor 110 uses each bit of this value as IO data. With this value, the first IO data will be “0”, the second will be “0”, the third will be “0”, the fourth will be “0”, the fifth will be “0”, the sixth will be “1”, the seventh will be “0”, and so on.
  • the configuration variable 241 is a floating-point type, it may not be possible to manipulate it bit by bit.
  • conversion method 1 is used to manipulate only specific IOs of the control device 100 from the processor 210, the user must calculate the floating-point type when manipulating a specific bit, which is time-consuming.
  • Conversion method 2 has the effect of reducing this time-consuming work, in exchange for the amount of data communicated being reduced.
  • the processor 110 functions as an example of an IO conversion unit that converts the value of the variable acquired by the acquisition unit into IO data.
  • the processor 110 acquires IO memory information.
  • the IO memory information stores information about the IO memory area 132.
  • the IO memory information includes information indicating where in the IO memory area 132 the value of which setting variable 241 is to be stored.
  • the IO memory information indicates where the value of each setting variable 241 is to be stored, for example, by storing at which address in the IO memory area 132 the first piece of converted IO data is to be stored. For example, if the address at which the first piece of IO data is stored is X, the address at which the second piece of IO data is to be stored is X+1.
  • the IO memory information may also include information indicating which setting variable 241 is to be stored at each address.
  • the IO memory information is an example of allocation data.
  • step ST203 the processor 110 stores the IO data converted in step ST201 at the address indicated by the IO memory information in the IO memory area 132.
  • the IO memory area 132 stores the setting variable 241 in each bit.
  • the processor 110 returns to step ST201.
  • the IO memory area 132 is an example of a storage area for storing the value of a variable.
  • the area of the IO memory area 132 for storing the value of the setting variable 241 is an example of a storage area for storing the value of a variable.
  • the processor 110 functions as an example of an acquisition unit that repeatedly acquires variable values from the industrial machine by executing the process of FIG. 11.
  • the processor 110 uses the configuration variables 241 stored in the IO memory area 132 instead of the monitoring variables in the process of FIG. 5.
  • the processor 110 uses the second execution information instead of the first execution information in the processing of steps ST134 to ST136.
  • the second execution information stores, for example, for each address of the IO memory area 132, what processing is executed when what value is reached.
  • the second execution information stores, for example, the address of the IO memory area 132, the value, and information indicating the processing to be executed in association with each other.
  • the second execution information indicates that the associated predetermined processing is executed when the value of the address of the IO memory area 132 becomes the associated value.
  • the second execution information may also be capable of storing what processing is executed when each of the values of the addresses of the multiple IO memory areas 132 becomes a predetermined value determined for each address. For example, the second execution information may be capable of storing that a predetermined processing is executed when the value of a certain address Y1 is 1 and the value of a certain address Y2 is 0.
  • step ST135 for example, if the value stored in each address of the IO memory area 132 is a value associated in the second execution information, the processor 110 determines to execute a process associated with that address and that value in the second execution information. As described above, the processor 110 monitors the values stored in each address of the IO memory area 132, and executes the specified process when the value becomes a predetermined value. As described above, the processor 110 inputs the value of the setting variable 241 to the IO memory area 132 by the process of FIG. 11. Therefore, the processor 110 monitors the setting variable 241 by the process of FIG. 11 and FIG. 5, and executes the specified process when the value of the setting variable 241 becomes a predetermined value.
  • the change request is information that instructs 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.
  • FIG. 12 is a diagram showing an example of a variable screen SC1b displayed on the display device 470.
  • the variable screen SC1b is a variable screen that displays (ii) the setting variables 241 converted by conversion method 2.
  • the variable screen SC1b includes an area AR2, as an example.
  • Area AR2 shows the value of each bit of the variable in binary representation.
  • the variable in binary representation shown in area AR2 is a variable in binary representation converted using (ii) conversion method 2 of data [1].
  • data [1] each bit is used as an area for setting.
  • data [1] is viewed as a 32-bit floating-point number, it becomes the number 21.123.
  • conversion method 2 is "21" in decimal and "0000 0000 0001 0101" in binary.
  • only the lowest 16 digits of the binary number are shown here. The highest 16 digits are all zero.
  • the value of each bit displayed in area AR2 can be changed using input device 460 or the like.
  • processor 410 determines that the value of the variable is to be changed in step ST142 of FIG. 6.
  • the change information includes the content of the change in value caused by the operation.
  • the processor 110 changes the setting variables 241 stored in the IO memory area 132 instead of the monitoring variables.
  • step ST135 the processor 110 determines to execute processing according to the value of the setting variable 241 if the value of the setting variable 241 stored in the IO memory area 132 is a predetermined value.
  • the teaching device 400 can also display a screen for checking and editing the robot program (hereinafter referred to as the "editing screen").
  • the editing screen and the processing related to the editing screen will be described with reference to FIG. 13.
  • the processor 410 of the teaching device 400 starts the processing shown in FIG. 13 in response to, for example, receiving an instruction to display the editing screen.
  • step ST211 of FIG. 13 the processor 410 of the teaching device 400 waits for the designation of a robot program to be edited.
  • the operator of the teaching device 400 performs an operation to designate the robot program to be edited. If the processor 410 receives the designation of the robot program to be edited, it judges Yes in step ST211 and proceeds to step ST212.
  • step ST212 the processor 410 of the teaching device 400 generates an image corresponding to the editing screen SC2 as shown in FIG. 14.
  • the processor 410 then instructs the teaching device 400 to display the generated image.
  • the processor 410 of the teaching device 400 Upon receiving the display instruction, the processor 410 of the teaching device 400 causes the display device 470 to display the editing screen SC2.
  • FIG. 14 is a diagram showing an example of the editing screen SC2.
  • the editing screen SC2 is a screen for editing a robot program.
  • the editing screen SC2 includes an area AR10 and an area AR20.
  • Area AR10 is an area that displays the program to be edited. Area AR10 displays the program using one or more images IM11. Each image IM1 shows an instruction in the program. Image IM1 shows the content of the instruction using, for example, a pictogram. Area AR10 may also display each instruction using text, etc. Using area AR10, it is possible to add, change, and delete instructions.
  • area AR10 can be operated to specify the command to be edited.
  • each image IM1 is a button.
  • the command corresponding to the operated image IM1 becomes the target for editing. Note that if no command is specified as the target for editing, for example, the first command automatically becomes the target for editing.
  • Area AR20 is an area for editing the command to be edited.
  • the command to be edited is displayed in area AR20.
  • Area AR20 includes areas AR21 to AR25, as an example. Note that area AR20 may include areas different from areas AR21 to AR25, depending on the command to be edited.
  • Area AR21 is an area that displays the command to be edited.
  • "DO [1]” is displayed as the command.
  • "DO [1]” is an output command. Note that the "1" part is a number displayed in area AR22.
  • Area AR22 is an area for specifying the setting variable 241 for which a value change or the like is to be performed.
  • the target setting variable 241 can be specified by inputting a number, address, variable name, or the like indicating the setting variable 241 into area AR22.
  • the "setting variable 241 specified as the target for which a value change or the like is to be performed" is hereinafter referred to as the "specified variable.”
  • Area AR22 also displays a number, address, variable name, or the like that identifies the specified setting variable 241.
  • Area AR23 is an area for changing the value of a specified variable.
  • the value of the specified variable can be changed by inputting a value into area AR23.
  • Area AR23 also displays the current value of the specified variable.
  • Area AR24 displays the current value of data (hereinafter referred to as "change data") whose value will be changed when the command displayed in area AR21 is executed.
  • the change data is, for example, an instruction variable. Therefore, the change data is stored, for example, in a memory area of the robot 300.
  • Area AR25 displays the value of the changed data after the command is executed.
  • processor 410 determines whether or not to change the command to be edited. For example, if an operation has been performed to instruct a change to the command to be edited, processor 410 determines that the command to be edited is to be changed. If processor 410 does not determine that the command to be edited is to be changed, processor 410 determines No in step ST213 and proceeds to step ST214.
  • step ST214 processor 410 determines whether or not an operation to designate a designated variable has been performed. For example, the input to area AR22 described above is an operation to designate a designated variable. If an operation to designate a designated variable has not been performed, processor 410 determines No in step ST214 and proceeds to step ST215.
  • step ST215 processor 410 determines whether an operation has been performed to instruct a change in the value of the designated variable. For example, inputting a value into area AR23 described above is an operation that instructs a change in value. If an operation that instructs a change in the value of the designated variable has not been performed, processor 410 determines No in step ST215 and returns to step ST214. Thus, processor 410 enters a standby state in which steps ST213 to ST215 are repeated until it is determined that the command to be edited is to be changed, an operation that specifies a designated variable is performed, or an operation that instructs a change in the value of the designated variable is performed.
  • processor 410 determines that the command to be edited is to be changed while in a standby state in which steps ST213 to ST215 are repeated, it determines Yes in step ST213 and returns to step ST212. Then, processor 410 updates the display of editing screen SC1 in the processing of step ST212 to a screen corresponding to the changed command to be edited.
  • processor 410 determines Yes in step ST214 and proceeds to step ST216.
  • step ST216 the processor 410 obtains the value of the specified variable from the RAM 130 of the control device 100, etc.
  • step ST217 the processor 410 obtains the current value of the change data.
  • step ST218 the processor 410 uses the current values of the specified variables to calculate the value of the changed data after the command to be edited is executed.
  • step ST219 processor 410 displays the value acquired in step ST217 in area AR24.
  • processor 410 also displays the value calculated in step ST218 in area AR25.
  • processor 410 returns to step ST212.
  • processor 410 determines Yes in step ST215 and proceeds to step ST220.
  • step ST220 the processor 410 generates a change request.
  • the change request includes change information indicating the content of the change to the variable.
  • the change request is information that instructs the control device 100 to change the value of the setting variable 241 stored in the IO memory area 132 in accordance with the change information.
  • the change information includes a number or address that identifies the specified variable and the changed value of the specified variable.
  • the changed value is the value specified by the operation that instructs the change of the value of the specified variable.
  • the change request is the same as step ST144 in FIG. 6.
  • the processor 410 instructs the communication interface 450 to transmit the change request to the industrial machine 200.
  • the communication interface 450 transmits the change request to the industrial machine 200.
  • the transmitted change request is received by the communication interface 450 of the industrial machine 200.
  • the processor 410 functions as an example of a change unit that changes the values of the variables in response to editing of the robot program.
  • step ST221 the processor 410 uses the changed value of the specified variable to calculate the value of the changed data after the command to be edited is executed.
  • step ST222 processor 410 displays the value calculated in step ST221 in area AR25. After processing step ST222, processor 410 returns to step ST214.
  • the processor 410 functions as an example of an editing unit that edits a robot program for controlling a robot by executing the process shown in FIG. 13.
  • step ST103 if the processor 110 of the control device 100 determines No in step ST103, it proceeds to step ST204.
  • step ST204 the processor 110 obtains a value indicating the written content of the setting variable 241 from the IO memory area 132 of the RAM 130.
  • the value is, for example, an indicator variable in the form of binary IO data. Note that the value has been converted into IO data, for example, by a method similar to that of step ST201.
  • the processor 110 converts the indicator variable into IO data by a method similar to that of step ST201 and stores it in the IO memory area 132.
  • step ST205 the processor 110 converts the value acquired in step ST204 from binary IO data to a data format before conversion to IO data.
  • the data format before conversion is the same as the data format of the setting variable 241.
  • the data format before conversion is, for example, a decimal numeric value.
  • the data format of the setting variable 241 is not usually IO data.
  • the processor 110 functions as an example of a conversion unit that converts the value acquired by the robot variable acquisition unit into a data format other than IO data.
  • step ST206 the processor 110 generates a write request.
  • the write request includes target information and instruction information, as in the second embodiment. However, the write content indicated by the instruction information indicates the value converted in step ST205.
  • the processor 110 instructs the communication interface 160 to transmit the write request to the industrial machine 200. Upon receiving this transmission instruction, the communication interface 160 transmits the write request to the industrial machine 200. The transmitted write request is received by the communication interface 250 of the industrial machine 200. After processing step ST206, the processor 110 returns to step ST201.
  • the processor 210 rewrites the setting variable 241 in accordance with the write request, as in the second embodiment.
  • control system 1 of the second embodiment provides the same effects as the second embodiment.
  • the control device 100 converts the setting variables 241 into IO data. If a signal with a pre-assigned purpose is prepared to perform a specific process, such as externally executing or stopping a robot program, it can be operated with 1-bit data, the data size is small, and the system is easy to read. Furthermore, by using 1-bit data, the amount of data communication can be reduced compared to transmitting numerical data.
  • control device 100 uses each bit of a variable expressed in binary as IO. This allows the control device 100 to include multiple settings in one numerical value.
  • control device 100 has an IO memory area 132. Therefore, the control device 100 can store the instruction variables as IO data.
  • the teaching device 400 changes the value of the setting variable 241 in response to editing of the robot program.
  • the control system 1 of the second embodiment is capable of editing the robot program in a manner that involves changing the value of the setting variable 241.
  • the above embodiment can be modified as follows.
  • the control system of the embodiment may include, instead of the teaching device 400, a display device that does not have a function for creating a robot program.
  • some or all of the processing performed by the teaching device 400 may be performed by the control device 100 or the robot 300.
  • the control device of the embodiment may include some or all of the configuration of the teaching device 400.
  • Processor 110, processor 210, and processor 410 may implement some or all of the processing implemented by programs in the above embodiments through a hardware circuit configuration.
  • the program that realizes the processing of the embodiment is transferred, for example, in a state stored in a non-transitory storage medium within the device.
  • the device may be transferred without the program stored therein.
  • the program may then be transferred separately and written to the device.
  • the program may be transferred, for example, by recording it on a removable, non-transitory storage medium, or by downloading it via a network such as the Internet or a LAN.
  • Control system 100 Control device 110, 210, 410 Processor 111 Allocation unit 112 Data conversion unit 113 Start unit 114 Stop unit 115 Target unit 120, 220, 420 ROM 130,230,430 RAM 131 Memory area 132 IO memory area 133 Start area 134 Alarm area 140, 240, 440 Auxiliary storage device 150 Control interface 160, 250, 450 Communication interface 170, 280, 480 Bus 200 Industrial machine 211 Industrial start section 241 Setting variable 242 Industrial machine program 243 Ladder program 260, 460 Input device 261 Start button 270, 470 Display device 300 Robot 400 Teaching device

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Programmable Controllers (AREA)

Abstract

実施形態のロボット制御装置は、取得部、格納部及び割り当て記憶部を備える。取得部は、産業機械から変数の値を繰り返し取得する。格納部は、前記取得部によって取得された前記変数の値を、前記変数の値を格納する格納領域に書き込む。割り当て記憶部は、前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する。

Description

ロボット制御装置及びロボット制御システム
 本開示は、ロボット制御装置及びロボット制御システムに関する。
 工作機械などの産業機械からロボットを制御することが可能なシステムがある。このようなシステムは、ロボットと産業機械との間で通信し、お互いの状態の監視及び要求を行うことができる。
 また、ロボットプログラムの命令にはCNC(computerized numerical control)産業機械と通信してCNCの設定用の変数にアクセスする機能がある。この命令で設定用の変数を取得又は書き込みすることで、ロボット又はロボット制御装置とCNC産業機械とは、互いに相手の状態確認及び要求ができる。
国際公開第2020/194752号
 CNCの設定用の変数へのアクセスはロボットプログラムでアクセス命令を実行する必要がある。このため、CNC産業機械は、任意のタイミングでロボット又はロボット制御装置に要求することができず、ロボット又はロボット制御装置においてアクセス命令が実行されるまで待たなければならない。また、同様の理由で、ロボット又はロボット制御装置と産業機械とは、相手の状態を監視することが困難である。任意のタイミングでの要求及び相手の状態の監視のために、ロボットとCNC産業機械を同期することが考えられる。ロボットとCNC産業機械を同期するためには複数の信号を用意する必要がある。しかしながら、CNCの変数は通常8バイト又は16バイトの変数である。このため、ロボット又はロボット制御装置がCNC産業機械の1つの状態を監視するために1つの変数を取得すると、通信データの量が膨大になり通信周期が遅くなる。
 本開示の実施形態が解決しようとする課題は、産業機械の設定用の変数を周期的に読み込んで(取得して)、又は書き込んで、ロボットの変数データとして使用可能なロボット制御装置及びロボット制御システムを提供することである。
 実施形態のロボット制御装置は、取得部、格納部及び割り当て記憶部を備える。取得部は、産業機械から変数の値を繰り返し取得する。格納部は、前記取得部によって取得された前記変数の値を、前記変数の値を格納する格納領域に書き込む。割り当て記憶部は、前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する。
 本開示は、ロボット制御装置が、産業機械の変数の読み込み(取得)、又は書き込みをして、ロボットの変数データと同様に使用することが可能である。
実施形態に係る制御システム及び当該制御システムに含まれる構成要素の要部構成の一例を示すブロック図。 実施形態に係る制御システムの要部機能及び要部構成の一例を示すブロック図である。 図1中の制御装置のプロセッサーによる第1実施形態に係る処理の一例を示すフローチャート。 図1中の産業機械のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。 図1中の制御装置のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。 図1中の教示装置のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。 図1中の制御装置のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。 図1中の産業機械のプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。 図1中の教示装置の表示デバイスに表示される変数画面の一例を示す図。 制御装置100及び産業機械200の動作の一例を説明するためのブロック図。 図1中の制御装置のプロセッサーによる第2実施形態に係る処理の一例を示すフローチャート。 図1中の教示装置の表示デバイスに表示される変数画面の一例を示す図。 図1中の教示装置のプロセッサーによる第2実施形態に係る処理の一例を示すフローチャート。 図1中の教示装置の表示デバイスに表示される編集画面の一例を示す図。
 以下、いくつかの実施形態に係る制御システムについて図面を用いて説明する。なお、以下の実施形態の説明に用いる各図面は、説明のため、構成を省略して示している場合がある。また、各図面及び本明細書中において、同一の符号は同様の要素を示す。
〔第1実施形態〕
 実施形態に係る制御システム1について図1及び図2を用いて説明する。
 図1は、実施形態に係る制御システム1及び制御システム1に含まれる構成要素の要部構成の一例を示すブロック図である。図2は、実施形態に係る制御システム1の要部機能及び要部構成の一例を示すブロック図である。
 制御システム1は、ロボット300の制御などを行うシステムである。制御システム1は、一例として、制御装置100、産業機械200、ロボット300及び教示装置400を含む。制御システム1は、ロボット制御システムの一例である。
 制御装置100は、ロボット300を制御する装置である。制御装置100は、一例として、プロセッサー110、ROM(read-only memory)120、RAM(random-access memory)130、補助記憶装置140、制御インターフェース150、及び通信インターフェース160を含む。そして、バス170などが、これら各部を接続する。制御装置100は、ロボット制御装置の一例である。
 プロセッサー110は、制御装置100の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分であり、各種演算及び処理などを行う。プロセッサー110は、例えば、CPU(central processing unit)、MPU(micro processing unit)、SoC(system on a chip)、DSP(digital signal processor)、GPU(graphics processing unit)、ASIC(application specific integrated circuit)、PLD(programmable logic device)又はFPGA(field-programmable gate array)などである。あるいは、プロセッサー110は、これらのうちの複数を組み合わせたものである。また、プロセッサー110は、これらにハードウェアアクセラレーターなどを組み合わせたものであっても良い。プロセッサー110は、ROM120又は補助記憶装置140などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、制御装置100の各種の機能を実現するべく各部を制御する。また、プロセッサー110は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー110の回路内に組み込まれていても良い。
 プロセッサー110は、上記のプログラムを実行することにより、一例として、割付部111、データ変換部112、起動部113、停止部114及び対象部115として機能する。
 割付部111は、各設定変数241について、どこに格納するかを特定する。
 データ変換部112は、設定変数241をIOデータに変換する。設定変数241については後述する。
 起動部113は、ロボット300を起動する。
 停止部114は、ロボット300を停止する。
 対象部115は、どの設定変数241が値を格納する対象であるかを特定する。
 ROM120及びRAM130は、プロセッサー110を中枢としたコンピューターの主記憶装置である。
 ROM120は、専らデータの読み出しに用いられる不揮発性メモリである。ROM120は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM120は、プロセッサー110が各種の処理を行う上で使用するデータなども記憶する。なお、ROM120は、複数のメモリによって構成されていても良い。
 RAM130は、データの読み書きに用いられるメモリである。RAM130は、プロセッサー110が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM130は、典型的には揮発性メモリである。なお、RAM130は、複数のメモリによって構成されていても良い。
 RAM130は、例えば、メモリ領域131及びIOメモリ領域132の2種類のメモリ領域を含む。メモリ領域131は、IOデータ以外のデータを記憶するためのメモリ領域である。IOメモリ領域132は、IOデータを記憶するためのメモリ領域であり、IOデータを記憶可能なメモリ領域である。IOデータについては後述する。なお、メモリ領域131とIOメモリ領域132は、物理的に同じメモリ上に存在していても良いし、物理的に異なるメモリ上に存在していても良い。ただし、第1実施形態では、RAM130は、IOメモリ領域132を含んでいなくても良い。
 なお、RAM130に代えて、ROM120又は補助記憶装置140などのRAM130以外の記憶装置がIOメモリ領域132を備えていても良い。
 また、RAM130は、起動領域133及びアラーム領域134が割り当てられる。起動領域133及びアラーム領域134については後述する。
 補助記憶装置140は、プロセッサー110を中枢としたコンピューターの補助記憶装置である。補助記憶装置140は、例えばEEPROM(electric erasable programmable read-only memory)、HDD(hard disk drive)又はフラッシュメモリなどである。補助記憶装置140は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置140は、プロセッサー110が各種の処理を行う上で使用するデータ、プロセッサー110での処理によって生成されたデータ及び各種の設定値などを記憶する。
 また、補助記憶装置140などは、パラメーター情報、後述の割付情報及び第1実行情報を記憶している。割付情報及び第1実行情報は、制御装置100以外に記憶されていても良い。
 パラメーター情報は、例えば、産業機械200からの設定変数241の取得に関する設定、及び産業機械200への設定変数241の書き込みに関する設定の少なくともいずれかを記憶する情報である。パラメーター情報の各設定の値は、例えば、制御システム1のユーザー、管理者、又は設計者などによって設定される。パラメーター情報の各設定の値は、それぞれデフォルトの値が設定されていてもよい。パラメーター情報の各設定の値は、それぞれ変更可能であっても良いし変更不可能であっても良い。なお、補助記憶装置140は、複数のパラメーター情報を記憶しても良い。
 制御インターフェース、制御装置100がロボット300と通信するためのインターフェースである。制御装置100は、制御インターフェース150を介してロボット300と通信することでロボット300を制御する。
 通信インターフェース160は、制御装置100が産業機械200及び教示装置400などと通信するためのインターフェースである。通信インターフェース160は、例えば、ネットワークを介して通信する。あるいは、通信インターフェース160は、ネットワークを介さず通信する。ネットワークは、例えば、LAN(local area network)又はインターネットなどを含む通信網である。制御装置100は、通信インターフェース160を介して産業機械200及び教示装置400などと通信する。
 バス170は、コントロールバス、アドレスバス及びデータバスなどを含み、制御装置100の各部で授受される信号を伝送する。
 産業機械200は、例えば、工作機械又は工作機械の周辺機器である。あるいは、産業機械200は、その他の機械であっても良い。産業機械200の制御方式は、CNCである。あるいは、産業機械200の制御方式は、NC又はその他の方式であっても良い。産業機械200は、一例として、プロセッサー210、ROM220、RAM230、補助記憶装置240、通信インターフェース250、入力デバイス260及び表示デバイス270を含む。そして、バス280などが、これら各部を接続する。
 プロセッサー210は、産業機械200の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分であり、各種演算及び処理などを行う。プロセッサー210は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー210は、これらのうちの複数を組み合わせたものである。また、プロセッサー210は、これらにハードウェアアクセラレーターなどを組み合わせたものであっても良い。プロセッサー210は、ROM220又は補助記憶装置240などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、産業機械200の各種の機能を実現するべく各部を制御する。また、プロセッサー210は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー210の回路内に組み込まれていても良い。
 ROM220及びRAM230は、プロセッサー210を中枢としたコンピューターの主記憶装置である。
 ROM220は、専らデータの読み出しに用いられる不揮発性メモリである。ROM220は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM220は、プロセッサー210が各種の処理を行う上で使用するデータなども記憶する。
 RAM230は、データの読み書きに用いられるメモリである。RAM230は、プロセッサー210が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM230は、典型的には揮発性メモリである。
 補助記憶装置240は、プロセッサー210を中枢としたコンピューターの補助記憶装置である。補助記憶装置240は、例えばEEPROM、HDD又はフラッシュメモリなどである。補助記憶装置240は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置240は、プロセッサー210が各種の処理を行う上で使用するデータ、プロセッサー210での処理によって生成されたデータ及び各種の設定値などを記憶する。
 補助記憶装置240又はRAM230などは、設定変数241を記憶する。設定変数241は、産業機械200のユーザーが値を変更可能である。設定変数241は、産業機械200又は制御システム1の各種の設定などを定める。設定変数241は、例えば、グローバル変数又は外部変数のように振る舞う。なお、補助記憶装置240又はRAM230などは、複数の設定変数241を記憶しても良い。また、1つの設定変数241は、複数の値を含んでいても良い。この場合、複数の値のそれぞれが設定を定める。なお、図1では、一例として補助記憶装置240が記憶するものとして設定変数241を記載している。
 また、上記のプログラムは、例えば、産業機械プログラム242及びラダープログラム243を含む。なお、図1では、一例として補助記憶装置240が記憶するものとして産業機械プログラム242及びラダープログラム243を記載している。
 産業機械プログラム242は、例えば、産業機械200が加工するためのプログラムでありエンドユーザーが作成する。ラダープログラム245は、例えば、産業機械200を操作するため、また外部機器との連携をとるための処理をおこなう。
 通信インターフェース250は、産業機械200が制御装置100などと通信するためのインターフェースである。通信インターフェース250は、例えば、前述のネットワークを介して通信する。あるいは、通信インターフェース250は、ネットワークを介さず通信する。制御装置100は、通信インターフェース250を介して制御装置100などと通信する。
 入力デバイス260は、産業機械200の操作者による操作を受け付ける。入力デバイス260は、例えば、キーボード、キーパッド、タッチパッド、マウス又はコントローラーなどである。また、入力デバイス260は、音声入力用のデバイスであっても良い。
 表示デバイス270は、産業機械200の操作者などに各種情報を通知するための画面を表示する。表示デバイス270は、例えば、液晶ディスプレイ又は有機ELディスプレイなどのディスプレイである。また、入力デバイス260及び表示デバイス270としては、タッチパネルを用いることもできる。すなわち、タッチパネルが備える表示パネルを表示デバイス270として、タッチパネルが備える、タッチ入力によるポインティングデバイスを入力デバイス260として用いることができる。
 バス280は、コントロールバス、アドレスバス及びデータバスなどを含み、産業機械200の各部で授受される信号を伝送する。
 ロボット300は、例えば、マニピュレーター若しくはロボットアーム、又はこれらを備えるロボットなどである。ロボット300は、例えば多関節ロボットである。ロボット300は、一例として、1又は複数の駆動部を含む。ロボット300は、その他のロボットであっても良い。なお、ロボット300は、制御装置100を内蔵していても良い。
 教示装置400は、ロボットプログラムを作成するための装置である。ロボットプログラムの作成は、オンラインティーチング、オフラインティーチング、ダイレクトティーチング又はその他のプログラム作成方法のいずれであってもよい。教示装置400は、例えば、オンラインティーチングを行うことができるティーチングペンダントである。教示装置400は、例えば、オフラインティーチング用のソフトウェアを実行するPC(personal computer)などの装置などである。なお、制御装置100が教示装置400の機能の一部又は全部を備えていてもよい。また、ロボット300が教示装置400の機能の一部又は全部を備えていてもよい。教示装置400は、一例として、プロセッサー410、ROM420、RAM430、補助記憶装置440、通信インターフェース450、入力デバイス460及び表示デバイス470を含む。そして、バス480などが、これら各部を接続する。なお、教示装置400は、表示装置の一例である。
 プロセッサー410は、教示装置400の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分であり、各種演算及び処理などを行う。プロセッサー410は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー410は、これらのうちの複数を組み合わせたものである。また、プロセッサー410は、これらにハードウェアアクセラレーターなどを組み合わせたものであっても良い。プロセッサー410は、ROM420又は補助記憶装置440などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、教示装置400の各種の機能を実現するべく各部を制御する。また、プロセッサー410は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー410の回路内に組み込まれていても良い。
 ROM420及びRAM430は、プロセッサー410を中枢としたコンピューターの主記憶装置である。
 ROM420は、専らデータの読み出しに用いられる不揮発性メモリである。ROM420は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM420は、プロセッサー410が各種の処理を行う上で使用するデータなども記憶する。
 RAM430は、データの読み書きに用いられるメモリである。RAM430は、プロセッサー410が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM430は、典型的には揮発性メモリである。
 補助記憶装置440は、プロセッサー410を中枢としたコンピューターの補助記憶装置である。補助記憶装置440は、例えばEEPROM、HDD又はフラッシュメモリなどである。補助記憶装置440は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置440は、プロセッサー410が各種の処理を行う上で使用するデータ、プロセッサー410での処理によって生成されたデータ及び各種の設定値などを記憶する。
 通信インターフェース450は、教示装置400が制御装置100などと通信するためのインターフェースである。通信インターフェース450は、例えば、前述のネットワークを介して通信する。あるいは、通信インターフェース450は、ネットワークを介さず通信する。教示装置400は、通信インターフェース450を介して制御装置100などと通信する。
 入力デバイス460は、教示装置400の操作者による操作を受け付ける。入力デバイス460は、例えば、キーボード、キーパッド、タッチパッド、マウス又はコントローラーなどである。また、入力デバイス460は、音声入力用のデバイスであっても良い。
 表示デバイス470は、教示装置400の操作者などに各種情報を通知するための画面を表示する。表示デバイス470は、例えば、液晶ディスプレイ又は有機ELディスプレイなどのディスプレイである。また、入力デバイス460及び表示デバイス470としては、タッチパネルを用いることもできる。すなわち、タッチパネルが備える表示パネルを表示デバイス470として、タッチパネルが備える、タッチ入力によるポインティングデバイスを入力デバイス460として用いることができる。
 バス480は、コントロールバス、アドレスバス及びデータバスなどを含み、教示装置400の各部で授受される信号を伝送する。
 以下、第1実施形態に係る制御システム1の動作を図3~図8などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図3、図5及び図7は、制御装置100のプロセッサー110による処理の一例を示すフローチャートである。プロセッサー110は、例えば、ROM120又は補助記憶装置140などに記憶されたプログラムに基づいて図3、図5及び図7の処理を実行する。図4及び図8は、産業機械200のプロセッサー210による処理の一例を示すフローチャートである。プロセッサー210は、例えば、ROM220又は補助記憶装置240などに記憶されたプログラムに基づいて図4の処理を実行する。図6は、教示装置400のプロセッサー410による処理の一例を示すフローチャートである。プロセッサー410は、例えば、ROM420又は補助記憶装置440などに記憶されたプログラムに基づいて図6の処理を実行する。
 制御装置100のプロセッサー110は、例えば、図3、図5及び図7の処理を並行又は並列で実行する。
 産業機械200のプロセッサー210は、例えば、図4及び図8の処理を並行又は並列で実行する。
 図3のステップST101において制御装置100のプロセッサー110は、パラメーター情報を取得するか否かを判定する。プロセッサー110は、例えば、所定の時間TPごとにパラメーター情報を取得すると判定する。あるいは、プロセッサー110は、現在時刻が所定の時刻CT以降になったならばパラメーター情報を取得すると判定する。あるいは、プロセッサー110は、パラメーター情報を取得するように指示する入力を受けた場合にパラメーター情報を取得すると判定する。パラメーター情報を取得するように指示する入力は、例えば、制御装置100が実行するプログラムからの入力である。あるいは、パラメーター情報を取得するように指示する入力は、制御装置100の外部からの入力であっても良い。
 なお、パラメーター情報が複数ある場合、プロセッサー110は、例えば、パラメーター情報ごとにパラメーター情報を取得するか否かを判定する。あるいは、プロセッサー110は、パラメーター情報を取得すると判定した場合に、どのパラメーター情報を取得するかの判定を行う。
 パラメーター情報が複数ある場合、プロセッサー110は、取得するパラメーター情報ごとに異なる時間TPを用いても良い。プロセッサー110は、パラメーター情報の取得から、当該パラメーター情報に対応する時間TPが経過したならば、当該パラメーター情報を取得すると判定する。なお、パラメーター情報に対応する時間PTは、例えば、当該パラメーター情報に含まれる。
 一例として、第1のパラメーター情報と第2のパラメーター情報の2つのパラメーター情報があるとする。そして、第1のパラメーター情報に対応する時間TPを時間TP1とする。第1のパラメーター情報は、時間TP1を含む。また、第2のパラメーター情報に対応する時間TPを時間TP2とする。第2のパラメーター情報は、時間TP2を含む。この場合、プロセッサー110は、最後に第1のパラメーター情報を取得してからの経過時間が時間TP1以上であるならば、第1のパラメーター情報を取得すると判定する。そして、プロセッサー110は、最後に第2のパラメーター情報を取得してからの経過時間が時間TP2以上であるならば、第2のパラメーター情報を取得すると判定する。
 また、パラメーター情報が複数ある場合、プロセッサー110は、取得するパラメーター情報ごとに異なる時刻CTを用いても良い。
 プロセッサー110は、パラメーター情報を取得すると判定しないならば、ステップST101においてNoと判定してステップST101の処理を繰り返す。対して、プロセッサー110は、パラメーター情報を取得すると判定するならば、ステップST101においてYesと判定してステップST102へと進む。
 ステップST102においてプロセッサー110は、補助記憶装置140などからパラメーター情報を取得する。パラメーター情報が複数ある場合、プロセッサー110は、例えば、ステップST101で取得すると判定したパラメーター情報を取得する。
 ステップST103においてプロセッサー110は、産業機械200から設定変数241を取得するか否かを判定する。パラメーター情報は、例えば、産業機械200から設定変数241を取得するか産業機械200に設定変数241を書き込むかを示す情報(以下「設定情報」という。)を含む。プロセッサー110は、設定情報を参照して産業機械200から設定変数241を取得するか否かを判定する。プロセッサー110は、産業機械200から設定変数241を取得すると判定するならば、ステップST103においてYesと判定してステップST104へと進む。
 なお、パラメーター情報は、前述したように設定情報を含む。したがって、ステップST101において、産業機械200から設定変数241を取得すること示すパラメーター情報を取得するか否かを判定することは、産業機械200から設定変数241を取得するか否かを判定することであるともいえる。また、ステップST101において、産業機械200に設定変数241を書き込むこと示すパラメーター情報を取得するか否かを判定することは、産業機械200に設定変数241を書き込むか否かを判定することであるともいえる。
 ステップST104においてプロセッサー110は、変数要求を生成する。変数要求は、設定変数241を送信するように産業機械200に要求する情報である。また、変数要求は、送信対象の設定変数241を指定する指定情報を含んでも良い。プロセッサー110は、例えば、ステップST102で取得したパラメーター情報から当該指定情報を取得する。そして、プロセッサー110は、当該指定情報を含む変数要求を生成する。
 ステップST105においてプロセッサー110は、変数要求を産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該変数要求を産業機械200に送信する。送信された当該変数要求は、産業機械200の通信インターフェース250によって受信される。
 一方、図4のステップST121において産業機械200のプロセッサー210は、通信インターフェース250によって変数要求が受信されたか否かを判定する。プロセッサー210は、変数要求が受信されないならば、ステップST121においてNoと判定してステップST122へと進む。
 ステップST122においてプロセッサー210は、通信インターフェース250によって書込み要求が受信されたか否かを判定する。プロセッサー210は、書込み要求が受信されないならば、ステップST122においてNoと判定してステップST121へと戻る。かくして、プロセッサー210は、変数要求又は書込み要求が受信されるまでステップST121及びステップST122を繰り返す待受状態となる。
 プロセッサー210は、ステップST121及びステップST122を繰り返す待受状態にあるときに変数要求が受信されたならば、ステップST121においてYesと判定してステップST123へと進む。
 ステップST123においてプロセッサー210は、補助記憶装置240又はRAM230などから設定変数241を取得する。プロセッサー210は、例えば、ステップST121で受信された変数要求に含まれる指定情報が対象とする設定変数241を取得する。あるいは、プロセッサー210は、設定変数241を全て取得しても良い。
 ステップST124においてプロセッサー210は、変数応答を生成する。変数応答は、ステップST123で取得した設定変数241を含む情報である。
 ステップST125においてプロセッサー210は、ステップST124で生成した変数応答を、変数要求の送信元の産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該変数応答を当該産業機械200に送信する。送信された当該変数応答は、当該産業機械200の通信インターフェース250によって受信される。プロセッサー210は、ステップST124の処理の後、ステップST121へと戻る。
 一方、図3のステップST106において制御装置100のプロセッサー110は、通信インターフェース250によって変数応答が受信されるのを待ち受けている。プロセッサー110は、変数応答が受信されたならば、ステップST106においてYesと判定してステップST107へと進む。
 ステップST107においてプロセッサー110は、補助記憶装置140などから割付情報を取得する。割付情報は、監視変数についての情報を記憶する。監視変数は、設定変数241又は設定変数241の値を入力するための変数である。監視変数は、図5に示す処理において監視する対象となる場合がある変数である。プロセッサー110は、例えば、図3及び図5に示す処理を開始するとき又は制御装置100の起動にともない、監視変数を、RAM130などに割り当てる。あるいは、補助記憶装置140が設定変数241を記憶しても良い。また、監視変数の数は、1又は複数である。
 割付情報は、各設定変数241について、どの監視変数に格納(記憶)するかを示す情報を含む。また、割付情報は、1つの監視変数に複数の設定変数241を格納可能な場合には、各設定変数241について、どの監視変数のどの部分に格納するかを示す情報を含む。なお、割付情報は、例えば、どの監視変数に格納するかを、監視変数が割り当てられたRAM130又は監視変数を記憶している補助記憶装置140などの記憶領域のアドレスによって定義する。すなわち、割付情報は、各設定変数241を記憶領域のどのアドレスに格納するかを示す情報を含む。あるいは、割付情報は、変数名などによって、どの監視変数に格納するかを定義する。変数名は、設定変数241を格納する格納領域の箇所を示す一例である。また、割付情報は、複数の監視変数の記憶領域を1つのアドレスによって定義しても良い。例えば、割付情報は、当該複数の監視変数の先頭のアドレスと、当該複数の監視変数の先頭から終わりまでの長さによって当該記憶領域を定義する。なお、当該複数の監視変数は、記憶領域上に連続して並んでいるものとする。
 RAM230又は補助記憶装置240は、変数の値を記憶する格納領域の一例である。また、監視変数を記憶する領域は、変数の値を記憶する格納領域の一例である。したがって、割付情報は、変数の値を格納する格納領域の箇所又はアドレスを示す割り当てデータの一例である。また、1つの監視変数が複数の設定変数241を格納可能な場合、割付情報は、複数の変数の値を格納する格納領域の箇所又はアドレスを記憶する割り当てデータの一例である。また、複数の監視変数の格納領域を1つのアドレスによって定義する割付情報は、複数の変数の値を格納する格納領域を示す1つのアドレスを記憶する割り当てデータの一例である。また、割付情報を記憶する補助記憶装置140などは、当該割り当てデータを記憶する割り当て記憶部の一例である。
 ステップST108において、プロセッサー110は、ステップST106で受信された設定変数241を、割付情報によって示された監視変数に入力(格納)する(書き込む)。割付情報が設定変数241をどのアドレスに格納するかを示している場合、プロセッサー110は、設定変数241を、割付情報に示されたアドレスに入力(格納)する。プロセッサー110は、ステップST108の処理の後、ステップST101へと戻る。以上のように、プロセッサー110は、ステップST101~ステップST108を繰り返す。これにより、プロセッサー110は、定期的又は不定期に産業機械200から設定変数241を繰り返し取得し、監視変数に入力する。
 以上より、プロセッサー110は、ステップST108の処理を実行することで、取得部によって取得された変数の値を、変数の値を格納する格納領域に書き込む格納部の一例として機能する。
 なお、プロセッサー110は、ステップST101の処理を行わなくても良い。この場合、プロセッサー110は、図3に示す処理をステップST102から開始する。そして、プロセッサー110は、ステップST108の処理の後、ステップST102へと戻る。この場合、プロセッサー110は、ステップST101の判定を経ずにステップST102~ステップST108を繰り返すことで、産業機械200から設定変数241を繰り返し取得する。
 以上より、プロセッサー110は、図3のステップST101~ステップST108の処理を実行することで、産業機械から変数の値を繰り返し取得する取得部の一例として機能する。
 また、図5のステップST131において制御装置100のプロセッサー110は、各監視変数を確認する。すなわち、プロセッサー110は、各監視変数の値を取得する。
 ステップST132においてプロセッサー110は、各監視変数の値が前回の取得時から変更されているか否かを判定する。プロセッサー110は、いずれかの監視変数の値が前回の取得時から変更されているならば、ステップST132においてYesと判定してステップST133へと進む。対して、プロセッサー110は、いずれの監視変数の値も前回の取得時から変更されていないならば、ステップST132においてNoと判定してステップST134へと進む。
 ステップST133においてプロセッサー110は、表示要求を生成する。表示要求は、監視変数又は監視変数の値を含む。表示要求は、監視変数の値を表示するように教示装置400に要求する情報である。プロセッサー110は、表示要求を生成した後、当該表示要求を産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該表示要求を産業機械200に送信する。送信された当該表示要求は、産業機械200の通信インターフェース450によって受信される。
 表示要求を受信した教示装置400のプロセッサー410は、監視変数画面を表示デバイス470に表示させる。監視変数画面は、例えば、値が変更された監視変数の値を示す画像を含む。
 一方、図6のステップST141において教示装置400のプロセッサー410は、通信インターフェース450によって表示要求が受信されたか否かを判定する。プロセッサー410は、表示要求が受信されないならば、ステップST141においてNoと判定してステップST142へと進む。
 ステップST142においてプロセッサー410は、変数の値を変更するか否かを判定する。プロセッサー410は、例えば、入力デバイス460に表示された変数の値を変更するように指示する操作入力が行われた場合に変数の値を変更すると判定する。プロセッサー410は、変数の値を変更すると判定しないならば、ステップST142においてNoと判定してステップST141へと戻る。かくして、プロセッサー410は、表示要求が受信されるか、変数の値を変更すると判定するまでステップST141及びステップST142を繰り返す待受状態となる。
 プロセッサー410は、ステップST141及びステップST142を繰り返す待受状態にあるときに表示要求が受信されたならば、ステップST141においてYesと判定してステップST143へと進む。
 ステップST143においてプロセッサー410は、変数画面に対応した画像を生成する。そして、プロセッサー410は、生成したこの画像を表示するように表示デバイス470に対して指示する。表示の指示を受けて表示デバイス470は、変数画面を表示する。
 変数画面の一例について図9を用いて説明する。図9は、表示デバイス470に表示される変数画面SC1aの一例を示す図である。変数画面は、表示要求に含まれる監視変数の値を含む画面である。変数画面は、表示された変数の値を変更するように指示する操作が可能である。また、変数画面は、変数の値をどのように変更するかを指示する操作が可能である。教示装置400の操作者は、例えば、入力デバイス460を操作することによってこれらの指示が可能である。変数画面SC1aは、一例として領域AR1を含む。
 領域AR1は、変数それぞれの数値を示している。データ[1]~データ[16]のそれぞれが変数それぞれに割り振られた番号を示す。ただし、図9に示す状態では、データ[1]及びデータ[2]の変数のみ存在する。データ[3]~データ[16]の変数は、使用されていないか存在しない。
 領域AR1に表示された変数それぞれは、入力デバイス460などを用いて選択する操作が可能である。
 また、領域AR1に表示された各変数は、入力デバイス460などを用いて値を変更する操作が可能である。当該操作が行われた場合、プロセッサー410は、図6のステップST142において変数の値を変更すると判定する。また、後述の変更情報は、当該操作による値の変更の内容を含む。
 プロセッサー410は、ステップST143の処理の後ステップST141へと戻る。
 以上より、プロセッサー410は、ステップST143は、表示デバイス470と協働して、変数の値を表示する表示部の一例として機能する。
 プロセッサー410は、ステップST141及びステップST142を繰り返す待受状態にあるときに変数の値を変更すると判定するならば、ステップST142においてYesと判定してステップST144へと進む。
 ステップST144においてプロセッサー410は、変更要求を生成する。変更要求は、変数の変更の内容を示す変更情報を含む。変更要求は、変更情報に従い監視変数の値を変更するように制御装置100に指示する情報である。プロセッサー410は、変更要求を生成した後、当該変更要求を制御装置100に送信するように通信インターフェース450に対して指示する。この送信の指示を受けて通信インターフェース450は、当該変更要求を制御装置100に送信する。送信された当該変更要求は、制御装置100の通信インターフェース160によって受信される。プロセッサー410は、ステップST144の処理の後、ステップST141へと戻る。
 以上より、プロセッサー410は、ステップST144の処理を実行することで、変数の値を変更する変更部の一例として機能する。
 一方、図7のステップST151において制御装置100のプロセッサー110は、通信インターフェース160によって変更要求が受信されるのを待ち受けている。プロセッサー110は、変更要求が受信されたならば、ステップST151においてYesと判定してステップST152へと進む。
 ステップST152においてプロセッサー110は、ステップST151で受信された変更要求中の変更情報に従い監視変数の値を変更する。プロセッサー110は、ステップST152の処理の後、ステップST151へと戻る。
 一方、図5のステップST134においてプロセッサー110は、補助記憶装置140などから第1実行情報を取得する。第1実行情報は、各監視変数について、監視変数の値がどのような値になった場合にどのような処理を実行するかを記憶する。第1実行情報は、例えば、監視変数を特定する情報、値及び実行する処理を示す情報を関連付けて記憶する。第1実行情報は、監視変数の値が関連付けられている値になった場合に関連付けられている処理を実行することを示す。
 第1実行情報は、一例として、起動領域133に記憶された監視変数が所定の値になった場合にロボット300を起動することを記憶する。第1実行情報は、一例として、アラーム領域134に記憶された監視変数が所定の値になった場合にロボット300を停止することを記憶する。なお、アラーム領域134に記憶される監視変数は、値が当該所定の値である場合に産業機械200においてアラームが発生したことを示す。
 ステップST135においてプロセッサー110は、設定変数241の値に対応する処理を実行するか否かを判定する。すなわち、プロセッサー110は、例えば、各監視変数について、値が第1実行情報において関連付けられた値である場合、第1実行情報において当該監視変数及び当該値に関連付けられた処理を実行すると判定する。プロセッサー110は、当該処理を実行すると判定しないならば、ステップST135においてNoと判定してステップST131へと戻る。対して、プロセッサー110は、当該処理を実行すると判定するならば、ステップST135においてYesと判定してステップST136へと進む。
 ステップST136においてプロセッサー110は、ステップST135で実行すると判定した処理を実行する。プロセッサー110は、ステップST136の処理の後、ステップST131へと戻る。以上のように、プロセッサー110は、監視変数を監視して、監視変数の値が所定の値となった場合、所定の処理を実行する。前述したように、プロセッサー110は、図3の処理によって監視変数に設定変数241の値を入力する。したがって、プロセッサー110は、図3及び図5の処理によって設定変数を監視し、設定変数の値が所定の値となった場合、所定の処理を実行する。
 第1実行情報において記憶された監視変数、所定の値、及び所定の処理の組み合わせの一例を示す。この一例における監視変数は、産業機械200においてアラームが発生したこと及びアラームの内容を示す設定変数241を格納する監視変数である。この一例における所定の値は、アラームが発生したことを示す値であり、例えば1である。この一例における所定の処理は、ロボット300の停止である。例えば停止部114がロボット300を停止する。プロセッサー110は、ステップST134においてこの一例における監視変数の値が1となったことを判定した場合、ステップST135においてロボット300を停止する。プロセッサー110は、例えば、ロボットプログラムを停止することでロボット300を停止する。
 また、所定の処理の他の例としては、ロボット300の起動、ロボット300に所定の動作をさせること、各種のロボットプログラムの実行、制御装置100が所定の処理を実行することなどがある。プロセッサー110は、例えば、起動命令を含むロボットプログラムを実行することでロボット300を起動する。例えば起動部113がロボット300を起動する。
 なお、所定の値は、範囲であっても良い。例えば、所定の値は、1~3であるとする。この場合、プロセッサー110は、監視変数の値が1~3となった場合に所定の処理を実行する。
 また、所定の値は、複数あっても良い。そして、所定の処理は、複数あっても良い。例えば、所定の値は、第1の所定の値及び第2の所定の値の2つあるとする。そして、所定の処理は、第1の所定の処理及び第2の所定の処理の2つあるとする。そして、第1の所定の値に対応する処理が第1の所定の処理で、第2の所定の値に対応する処理が第2の所定の処理であるとする。この場合、プロセッサー110は、監視変数の値が第1の所定の値である場合、第1の所定の処理を実行する。そして、プロセッサー110は、監視変数の値が第2の所定の値である場合、第2の所定の処理を実行する。
 また、監視変数の値及び所定の値は数値とは限らない。監視変数の値及び所定の値は、例えば、文字列、日付、ブーリアン型、ポインター、オブジェクト又は構造体などであっても良い。また、所定の値は、null又はnothingなどの値が無いことを示す値であっても良い。
 所定の処理について図10を用いてさらに説明する。例えば、ある設定変数241(以下「対象変数」という。)が、産業機械200がある動作を行った場合又は産業機械200に対してある操作が行われた場合(以下「値変更トリガー」という。)に値が変わるとする。この場合、制御システム1は、値変更トリガーに応じて制御装置100に何らかの所定の処理を行わせることが可能である。このような例を図10を用いて説明する。
 図10は、制御装置100及び産業機械200の動作の一例を説明するためのブロック図である。産業機械200は、入力デバイス260として、例えば起動ボタン261を備える。起動ボタン261は、産業機械200を起動及び停止するためのボタンである。産業機械200が停止中に起動ボタン261を操作した場合、産業機械200は、起動し、動作を開始する。産業機械200が動作中に起動ボタン261を操作した場合、産業機械200は、停止する。起動ボタン261は、産業機械200が停止中に操作された場合、起動要求信号を出力する。起動ボタン261は、産業機械200が動作中に操作された場合、停止要求信号を出力する。例えば、プロセッサー210が起動要求信号及び停止要求信号の入力を受ける。
 プロセッサー210は、起動要求信号の入力を受けた場合、設定変数241(対象変数)の値を、産業機械200が動作中であることを示す値に変更する。対して、プロセッサー210は、停止要求信号の入力を受けた場合、対象変数の値を、産業機械200が停止中であることを示す値に変更する。以上からも分かる通り、起動ボタン261に対する操作を値変更トリガーとして、この対象変数の値が変わる。あるいは、起動要求信号又は停止要求信号の入力を値変更トリガーとして、この対象変数の値が変わると言うこともできる。
 また、プロセッサー210は、ROM220又は補助記憶装置240に記憶されたプログラムの実行により産業起動部211として機能する。産業起動部211は、産業機械200が停止中である場合、起動ボタン261の操作に応じて、産業機械200を動作させるために産業機械プログラム242を起動する。
 制御装置100のプロセッサー110は、図3及び図4の説明で示したように、通信インターフェース160を介して、対象変数を取得する。制御装置100は、取得した対象変数又は当該対象変数の値を監視変数として起動領域133に記憶する。プロセッサー110は、起動領域133を監視することで、対象変数の値の変化を監視する。プロセッサー11は、対象変数の値が、産業機械200が停止中であることを示す値から産業機械200が動作中であることを示す値に変わった場合、所定の処理として例えばロボット300の起動を行う。例えば起動部113が当該起動を行う。また、プロセッサー11は、対象変数の値が、産業機械200が動作中であることを示す値から産業機械200が停止中であることを示す値に変わった場合、所定の処理として例えばロボット300の停止を行う。停止部114が当該停止を行う。
 このように、図10に示した以上の例では、起動ボタン261の操作によって、産業機械200だけでなくロボット300も起動又は停止することとなる。
 以上より、プロセッサー110は、ステップST135及びステップST136の処理を実行することで、格納領域に書き込まれた変数の値が所定の値である場合、所定の値に対応した所定の処理を実行する実行部の一例として機能する。
 また、プロセッサー110は、産業機械200から設定変数241を取得すると判定しないならば、すなわち産業機械200に設定変数241を書き込むと判定するならば、図3のステップST103においてNoと判定してステップST109へと進む。
 ステップST109においてプロセッサー110は、指示変数を取得する。指示変数は、後述の指示情報が示す書込み内容を示す変数である。プロセッサー110は、ステップST102で取得されたパラメーター情報中の取得情報を用いて、どの変数を指示変数として取得するかを決定する。取得情報は、どの変数を指示変数として取得するかを定めた情報である。プロセッサー110は、例えば、ロボット300のメモリ領域から指示変数を取得する。あるいは、プロセッサー110は、RAM130若しくは補助記憶装置140又は外部の装置などから指示変数を取得しても良い。
指示変数の値は、格納領域に格納されている値の一例である。したがって、プロセッサー110は、ステップST109の処理を実行することで、格納領域に格納されている値を取得するロボット変数取得部の一例として機能する。
 ステップST110においてプロセッサー110は、対象情報を生成する。対象情報は、書込み対象を示す情報である。書込み対象は、例えば、どの設定変数241が、値を書き込む(格納する)対象であるかを示す。対象情報は、例えば、変数名又はアドレスなどによって書込み対象又は書込み対象の位置を示す。プロセッサー110は、例えば、ステップST102で取得されたパラメーター情報中の対象決定情報を用いて書込み対象を決定する。対象決定情報は、値を書き込む対象がどの設定変数241であるかを定めた情報である。対象決定情報は、例えば、変数名又はアドレスなどによって当該設定変数241を定める。なお、対象決定情報は、ロボット変数取得部によって取得される値を格納する産業機械200の変数を示した割り当てデータの一例である。また、対象決定情報を記憶する補助記憶装置140などは、当該割り当てデータを記憶する割り当て記憶部の一例である。
 ステップST111においてプロセッサー110は、指示情報を生成する。指示情報は、設定変数241の書込み内容を示す情報である。指示情報が示す書込み内容は、例えば、ステップST109で取得された指示変数の値である。なお、対象情報は、値を書き込む産業機械の変数を示す変数指定データの一例である。
 ステップST112においてプロセッサー110は、書込み要求を生成する。書込み要求は、ステップST110で生成された対象情報、及びステップST111で生成された指示情報を含む。書込み要求は、当該対象情報で示す対象に、当該指示情報で示す内容を書き込むように産業機械200に指示する情報である。
 ステップST113においてプロセッサー110は、ステップST112で生成された書込み要求を産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該書込み要求を産業機械200に送信する。送信された当該書込み要求は、産業機械200の通信インターフェース250によって受信される。
 一方、産業機械200のプロセッサー210は、図4のステップST121及びステップST122を繰り返す待受状態にあるときに書込み要求が受信されたならば、ステップST122においてYesと判定してステップST126へと進む。
 ステップST126においてプロセッサー210は、ステップST122で受信された書込み要求に従って、補助記憶装置240又はRAM230などに記憶された書込み対象の設定変数241に、指示情報が示す値を書き込む。プロセッサー210は、指示情報が示す値と書込み対象の設定変数241の値が異なる場合には、値を上書きすることにより値を変更する。ただし、プロセッサー210は、指示情報が示す値と書込み対象の設定変数241の値が同一である場合には上書きの必要は無い。
 ステップST127においてプロセッサー210は、完了応答を生成する。完了応答は、書込み要求に基づく値の書込みが完了したことを示す情報である。
 ステップST128においてプロセッサー210は、ステップST127で生成した完了応答を、書込み要求の送信元の制御装置100に送信するように通信インターフェース250に対して指示する。この送信の指示を受けて通信インターフェース250は、当該完了応答を制御装置100に送信する。送信された当該完了応答は、制御装置100の通信インターフェース160によって受信される。プロセッサー210は、ステップST128の処理の後、ステップST121へと戻る。
 一方、図3のステップST114において制御装置100のプロセッサー110は、通信インターフェース160によって書込み要求が受信されるのを待ち受けている。プロセッサー110は、書込み要求が受信されたならば、ステップST114においてYesと判定してステップST101へと戻る。
 以上のように、プロセッサー110は、ステップST101~ステップST103及びステップST109~ステップST114を繰り返す。これにより、プロセッサー110は、定期的又は不定期に産業機械200に書込み要求を繰り返し送信する。
 以上より、プロセッサー110は、通信インターフェース250と協働してステップST112の処理を実行することで、ロボット変数取得部によって取得された値と、値を書き込む産業機械の変数を示す変数指定データとを、前記産業機械に周期的に繰り返し送信する送信部の一例として機能する。あるいは、プロセッサー110は、ステップST112の処理を実行することで送信部の一例として機能する。
 また、図8のステップST161において産業機械200のプロセッサー210は、補助記憶装置240又はRAM230などを参照して、各設定変数241の値を確認する。
 ステップST162においてプロセッサー210は、各設定変数241の値に応じた処理を実行するか否かを判定する。プロセッサー110は、例えば、設定変数241の値が、設定変数241ごとに予め定められた所定の値である場合、当該処理を実行すると判定する。プロセッサー210は、当該処理を実行しないならば、ステップST162においてNoと判定してステップST161へと戻る。対して、プロセッサー210は、当該処理を実行するならば、ステップST162においてYesと判定してステップST163へと進む。
 ステップST163においてプロセッサー210は、所定の値に対応した所定の処理を実行する。プロセッサー210は、ステップST163の処理の後、ステップST161へと戻る。以上のように、プロセッサー210は、図8の処理によって設定変数241を監視し、設定変数241の値が所定の値となった場合、所定の処理を実行する。
 第1実施形態の制御システム1によれば、制御装置100は、産業機械200から設定変数241を繰り返し読み込む(取得する)。これにより、制御装置100は、産業機械200の設定用の変数の監視が可能である。また、制御装置100は、設定変数241を取得することで、設定変数241をロボットの変数として使用することが可能である。また、従来のCNC産業機械に信号を追加する場合、ラダープログラムにその追加した信号の処理を追加する必要がある。しかしながら、CNC産業機械のエンドユーザーは通常ラダープログラムの変更を行えない。したがって、エンドユーザーは、ラダープログラムを変更するに産業機械メーカーなどに依頼する。このため、ラダープログラムの変更に多大な工数がかかることになる。一方、設定変数241であれば、ラダープログラムを変更する必要なく加工プログラム内で参照できる。
 第1実施形態の制御システム1によれば、制御装置100は、複数の変数の値を格納する割り当て記憶領域を示す1つの箇所又は1つのアドレスを記憶する割付情報を用いる。これにより、制御装置100は、複数の設定変数241をまとめて記憶することができる。
 また、第1実施形態の制御システム1によれば、制御装置100は、産業機械200から取得した設定変数241が所定の値であった場合に対応する所定の処理を実行する。これにより、産業機械200は、設定変数241を用いて制御装置100及びロボット300の操作が可能である。
 また、第1実施形態の制御システム1によれば、所定の処理は、ロボットプログラムの実行又は停止である。したがって、第1実施形態の制御システム1では、産業機械200がロボットプログラムを実行又は停止させることができる。
 また、第1実施形態の制御システム1によれば、制御装置100は、アラームが発生したことを示す設定変数241の値に基づき、ロボット300を停止させる。したがって、第1実施形態の制御装置100は、制御装置100に異常が発生した場合などにおいてロボット300を停止させることができる。
 また、第1実施形態の制御システム1によれば、制御装置100は、指示変数を繰り返し取得し、書込み要求を産業機械200に送信する。これにより、制御装置100は、指示変数の値が変化した場合に産業機械200の設定変数241を書き換えることができる。したがって、制御装置100は、指示変数を用いて産業機械200の操作が可能である。
 また、第1実施形態の制御システム1によれば、教示装置400は、設定変数241の値を変更する。これにより、第1実施形態の制御システム1は、設定変数241を人の手によって書き換え可能である。
〔第2実施形態〕
 第2実施形態の制御システム1では、第1実施形態とは異なり、制御装置100は設定変数241をIO(input/output)データに変換してIOメモリ領域に記憶する。
 また、第2実施形態の制御システム1は、第1実施形態とは異なり、指示変数がIOデータである。また、指示変数は、IOメモリ領域に記憶されている。
 第2実施形態の制御システム1の構成は第1実施形態と同様であるので説明を省略する。
 第2実施形態では、補助記憶装置140などは、割付情報に代えて後述のIOメモリ情報を記憶している。第2実施形態では、補助記憶装置140などは、第1実行情報に代えて後述の第2実行情報を記憶している。
 以下、第2実施形態に係る制御システム1の動作を図4~図8、図11及び図13などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図11は、産業機械200のプロセッサー210による処理の一例を示すフローチャートである。プロセッサー210は、例えば、ROM220又は補助記憶装置240などに記憶されたプログラムに基づいて図11の処理を実行する。図13は、教示装置400のプロセッサー410による処理の一例を示すフローチャートである。プロセッサー410は、例えば、ROM420又は補助記憶装置440などに記憶されたプログラムに基づいて図13の処理を実行する。
 第2実施形態では、制御装置100のプロセッサー110は、図5、図7及び図11に示す処理を実行する。プロセッサー110は、例えば、図5、図7及び図11の処理を並行又は並列で実行する。第2実施形態では、産業機械200のプロセッサー210は、第1実施形態と同様に図4及び図8に示す処理を実行する。第2実施形態では、教示装置400のプロセッサー410は、図6及び図13に示す処理を実行する。第2実施形態について第1実施形態と同様の動作については説明を省略する。
 第2実施形態では、産業機械200のプロセッサー210は、図4のST125において設定変数241を浮動小数点型のデータとして送信する。プロセッサー210は、例えば、設定変数241を浮動小数点型に変換して送信する。あるいは、プロセッサー210は、浮動小数点型の状態で記憶されている設定変数241を送信する。なお、産業機械200は、浮動小数点型として、32ビットの浮動小数点型又は64ビットの倍精度浮動小数点型などを用いる。倍精度浮動小数点型であれば、先頭から、符号部1ビット、指数部11ビット、仮数部52ビットの順で合計64ビットが並んでいる。
 各設定変数241は、通常1ビットである。浮動小数点型の各ビットに各設定変数241の値を格納することで、倍精度浮動小数点型のデータであれば64個の1ビットの設定変数241の値を格納できる。nビットの浮動小数点型のデータであれば、n個の1ビットの設定変数241の値を格納できる。なお、nは正数である。
 産業機械200は、2ビット以上の設定変数241を用いることもできる。この場合、mビットの設定変数241であれば、浮動小数点型のデータは、mビットを用いて当該設定変数241の値を格納する。なお、mは、2以上の整数である。2ビット以上の設定変数241を用いる場合には、nビットの浮動小数点型のデータであれば、合計nビットまでの複数の設定変数241の値を格納できる。
 なお、制御装置100の補助記憶装置140及び産業機械200の補助記憶装置240などはビット情報を記憶している。ビット情報は、浮動小数点型のデータのどのビットがどの設定変数241の値を格納するかを定めたデータである。
 産業機械200のプロセッサー210は、ビット情報を用いて、設定変数241を浮動小数点型のデータに変換する。あるいは、プロセッサー210は、ビット情報を用いて、設定変数241を浮動小数点型のデータの状態で補助記憶装置240又はRAM230などに記憶する。
 第2実施形態では、制御装置100のプロセッサー110は、図11のステップST106でYesと判定したならばステップST201へと進む。
 ステップST201においてプロセッサー110は、ステップST106で受信された設定変数241をIOデータに変換する。IOデータは、「0」及び「1」、「ON」及び「OFF」又は「True」及び「False」のように2値をとるデータが複数並んだデータである。したがって、IOデータは、ブーリアン型変数の配列のようなデータである。2値をとるデータは、1ビットの2進数のデータと見ることもできる。プロセッサー110は、設定変数241をIOデータへ変換する。IOデータへの変換の方法として以下に(i)及び(ii)の2種類を示す。
(i)変換方法1
 変換方法1では、バイナリ表現の変数の各ビットをIOとして使用する。受信した設定変数241はバイナリ表現の変数である浮動小数点型のデータである。このため、プロセッサー110は、浮動小数点型の各ビットの値をそのまま用いてIOデータとする。例えば、浮動小数点型のデータの先頭4桁が「0100」である場合、IOデータの1つ目は「0」、2つ目は「1」、3つ目は「0」、4つ目は「0」である。
(ii)変換方法2
 変換方法2は、設定変数241の値の小数点以下を四捨五入した正数の絶対値を取り出し、バイナリに変換してIOとして使用する方法である。変換前の浮動小数点型のデータを10進数で表した数が例えば「-1234.567」であるとする。この場合、プロセッサー110は、「-1234.567」の小数点以下を四捨五入して「-1234」とする。そして、プロセッサー110は、この値の絶対値を求める。ここでは、絶対値は、「1234」である。さらに、プロセッサー110は、この絶対値を2進数の整数型のデータに変換する。ここでは、2進数に変換された値は、一例として16ビットであれば「0000 0100 1101 0011」である。プロセッサー110は、この値の各ビットを、IOデータとして用いる。この値であれば、IOデータの1つ目は「0」、2つ目は「0」、3つ目は「0」、4つ目は「0」、5つ目は「0」、6つ目は「1」、7つ目は「0」…である。
 設定変数241は、浮動小数点型であるため、ビットごとの操作ができない場合がある。この場合にプロセッサー210から制御装置100の特定のIOのみを操作する場合に変換方法1を用いると、ユーザーは特定のビットを操作した場合の浮動小数点型を算出する必要があり、手間となる。変換方法2は通信するデータ量が少ない代わりに、この手間を軽くする効果がある。
 以上より、プロセッサー110は、ステップST201の処理を実行することで、取得部によって取得された変数の値をIOデータに変換するIO変換部の一例として機能する。
 ステップST202においてプロセッサー110は、IOメモリ情報を取得する。IOメモリ情報は、IOメモリ領域132についての情報を記憶する。IOメモリ情報は、IOメモリ領域132のどこにどの設定変数241の値を格納するかを示す情報を含む。IOメモリ情報は、例えば、変換されたIOデータの1個目をIOメモリ領域132のどのアドレスに記憶するかを記憶することで、各設定変数241の値をどこに記憶するかを示す。例えばIOデータの1個目記憶するアドレスがXであれば、IOデータの2個目を記憶するアドレスはX+1である。また、IOメモリ情報は、各アドレスにどのような設定変数241を格納するかを示す情報を含んでも良い。なお、IOメモリ情報は、割り当てデータの一例である。
 ステップST203においてプロセッサー110は、ステップST201で変換したIOデータを、IOメモリ領域132のIOメモリ情報で示されたアドレスに記憶する。これにより、IOメモリ領域132は、各ビットに設定変数241を記憶する。プロセッサー110は、ステップST203の処理の後、ステップST201へと戻る。
 なお、IOメモリ領域132は、変数の値を記憶する格納領域の一例である。また、IOメモリ領域132のうち、設定変数241の値を格納する領域は、変数の値を記憶する格納領域の一例である。
 以上より、プロセッサー110は、図11の処理を実行することで、産業機械から変数の値を繰り返し取得する取得部の一例として機能する。
 第2実施形態では、プロセッサー110は、図5の処理において、監視変数に代えて、IOメモリ領域132に記憶された設定変数241を用いる。
 第2実施形態では、プロセッサー110は、ステップST134~ステップST136の処理において、第1実行情報に代えて第2実行情報を用いる。第2実行情報は、例えば、IOメモリ領域132の各アドレスについて、どのような値になった場合にどのような処理を実行するかを記憶する。第2実行情報は、例えば、IOメモリ領域132のアドレス、値及び実行する処理を示す情報を関連付けて記憶する。第2実行情報は、当該IOメモリ領域132のアドレスの値が関連付けられている値になった場合に関連付けられている所定の処理を実行することを示す。なお、第2実行情報は、複数のIOメモリ領域132のアドレスの値のそれぞれが、それぞれのアドレスごとに定められた所定の値になった場合にどのような処理を実行するかを記憶できても良い。例えば、第2実行情報は、あるアドレスY1の値が1且つあるアドレスY2の値が0である場合に所定の処理を実行することなどを記憶することができても良い。
 第2実施形態では、プロセッサー110は、ステップST135において、例えば、各IOメモリ領域132のアドレスについて、当該アドレスに記憶された値が第2実行情報において関連付けられた値である場合、第2実行情報において当該アドレス及び当該値に関連付けられた処理を実行すると判定する。以上のように、プロセッサー110は、IOメモリ領域132の各アドレスに格納された値を監視して、当該値が所定の値となった場合、所定の処理を実行する。前述したように、プロセッサー110は、図11の処理によってIOメモリ領域132に設定変数241の値を入力する。したがって、プロセッサー110は、図11及び図5の処理によって設定変数241を監視し、設定変数241の値が所定の値となった場合、所定の処理を実行する。
 第2実施形態では、変更要求は、変更情報に従いIOメモリ領域132に記憶された設定変数241の値を変更するように制御装置100に指示する情報である。制御装置100のプロセッサー110は、受信された変更要求中の変更情報に従いIOメモリ領域132に記憶された設定変数241の値を変更する。
 第2実施形態における変数画面の一例について、図12を用いて説明する。図12は、表示デバイス470に表示される変数画面SC1bの一例を示す図である。なお、変数画面SC1bは、(ii)変換方法2で変換された設定変数241を表示する変数画面である。変数画面SC1bは、一例として、領域AR2を含む。
 領域AR2は、バイナリ表現の変数の各ビットの値を示す。なお、領域AR2に示すバイナリ表現の変数は、データ[1]の(ii)変換方法2で変換されたバイナリ表現の変数である。データ[1]は、各ビットが設定のための領域として用いられている。データ[1]を32ビットの浮動小数点型の数値として見た場合には21.123という数値になる。また、「21.123」を(ii)変換方法2で変換した値は、10進数で「21」、2進数で「0000 0000 0001 0101」である。ただし、ここでは2進数の下位16桁のみ示した。上位16桁は全て0である。
 また、領域AR2に表示された各ビットは、入力デバイス460などを用いて値を変更する操作が可能である。当該操作が行われた場合、プロセッサー410は、図6のステップST142において変数の値を変更すると判定する。また、変更情報は、当該操作による値の変更の内容を含む。
 第2実施形態では、プロセッサー110は、監視変数に代えてIOメモリ領域132に記憶された設定変数241を変更する。
 第2実施形態では、プロセッサー110は、ステップST135において、IOメモリ領域132に記憶された設定変数241の値が予め定められた所定の値である場合に、設定変数241の値に応じた処理を実行すると判定する。
 また、教示装置400は、ロボットプログラムの確認及び編集のための画面(以下「編集画面」という。)の表示が可能である。編集画面及び編集画面に関する処理について図13を用いて説明する。教示装置400のプロセッサー410は、例えば、編集画面を表示する指示を受けたことに応じて図13に示す処理を開始する。
 図13のステップST211において教示装置400のプロセッサー410は、編集するロボットプログラムの指定を待ち受ける。教示装置400の操作者は、編集する対象のロボットプログラムを指定する操作を行う。プロセッサー410は、編集するロボットプログラムの指定を受けたならば、ステップST211においてYesと判定してステップST212へと進む。
 ステップST212において教示装置400のプロセッサー410は、図14に示すような編集画面SC2に対応した画像を生成する。そして、プロセッサー410は、生成したこの画像を表示するように教示装置400に対して指示する。表示の指示を受けて教示装置400のプロセッサー410は、表示デバイス470に編集画面SC2を表示させる。
 図14は、編集画面SC2の一例を示す図である。編集画面SC2は、ロボットプログラムを編集するための画面である。編集画面SC2は、一例として、領域AR10及び領域AR20を含む。
 領域AR10は、編集対象のプログラムを表示する領域である。領域AR10は、当該プログラムを1又は複数の画像IM11を用いて表示している。画像IM1のそれぞれは、当該プログラム中の各命令を示す。画像IM1は、例えば、ピクトグラムなどによって命令の内容を示す。なお、領域AR10は、文字などによって各命令を表示しても良い。領域AR10を用いることで、命令の追加、変更及び削除などが可能である。
 また、領域AR10は、編集対象の命令を指定する操作が可能である。例えば、各画像IM1は、ボタンになっている。画像IM1を操作することで、操作した画像IM1に対応する命令が編集対象となる。なお、どの命令も編集対象として指定されていない状態では、例えば、先頭の命令が自動的に編集対象となる。
 領域AR20は、編集対象の命令を編集するための領域である。領域AR20には、編集対象の命令を表示する。領域AR20は、一例として、領域AR21~領域AR25を含む。なお、領域AR20は、編集対象の命令によっては領域AR21~領域AR25とは異なる領域を含んでも良い。
 領域AR21は、編集対象の命令を表示する領域である。図14には、当該命令として「DO [1]」が表示されている。「DO [1]」は、出力命令である。なお、このうち「1」の部分は、領域AR22内に表示された数字である。
 領域AR22は、値の変更などを行う対象の設定変数241を指定するための領域である。領域AR22に、設定変数241を示す数字、アドレス又は変数名などを入力することで、対象の設定変数241を指定することができる。「値の変更などを行う対象として指定されている設定変数241」を以下「指定変数」という。また、領域AR22は、指定された設定変数241を特定する数字、アドレス又は変数名などを表示する。
 領域AR23は、指定変数の値を変更するための領域である。領域AR23に値を入力することで、指定変数の値の変更が可能である。また、領域AR23は、指定変数の現在の値を表示する。
 領域AR24は、領域AR21に表示された命令を実行した場合に値が変更されるデータ(以下「変更データ」という。)の現在値を表示する。変更データは、例えば、指示変数である。したがって、例えばロボット300のメモリ領域などが変更データを記憶する。
 領域AR25は、変更データについて、当該命令実行後の値を表示する。
 ステップST213においてプロセッサー410は、編集対象の命令を変更するか否かを判定する。プロセッサー410は、例えば、編集対象の命令の変更を指示する操作が行われた場合には、編集対象の命令を変更すると判定する。プロセッサー410は、編集対象の命令を変更すると判定しないならば、ステップST213においてNoと判定してステップST214へと進む。
 ステップST214においてプロセッサー410は、指定変数を指定する操作が行われたか否かを判定する。例えば、前述した領域AR22への入力が指定変数を指定する操作である。プロセッサー410は、指定変数を指定する操作が行われないならば、ステップST214においてNoと判定してステップST215へと進む。
 ステップST215においてプロセッサー410は、指定変数の値の変更を指示する操作が行われたか否かを判定する。例えば、前述した領域AR23への値の入力が値の変更を指示する操作である。プロセッサー410は、指定変数の値の変更を指示する操作が行われないならば、ステップST215においてNoと判定してステップST214へと戻る。かくして、プロセッサー410は、編集対象の命令を変更すると判定するか、指定変数を指定する操作が行われるか、指定変数の値の変更を指示する操作が行われるまでステップST213~ステップST215を繰り返す待受状態となる。
 プロセッサー410は、ステップST213~ステップST215を繰り返す待受状態にあるときに編集対象の命令を変更すると判定するならば、ステップST213においてYesと判定してステップST212へと戻る。そして、プロセッサー410は、ステップST212の処理において編集画面SC1の表示を変更後の編集対象の命令に対応した画面に更新する。
 プロセッサー410は、ステップST213~ステップST215を繰り返す待受状態にあるときに指定変数を指定する操作が行われたならば、ステップST214においてYesと判定してステップST216へと進む。
 ステップST216においてプロセッサー410は、指定変数の値を制御装置100のRAM130などから取得する。
 ステップST217においてプロセッサー410は、変更データの現在値を取得する。
 ステップST218においてプロセッサー410は、指定変数の現在の値を用いて、編集対象の命令を実行した後の変更データの値を算出する。
 ステップST219においてプロセッサー410は、ステップST217で取得した値を領域AR24に表示させる。また、プロセッサー410は、ステップST218で算出した値を領域AR25に表示させる。プロセッサー410は、ステップST219の処理の後、ステップST212へと戻る。
 プロセッサー410は、ステップST213~ステップST215を繰り返す待受状態にあるときに指定変数の値の変更を指示する操作が行われたならば、ステップST215においてYesと判定してステップST220へと進む。
 ステップST220においてプロセッサー410は、変更要求を生成する。変更要求は、変数の変更の内容を示す変更情報を含む。変更要求は、変更情報に従いIOメモリ領域132に記憶された設定変数241の値を変更するように制御装置100に指示する情報である。変更情報は、指定変数を特定する番号又はアドレス及び指定変数の変更後の値を含む。変更後の値は、指定変数の値の変更を指示する操作によって指示された値である。変更要求は、図6のステップST144と同様のものである。プロセッサー410は、変更要求を生成した後、当該変更要求を産業機械200に送信するように通信インターフェース450に対して指示する。この送信の指示を受けて通信インターフェース450は、当該変更要求を産業機械200に送信する。送信された当該変更要求は、産業機械200の通信インターフェース450によって受信される。
 以上より、プロセッサー410は、ステップST215及びステップST220の処理を実行することで、ロボットプログラムの編集に応じて前記変数の値を変更する変更部の一例として機能する。
 ステップST221においてプロセッサー410は、指定変数の変更後の値を用いて、編集対象の命令を実行した後の変更データの値を算出する。
 ステップST222においてプロセッサー410は、ステップST221で算出した値を領域AR25に表示させる。プロセッサー410は、ステップST222の処理の後、ステップST214へと戻る。
 以上より、プロセッサー410は、図13に示す処理を実行することでロボットを制御するためのロボットプログラムを編集する編集部の一例として機能する。
 また、第2実施形態では、制御装置100のプロセッサー110は、ステップST103においてNoと判定したならばステップST204へと進む。
 ステップST204においてプロセッサー110は、設定変数241の書込み内容を示す値をRAM130のIOメモリ領域132から取得する。当該値は、例えば、2進数のIOデータの形式の指示変数である。なお、当該値は、例えばステップST201と同様の方法によってIOデータに変換されたものである。プロセッサー110は、指示変数を、ステップST201と同様の方法によってIOデータに変換してIOメモリ領域132に記憶する。
 ステップST205においてプロセッサー110は、ステップST204で取得した値を2進数のIOデータから、IOデータへの変換前のデータ形式に変換する。変換前のデータ形式は、設定変数241のデータ形式と同一の形式である。変換前のデータ形式は、例えば10進数の数値である。
 設定変数241のデータ形式は、通常IOデータではない。以上より、プロセッサー110は、ステップST205の処理を実行することで、ロボット変数取得部によって取得された値をIOデータ以外のデータ形式に変換する変換部の一例として機能する。
 ステップST206においてプロセッサー110は、書込み要求を生成する。書込み要求は、第2実施形態と同様に対象情報及び指示情報を含む。ただし、指示情報が示す書込み内容は、ステップST205で変換された値を示す。プロセッサー110は、書込み要求を生成した後、当該書込み要求を産業機械200に送信するように通信インターフェース160に対して指示する。この送信の指示を受けて通信インターフェース160は、当該書込み要求を産業機械200に送信する。送信された当該書込み要求は、産業機械200の通信インターフェース250によって受信される。プロセッサー110は、ステップST206の処理の後、ステップST201へと戻る。
 プロセッサー210は、第2実施形態と同様に、書込み要求に従って設定変数241を書き換える。
 第2実施形態の制御システム1は、第2実施形態と同様の効果が得られる。
 また、第2実施形態の制御システム1によれば、制御装置100は、設定変数241をIOデータに変換する。ロボットのプログラムを外部から実行又は停止するなどの所定の処理を行うために、あらかじめ用途を割り当てた信号を用意しておけば、1bitのデータで操作することができ、データサイズも小さく、システムの可読性が良い。また、1bitのデータを用いることで、数値データを送信するよりもデータ通信の量を小さくできる。
 また、第2実施形態の制御システム1によれば、制御装置100は、バイナリ表現の変数の各ビットをIOとして使用する。これにより、制御装置100は、1つの数値に複数の設定を含めることができる。
 また、第2実施形態の制御システム1によれば、制御装置100は、IOメモリ領域132を有する。したがって、制御装置100は、指示変数をIOデータとして記憶可能である。
 また、第2実施形態の制御システム1によれば、教示装置400は、ロボットプログラムを編集に応じて設定変数241の値を変更する。これにより、第2実施形態の制御システム1は、設定変数241の値の変更をともなうロボットプログラムの編集が可能である。
 上記の実施形態は、以下のような変形も可能である。
 実施形態の制御システムは、教示装置400に代えて、ロボットプログラムを作成する機能を備えない表示装置を含んでも良い。
 上記の実施形態において教示装置400が実行する処理の一部又は全部を制御装置100又はロボット300が実行しても良い。また、実施形態の制御装置は、教示装置400が備える構成の一部又は全部を含んでいても良い。
 プロセッサー110、プロセッサー210及びプロセッサー410は、上記実施形態においてプログラムによって実現する処理の一部又は全部を、回路のハードウェア構成によって実現するものであっても良い。
 実施形態の処理を実現するプログラムは、例えば装置内の非一時的な記憶媒体に記憶された状態で譲渡される。しかしながら、当該装置は、当該プログラムが記憶されない状態で譲渡されても良い。そして、当該プログラムが別途に譲渡され、当該装置へと書き込まれても良い。このときのプログラムの譲渡は、例えば、リムーバブルで非一時的な記憶媒体に記録して、あるいはインターネット又はLANなどのネットワークを介したダウンロードによって実現できる。
 以上、本発明の実施形態を説明したが、例として示したものであり、本発明の範囲を限定するものではない。本発明の実施形態は、本発明の要旨を逸脱しない範囲において種々の態様で実施可能である。
 1 制御システム
 100 制御装置
 110,210,410 プロセッサー
 111 割付部
 112 データ変換部
 113 起動部
 114 停止部
 115 対象部
 120,220,420 ROM
 130,230,430 RAM
 131 メモリ領域
 132 IOメモリ領域
 133 起動領域
 134 アラーム領域
 140,240,440 補助記憶装置
 150 制御インターフェース
 160,250,450 通信インターフェース
 170,280,480 バス
 200 産業機械
 211 産業起動部
 241 設定変数
 242 産業機械プログラム
 243 ラダープログラム
 260,460 入力デバイス
 261 起動ボタン
 270,470 表示デバイス
 300 ロボット
 400 教示装置
 

Claims (11)

  1.  産業機械から変数の値を繰り返し取得する取得部と、
     前記取得部によって取得された前記変数の値を、前記変数の値を格納する格納領域に書き込む格納部と、
     前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する割り当て記憶部と、を備えるロボット制御装置。
  2.  前記取得部によって取得された前記変数の値をIOデータに変換するIO変換部をさらに備え、
     前記格納部は、前記IO変換部によって変換された前記変数の値を前記格納領域に書き込み、
     前記格納領域は、IOメモリ領域内にある、請求項1に記載のロボット制御装置。
  3.  前記取得部は、複数の前記変数の値を繰り返し取得し、
     前記割り当て記憶部は、複数の前記変数の値を格納する前記格納領域の1つの前記箇所又は1つの前記アドレスを示す前記割り当てデータを記憶し、
     前記格納部は、前記割り当てデータに基づき、複数の前記変数の値を前記格納領域に書き込む、請求項2に記載のロボット制御装置。
  4.  前記格納領域に書き込まれた前記変数の値が所定の値である場合、前記所定の値に対応した所定の処理を実行する実行部をさらに備える、請求項1に記載のロボット制御装置。
  5.  前記所定の処理は、ロボットプログラムの実行又は停止である、請求項4に記載のロボット制御装置。
  6.  前記変数は、アラームが発生したことを示し、
     前記所定の処理は、ロボットの停止である、請求項4に記載のロボット制御装置。
  7.  格納領域に格納されている値を取得するロボット変数取得部と、
     前記ロボット変数取得部によって取得される値を格納する産業機械の変数を示した割り当てデータを記憶する割り当て記憶部と、
     前記ロボット変数取得部によって取得された値と、前記値を書き込む前記産業機械の変数を示す変数指定データとを、前記産業機械に周期的に繰り返し送信する送信部と、を備える、ロボット制御装置。
  8.  前記格納領域は、IOメモリ領域であり、
     前記格納領域に記憶された値は、IOデータであり、
     前記ロボット変数取得部は、前記IOデータを取得し、
     前記ロボット変数取得部によって取得された値をIOデータ以外のデータ形式に変換する変換部をさらに備え、
     前記送信部は、前記変換部によって変換された値を前記産業機械に送信する、請求項7に記載のロボット制御装置。
  9.  ロボット制御装置及び表示装置を含み、
     前記ロボット制御装置は、
      産業機械から変数の値を繰り返し取得する取得部と、
      前記取得部によって取得された前記変数の値を、前記変数の値を格納する格納領域に書き込む格納部と、
      前記変数を書き込む、前記格納領域の箇所又はアドレスを示す割り当てデータを記憶する割り当て記憶部と、を備え、
     前記表示装置は、前記変数の値を表示する表示部を備える、ロボット制御システム。
  10.  前記表示装置は、前記変数の値を変更する変更部をさらに備える、請求項9に記載のロボット制御システム。
  11.  前記表示装置は、
      ロボットを制御するためのロボットプログラムを編集する編集部と、
      前記ロボットプログラムの編集に応じて前記変数の値を変更する変更部と、をさらに備える、請求項9に記載のロボット制御システム。
     
PCT/JP2023/012943 2023-03-29 2023-03-29 ロボット制御装置及びロボット制御システム Ceased WO2024201835A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202380095971.6A CN120883155A (zh) 2023-03-29 2023-03-29 机器人控制装置以及机器人控制系统
JP2023543023A JP7534552B1 (ja) 2023-03-29 2023-03-29 ロボット制御装置及びロボット制御システム
DE112023005683.8T DE112023005683T5 (de) 2023-03-29 2023-03-29 Roboter-Steuerungsvorrichtung und Roboter-Steuerungssystem
PCT/JP2023/012943 WO2024201835A1 (ja) 2023-03-29 2023-03-29 ロボット制御装置及びロボット制御システム
TW113108665A TW202438264A (zh) 2023-03-29 2024-03-08 機器人控制裝置及機器人控制系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2023/012943 WO2024201835A1 (ja) 2023-03-29 2023-03-29 ロボット制御装置及びロボット制御システム

Publications (1)

Publication Number Publication Date
WO2024201835A1 true WO2024201835A1 (ja) 2024-10-03

Family

ID=92261450

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/012943 Ceased WO2024201835A1 (ja) 2023-03-29 2023-03-29 ロボット制御装置及びロボット制御システム

Country Status (5)

Country Link
JP (1) JP7534552B1 (ja)
CN (1) CN120883155A (ja)
DE (1) DE112023005683T5 (ja)
TW (1) TW202438264A (ja)
WO (1) WO2024201835A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020144772A1 (ja) * 2019-01-09 2020-07-16 三菱電機株式会社 数値制御装置および数値制御方法
WO2022097719A1 (ja) * 2020-11-09 2022-05-12 ファナック株式会社 数値制御システム及び産業機械の制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020144772A1 (ja) * 2019-01-09 2020-07-16 三菱電機株式会社 数値制御装置および数値制御方法
WO2022097719A1 (ja) * 2020-11-09 2022-05-12 ファナック株式会社 数値制御システム及び産業機械の制御方法

Also Published As

Publication number Publication date
JPWO2024201835A1 (ja) 2024-10-03
DE112023005683T5 (de) 2025-11-27
TW202438264A (zh) 2024-10-01
CN120883155A (zh) 2025-10-31
JP7534552B1 (ja) 2024-08-14

Similar Documents

Publication Publication Date Title
JP4877068B2 (ja) ソフトウェア開発支援プログラム、ソフトウェア開発支援方法
JP6821101B1 (ja) 数値制御装置
JP6608889B2 (ja) 数値制御装置、産業機械に含まれる装置及び数値制御システム
JP7534552B1 (ja) ロボット制御装置及びロボット制御システム
CN113366450B (zh) 信息处理装置、备份方法、恢复方法及程序
CN119403661A (zh) 监视装置以及机器人监视系统
WO2019207679A1 (ja) モニタ支援装置、プログラマブルロジックコントローラ、モニタ支援方法およびモニタ支援プログラム
CN112643403B (zh) 机床的参数设定装置以及参数设定系统
JPH09244727A (ja) Cnc装置のマン・マシン・インターフェイス操作方法
JP2003271209A (ja) 制御装置並びに拡張機器及びプログラミングツール
JP7572542B2 (ja) ロボット制御装置、ロボット制御システム及びロボット制御方法
JP2003295910A (ja) ユニット及びツール機器並びにプログラム製品
JPH0399380A (ja) 収集データの格納方法
JP2880330B2 (ja) プログラマブルコントローラのプログラミング装置
CN107003649A (zh) 系统设计辅助工具
JPH07253876A (ja) プログラム作成装置
JPH0863219A (ja) プログラム高速チェック機能を有する数値制御装置
JPH1091477A (ja) 制御用マイクロコンピュータ装置及び該装置の保守ツール
JP4813823B2 (ja) テストシステム及びテスト方法
JPWO2018096675A1 (ja) 加工プログラム変換装置及び数値制御装置
JP2002297211A (ja) Ncプログラムの集約方法。
JP2001318710A (ja) システムコントローラおよび生産システムにおけるデータ送受信方法
CN120523116A (zh) 可编程逻辑控制器、控制方法、存储介质和程序产品
JP4474631B2 (ja) モニタリングシステム
JP2007226446A (ja) 数値制御装置、工作機械及びコンピュータプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2023543023

Country of ref document: JP

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

Ref document number: 23930473

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202380095971.6

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 112023005683

Country of ref document: DE

WWP Wipo information: published in national office

Ref document number: 202380095971.6

Country of ref document: CN

122 Ep: pct application non-entry in european phase

Ref document number: 23930473

Country of ref document: EP

Kind code of ref document: A1