WO2025224967A1 - 産業機械システム、及び産業機械制御装置 - Google Patents

産業機械システム、及び産業機械制御装置

Info

Publication number
WO2025224967A1
WO2025224967A1 PCT/JP2024/016405 JP2024016405W WO2025224967A1 WO 2025224967 A1 WO2025224967 A1 WO 2025224967A1 JP 2024016405 W JP2024016405 W JP 2024016405W WO 2025224967 A1 WO2025224967 A1 WO 2025224967A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
sequence program
data
output
allocation
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.)
Pending
Application number
PCT/JP2024/016405
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 PCT/JP2024/016405 priority Critical patent/WO2025224967A1/ja
Priority to TW114113228A priority patent/TW202542663A/zh
Publication of WO2025224967A1 publication Critical patent/WO2025224967A1/ja
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts

Definitions

  • This disclosure relates to an industrial machinery system in which IO devices and sequence programs work in conjunction with each other, and an industrial machinery control device.
  • a sequencer Programmable Logic Controller: PLC
  • PLC Process Control Controller
  • IO devices peripheral devices
  • a sequence program can be created in a ladder programming language or the like and executed periodically inside the robot controller.
  • the operation program of the robot and the IO devices connected to the robot must be linked to the sequence program. Therefore, there is known a technology for industrial machine control devices that can both accommodate the diversity and scalability of systems and enable appropriate data sharing between control applications (PLC language) and information applications (C language, etc.), as disclosed in Patent Document 1, for example.
  • sequence programs have fixed addresses and symbols (X0, Y0) for identifying them, and values are stored within those addresses.
  • a robot controller has an address data area that is uniquely determined for each address (or symbol). By allocating the address data area to an IO device area, the robot controller can link the IO device with the address data area, thereby linking the IO device with the sequence program.
  • the PLC does not have fixed addresses. In other words, a sequence program created using the variable definition method may not be able to link with operation programs or IO devices.
  • sequence programs and variables are created using a sequence program creation tool (hereinafter also referred to as a "creation tool") installed on a personal computer or the like, but if an attempt is made to assign any IO device to a variable using the creation tool, the creation tool must have information on all types of IO devices, which is time-consuming.
  • sequence program creation tool hereinafter also referred to as a "creation tool”
  • the industrial machinery control device includes a sequence program execution unit that executes a sequence program, an I/O shared area that shares data between variables in the sequence program and IO devices or internal IO ports of the industrial machinery system, an IO allocation unit that sets the allocation between the I/O shared area and the IO devices or the internal IO ports, an IO data transfer unit that transfers data between the I/O shared area and the IO devices or the internal IO ports in accordance with the allocation by the IO allocation unit, and a variable data transfer unit that transfers data between the I/O shared area and variables in the sequence program.
  • the sequence program creation tool (“creation tool”) sets variable allocation data that allocates the I/O shared area to variables in the sequence program, and the variable data transfer unit transfers data between the I/O shared area and variables in the sequence program based on the variable allocation data set by the sequence program creation tool.
  • One aspect of the industrial machinery control device disclosed herein comprises a sequence program execution unit that executes a sequence program; an I/O shared area that shares data between variables in the sequence program and IO devices or internal IO ports of an industrial machinery system; an IO allocation unit that sets the allocation between the I/O shared area and the IO devices or internal IO ports; an IO data transfer unit that transfers data between the I/O shared area and the IO devices or internal IO ports in accordance with the allocation by the IO allocation unit; a variable allocation unit that sets variable allocation data that allocates the I/O shared area to variables in the sequence program; and a variable data transfer unit that transfers data between the I/O shared area and variables in the sequence program based on the variable allocation data.
  • FIG. 2 is a diagram illustrating an example of an outline of the operation of the industrial machine control device according to the embodiment.
  • FIG. 1 is a diagram illustrating an example of a functional block configuration of an industrial machinery system according to an embodiment.
  • FIG. 2 is a diagram illustrating an example of a functional block configuration of a robot control device.
  • FIG. 10 is a diagram illustrating an example of a setting screen for IO allocation of IO device areas by an IO allocation unit.
  • FIG. 10 is a diagram illustrating an example of variable allocation data.
  • FIG. 10 is a diagram illustrating an example of a sequence program created by a creation tool. 10 is a flowchart illustrating a data transfer process of the robot system.
  • FIG. 2 is a diagram illustrating an example of a functional block configuration of a robot control device.
  • FIG. 1 is a diagram illustrating an example of an outline of the operation of a conventional robot control device.
  • a sequence program of an industrial machine control device has variable data and program data.
  • the industrial machine control device also has an input/output shared area that shares data between variables in the sequence program and IO devices or internal IO ports connected to the industrial machine control device, and an IO device area in which the input/output shared area is allocated to IO devices or internal IO ports.
  • the industrial machine control device performs IO allocation between the IO device area and the input/output shared area, and performs variable allocation between the input/output shared area and variables in the sequence program, thereby transferring data between the input/output shared area and the IO devices or internal IO ports in accordance with the IO allocation, and transferring data between the input/output shared area and variables in the sequence program in accordance with the variable allocation.
  • the creation tool does not have to have information about the IO devices, and variables in a sequence program created using a method for defining variables can be linked to internal ports of IO devices or industrial machinery systems, etc. The above is an outline of this embodiment.
  • FIG. 2 is a diagram showing an example of a functional block configuration of an industrial machinery system according to an embodiment.
  • a robot is used as the industrial machine
  • a robot control device is used as the industrial machine control device
  • a robot program is used as the operation program.
  • the present invention is also applicable to various types of industrial machinery, such as machine tools, industrial robots, service robots, forging machines, and injection molding machines, as well as numerical control devices.
  • the operation program is an NC (Numerical Control) program.
  • An end effector such as a hand attached to the tip of a robot arm is also shown as an example of the IO device, but the present invention can also be applied to a conveyor, an open/close sensor, etc. as the IO device.
  • the industrial machinery system 1 includes a computer 10, a robot 20, a robot control device 30, and a machine tool 40.
  • the computer 10 includes a creation tool (sequence program creation tool) 101.
  • the robot 20 has a hand 21 attached to the tip of its arm.
  • a teaching pendant 35 is connected to the robot control device 30.
  • the computer 10, robot 20, robot controller 30, and machine tool 40 may be directly connected to one another via a connection interface (not shown).
  • the computer 10, robot 20, robot controller 30, and machine tool 40 may also be connected to one another and communicate via a network (not shown), such as a local area network (LAN) or the Internet.
  • the computer 10, robot 20, robot controller 30, and machine tool 40 each include a communication unit (not shown) for communicating with one another via such a connection.
  • the robot 20 is a known robot that operates under the control of a robot control device 30 (described later).
  • the robot 20 has a base for rotating around a vertical axis, an arm that moves and rotates, and an end effector such as a hand 21 attached to the tip of the arm.
  • the machine tool 40 is, for example, a machine tool known to those skilled in the art, and can perform operations linked to the operation of the robot 20 based on commands from a sequence program executed by the robot control device 30 described below.
  • the machine tool 40 according to this embodiment operates as an IO device linked to the robot 20. That is, for example, the machine tool 40 can link operations such that, when machining or the like is completed, the robot 20 replaces a workpiece and starts machining the replaced workpiece.
  • the robot controller 30 is a robot controller known to those skilled in the art for controlling the operation of the robot 20, and is connected to a teaching pendant 35.
  • the robot controller 30 generates control signals by executing a robot program that is generated using, for example, Cartesian coordinate values or axis values that indicate the position of the tip point of the robot 20 that an operator has taught using the teaching pendant 35.
  • the robot controller 30 operates the robot 20 by outputting the generated control signals to the robot 20.
  • the teaching pendant 35 is a device that teaches the robot 20, and may be a computer designed specifically for the robot control device 30, or may be a computer such as a tablet computer.
  • the robot control device 30 has a CPU (Central Processing Unit) 31 and a memory unit 32.
  • the CPU 31 also has a sequence program execution unit 311, an IO allocation unit 312, an IO data transfer unit 313, and a variable data transfer unit 314.
  • the storage unit 32 is a read-only memory (ROM), a random access memory (RAM), a solid-state drive (SSD), a hard disk drive (HDD), or the like.
  • the storage unit 32 stores an operating system and application programs executed by the CPU 31, as well as a sequence program created by a creation tool 101 of the computer 10 (described later) and a robot program created by a teaching pendant 35 or the like.
  • the storage unit 32 also has an input/output shared area 321 and an input/output device area 322.
  • the storage unit 32 may also store variable allocation data 323 set by the creation tool 101 of the computer 10 (described later).
  • the input/output shared area 321 and the input/output device area 322 will now be described, along with the IO allocation between the input/output device area 322 and the input/output shared area 321.
  • the input/output shared area 321 is a memory such as RAM in the storage unit 32, and is added to link the values of the IO device area 322, which contains the sequence program (described below), variables, and data for IO devices or internal IO ports of the industrial machinery system 1. As shown in FIG. 3, the input/output shared area 321 has, for example, N memory areas Data1 to DataN (N is an integer greater than or equal to 2) for sharing variables in the sequence program and data for IO devices or internal IO ports.
  • the IO device area 322 is memory such as RAM in the storage unit 32.
  • the IO device area 322 is an input/output port with the sequence program that is set for each IO device or internal IO port, and includes an input port and an output port.
  • an IO device IO Board A
  • an IO device is set with an IO device area (Input 1) that is an input port and an IO device area (Output 1) that is an output port.
  • FIG. 4 is a diagram showing an example of a setting screen for IO allocation of the IO device area 322 by the IO allocation unit 312.
  • the setting screen displays a setting area "IO Device” for setting an IO device or an internal IO port, and a setting area "Input/Output Shared Area” for setting the input/output shared area 321 (PLC area).
  • the "Device Name" in the setting area "IO Device” displays a list of IO devices or internal IO ports (for example, IO boards, network ports, Robot Output, Register, etc.) connected to the robot control device 30.
  • Robot Output is an output port with a terminal on the wrist of the robot 20
  • Register is an internal variable within the robot 20.
  • the input port and output port are displayed in the "IO Device Area” of the "IO Device” displayed on the setting screen. Note that since Register is an internal variable within the robot 20, a blank "-" is displayed.
  • the "Type” of the "IO device” displayed on the settings screen is automatically determined by the IO device, and the type of the IO device or internal IO port of the "IO device” (digital input/output, analog input/output, etc.) is displayed, and the "Size” displays the size of the IO device or internal IO port.
  • the "Storage area” field of the "Shared I/O area” displayed on the setting screen displays the storage area (Data i; i is a natural number) of the shared I/O area 321 that shares data for each IO device or internal IO port of the "Device Name" of the displayed "IO device.” Note that a blank “-” is stored in Register.
  • the "type” of the storage area (Data i; i is a natural number) included in the "shared input/output area” displayed on the setting screen is automatically determined by the type of the assigned IO device or internal IO port.
  • the starting offset of the input/output shared area 321 assigned to each IO device or internal IO port is set by the user via an input device such as a keyboard (not shown) included in the robot control device 30 or the teaching operation panel 35, etc.
  • the IO allocation data between the input/output shared area 321 and the IO device area 322 set by the IO allocation unit 312 using the setting screen of FIG. 4 may be stored in the storage unit 32. Now that the IO allocation has been explained, the variable allocation will be explained.
  • the variable allocation data 323 is data for allocating variable data in a sequence program created by a creation tool 101 of the computer 10 (to be described later) to the input/output shared area 321 .
  • FIG. 5 is a diagram showing an example of the variable allocation data 323. 5, the variable allocation data 323 allocates each variable in the sequence program to each storage area (Data i; i is a natural number) included in the shared input/output area 321 (PLC area).
  • Data i i is a natural number
  • the start offset of the input/output shared area 321 to be allocated is set based on the IO allocation between the input/output shared area 321 and the IO device area 322 set using the setting screen of FIG. In this way, a storage area (Data i; i is a natural number) in the input/output shared area 321 is allocated for each variable in the sequence program by the creation tool 101 of the computer 10 (to be described later).
  • the CPU 31 is a processor that performs overall control of the robot control device 30.
  • the CPU 31 reads out the system program and various software application programs stored in the storage unit 32, and controls the entire robot control device 30 in accordance with the system program and the application programs.
  • the CPU 31 is configured to realize the functions of a sequence program execution unit 311, an IO allocation unit 312, an IO data transfer unit 313, and a variable data transfer unit 314.
  • the CPU 31 may be configured to execute a robot program for the robot 20 .
  • the sequence program execution unit 311 operates, for example, as a PLC function in the robot control device 30, and executes a sequence program created by the creation tool 101 of the computer 10 (described below).
  • the IO allocation unit 312 sets the allocation between the input/output shared area 321 and the IO devices or the internal IO ports of the industrial machinery system 1 . Specifically, the IO allocation unit 312 sets the allocation between the memory areas Data1 to DataN of the input/output shared area 321 and the IO equipment or the internal IO ports of the industrial machinery system 1 using the setting screen shown in Figure 4, for example, based on user input operations via an input device (not shown) of the robot control device 30 or the teaching operation panel 35.
  • the IO data transfer unit 313 transfers data between the input/output shared area 321 and the IO device or the internal IO port of the industrial machinery system 1, for example, in accordance with the allocation made by the IO allocation unit 312 using the setting screen shown in Figure 4.
  • variable data transfer unit 314 transfers data between the input/output shared area 321 and variables in a sequence program created by a creation tool 101 of the computer 10 (to be described later). Specifically, the variable data transfer unit 314 transfers data between the input/output shared area 321 and variables in the sequence program based on variable allocation data 323 set by a creation tool 101 of the computer 10 (described later), for example.
  • the computer 10 is an information processing device such as a general personal computer or tablet terminal.
  • the computer 10 has a microprocessor including a CPU, RAM, ROM, and I/O (Input/Output), a storage device such as an SSD or HDD, input devices such as a keyboard and a mouse, and an output device such as a liquid crystal display.
  • the CPU executes each program read from the ROM or storage device, and the functions of the creation tool (sequence program creation tool) 101 in this embodiment are realized by the cooperation of the hardware and software (programs).
  • the creation tool 101 creates a sequence program based on, for example, user input operations via an input device (not shown), and sets variable allocation data 323 that assigns the input/output shared area 321 of the robot control device 30 to variables in the created sequence program.
  • FIG. 6 is a diagram showing an example of a sequence program created by the creation tool 101. As shown in FIG. As shown in Figure 6, variable data is defined on lines 2 to 7 of the sequence program. "hand_open” is a variable for the hand open/close command from the robot program, "hand_output” is a variable for the output to the hand 21, and “hand_status” is a variable for the status feedback of the hand 21.
  • position_x is a variable for the x-coordinate value of the robot
  • error_status is a variable for the error output
  • counter is a variable for the counter.
  • Lines 8 to 27 of the sequence program are program data, with line 8 incrementing the variable "counter.”
  • Lines 9 to 13 specify that the hand can be opened or closed only when the robot's x address is at a predetermined position (e.g., greater than -1000 and less than 1000), and request the robot's operation program to open the hand, output an open signal to the hand, and reset the variable "counter.”
  • Lines 14 to 18 request the robot's operation program to close the hand if the robot's x address is not at the predetermined position, output a close signal to the hand, and reset the variable "counter.”
  • Lines 20 to 23 check feedback from the hand 21 500 ms after opening or closing, and output an error if the feedback is incorrect despite a retry of the close signal. On the other hand, lines 24 to 27 output an error if the
  • the creation tool 101 sets and creates variable allocation data 323 based on the variable data of the sequence program and the IO allocation data of the input/output shared area 321 and the IO device area 322 acquired from the robot control device 30 . Specifically, the creation tool 101 acquires IO allocation data between the input/output shared area 321 and the IO device area 322 from the robot control device 30. The creation tool 101 references the acquired IO allocation data and sets the variable allocation data 323 so that, for example, the variable "hand_open" is allocated to a storage area in the input/output shared area 321 allocated to an internal port of the robot control device 30.
  • the creation tool 101 also references the acquired IO allocation data and sets the variable allocation data 323 so that the variable "hand_output” is allocated to a storage area in the input/output shared area 321 allocated to an output port of the wrist of the robot 20.
  • the creation tool 101 also references the acquired IO allocation data and sets the variable allocation data 323 so that the variable "hand_status” is allocated to a storage area in the input/output shared area 321 allocated to an input port of the wrist of the robot 20.
  • the creation tool 101 also references the acquired IO allocation data and sets the variable allocation data 323 so that the variable "position_x" is allocated to the storage area of the I/O shared area 321 allocated to the built-in port of the robot control device 30.
  • the creation tool 101 also references the acquired IO allocation data and sets the variable allocation data 323 so that the variable "error_status" is allocated to the storage area of the I/O shared area 321 allocated to the external output port.
  • the variable "counter” is an internal variable, so the creation tool 101 does not set the variable "counter” in the variable allocation data 323.
  • the creation tool 101 transmits the variable allocation data 323 set as described above to the robot control device 30 together with the sequence program. By doing so, the robot control device 30 can link the variables of a sequence program created using a method for defining variables with the IO equipment or the internal ports of the industrial machinery system 1 without the creation tool 101 having information about the IO equipment.
  • the creation tool 101 may create, together with the sequence program, a robot program for the robot 20 and an NC program for the machine tool 40 that can access data from the IO device or the internal IO port of the industrial machinery system 1.
  • the creation tool 101 may transmit the created robot program and NC program to the robot control device 30.
  • FIG. 7 is a flowchart illustrating the data transfer process of the robot system 1.
  • step S21 the IO allocation unit 312 of the robot control device 30 allocates the shared input/output area 321 to the IO device or the internal IO port of the industrial machinery system 1, and sets the IO allocation data.
  • step S11 the creation tool 101 creates a sequence program based on user input operations via an input device (not shown).
  • step S12 the creation tool 101 references the IO allocation data set by the IO allocation unit 312 in step S21, and sets and creates variable allocation data 323 that allocates variables in the sequence program created in step S11 to the shared input/output area 321 of the robot control device 30.
  • step S13 the computer 10 transmits the sequence program created in step S11 and the variable allocation data 323 created in step S12 to the robot control device 30.
  • step S22 the robot control device 30 (CPU 31) receives the sequence program and variable allocation data 323 transmitted from the computer 10 in step S13.
  • step S23 the sequence program execution unit 311 executes the sequence program.
  • step S24 the variable data transfer unit 314 transfers data between the input/output shared area 321 and variables within the sequence program based on the variable allocation data 323.
  • step S25 the IO data transfer unit 313 transfers data between the I/O shared area 321 and the IO device or the internal IO port of the industrial machinery system 1 in accordance with the IO allocation assigned in step S21.
  • the robot control device 30 can link variables in a sequence program created using a variable definition method with internal ports of IO devices or industrial machinery systems, without the creation tool having information about the IO devices.
  • the robot control device 30 sets the IO allocation between the input/output shared area 321 and the internal IO port of the IO device or industrial machinery system 1, and then the creation tool 101 of the computer 10 sets variable allocation data 323 that allocates the input/output shared area 321 of the robot control device 30 to variables of the sequence program by referring to the IO allocation data, but this is not limited to this.
  • the creation tool 101 of the computer 10 may set variable allocation data 323 that allocates the input/output shared area 321 of the robot control device 30 to variables of the sequence program, and then the robot control device 30 may refer to the variable allocation data 323 to set the IO allocation between the input/output shared area 321 and the IO equipment or the internal IO port of the industrial machinery system 1.
  • the creation tool 101 of the computer 10 creates the variable allocation data 323 along with the sequence program and transmits it to the robot control device 30, but this is not limiting.
  • the creation tool 101 may create only the sequence program and transmit it to the robot control device 30, and the CPU 31 of the robot control device 30 may have a variable allocation unit 315 that references the IO allocation data and sets the variable allocation data 323 that allocates the input/output shared area 321 to variables in the received sequence program, as shown in FIG. 8 .
  • the hand 21 attached to the tip of the robot 20 is used as an example of the IO device, but this is not limiting.
  • the IO device may be a sensor such as an acceleration sensor attached to the tip of the robot 20.
  • the sequence program may include code for processing the sensor value detected by the sensor.
  • each function included in the robot control device 30 can be realized by hardware, software, or a combination of these. "Realized by software” here means that the function is realized by a computer reading and executing a program.
  • Non-transitory computer-readable media include various types of tangible storage media.
  • Examples of non-transitory computer-readable media include magnetic recording media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R/Ws, and semiconductor memories (e.g., mask ROMs, PROMs (Programmable ROMs), EPROMs (Erasable PROMs), flash ROMs, and RAMs).
  • the program may also be supplied to the computer via various types of transient computer-readable media. Examples of transient computer-readable media include electrical signals, optical signals, and electromagnetic waves.
  • the transient computer-readable medium can supply the program to the computer via a wired communication path such as an electrical wire or optical fiber, or via a wireless communication path.
  • the step of executing the program recorded on the recording medium not only includes processes that are performed chronologically in the order of the program, but also includes processes that are not necessarily performed chronologically but are performed in parallel or individually. Furthermore, the step of writing the program may be performed using cloud computing.
  • the industrial machine system (1) includes an industrial machine control device (30) that controls an industrial machine (20) and a sequence program creation tool (101), and the industrial machine control device (30) includes a sequence program execution unit (311) that executes a sequence program, an input/output shared area (321) that shares data between variables in the sequence program and IO devices (21, 40) or internal IO ports of the industrial machine system (1), an IO allocation unit (312) that sets allocation between the input/output shared area (321) and the IO devices (21, 40) or internal IO ports, and an IO allocation unit (312) that allocates the input/output shared area (321) to the IO devices (21, 40) or internal IO ports according to allocation by the IO allocation unit (312).
  • an IO data transfer unit (313) for transferring data between an IO device (21, 40) or an internal IO port
  • a variable data transfer unit (314) for transferring data between the input/output shared area (321) and variables in the sequence program
  • the sequence program creation tool (101) sets variable allocation data (323) for allocating the input/output shared area (321) and variables in the sequence program
  • the variable data transfer unit (314) transfers data between the input/output shared area (321) and variables in the sequence program based on the variable allocation data (323) set by the sequence program creation tool (101).
  • the industrial machinery control device (30) has an operating program for operating the industrial machinery (20, 40), and the operating program enables access to data of the IO devices (21, 40) or internal IO ports.
  • the industrial machine is a robot (20).
  • the IO device (21) is a hand (21) or a sensor attached to the tip of the robot (20)
  • the sequence program includes control of the hand (21) or processing of sensor values of the sensor
  • the sequence program execution unit (311) controls IO signals input and output to and from the hand (21) or the sensor.
  • the industrial machine control device (30) includes a sequence program execution unit (311) that executes a sequence program, an input/output shared area (321) that shares data between variables in the sequence program and IO devices (21, 40) or internal IO ports of the industrial machine system (1), an IO allocation unit (312) that sets allocation between the input/output shared area (321) and the IO devices (21, 40) or internal IO ports, an IO data transfer unit (313) that transfers data between the input/output shared area (321) and the IO devices (21, 40) or internal IO ports in accordance with the allocation by the IO allocation unit (312), a variable allocation unit (315) that sets variable allocation data (323) that allocates the input/output shared area (321) to variables in the sequence program, and a variable data transfer unit (314) that transfers data between the input/output shared area (321) and variables in the sequence program based on the variable allocation data (323).
  • a sequence program execution unit 3111 that executes a sequence program
  • the industrial machine control device (30) of Supplementary Note 5 has an operation program for operating the industrial machine (20), and the operation program makes it possible to access data of the IO device (21, 40) or the internal IO port.
  • the industrial machine is a robot (20).
  • the IO device (21) is a hand (21) or a sensor attached to the tip of the robot (20)
  • the sequence program includes control of the hand (21) or processing of sensor values of the sensor
  • the sequence program execution unit (311) controls IO signals input and output to and from the hand (21) or the sensor.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Numerical Control (AREA)

Abstract

ツールがIO機器の情報を持つことなく、変数を定義する方式で作成されたシーケンスプログラム内の変数と、IO機器又は産業機械システムの内部ポートとを連携させること。 産業機械システムは、産業機械制御装置とシーケンスプログラム作成ツールを含み、産業機械制御装置は、シーケンスプログラムを実行するシーケンスプログラム実行部と、入出力共有領域と、入出力共有領域とIO機器又は内部IOポートとを割付けるIO割付部と、IO割付に応じて入出力共有領域とIO機器又は内部IOポートとでデータ転送するIOデータ転送部と、入出力共有領域とシーケンスプログラム内の変数とでデータ転送する変数データ転送部と、を備え、シーケンスプログラム作成ツールは、入出力共有領域とプログラム内の変数とを割付ける変数割付データを設定し、変数データ転送部は、変数割付データに基づいて、入出力共有領域とプログラム内の変数とでデータ転送する。

Description

産業機械システム、及び産業機械制御装置
 本開示は、IO機器とシーケンスプログラムとが連携して動作する産業機械システム、及び産業機械制御装置に関する。
 工作機械やロボット等の産業機械制御装置内に、シーケンサ(PLC:Programmable Logic Controller)を組み込んで、例えばロボット制御装置の場合、ロボットのハンド、コンベヤ、安全柵、開閉センサ等の周辺機器(以下、「IO機器」ともいう)を制御するシステムがある。この場合、ラダー言語等で、シーケンスプログラムを作成して、ロボット制御装置内部で周期的に実行することができる。
 この場合、ロボットに接続されたIO機器やロボットの動作プログラムと、シーケンスプログラムとは連携する必要がある。
 そこで、産業機械制御装置の技術に関して、システムの多様性や拡張性への対応と、制御アプリケーション(PLC言語)と情報アプリケーション(C言語等)との間での適切なデータ共有との両方を実現できる技術が知られている。例えば、特許文献1参照。
特開2022-041359号公報
 従来のシーケンスプログラムは、固定のアドレスとそれを識別するためのシンボル(X0、Y0)を持ち、そのアドレス内に値を格納していた。例えば、図9に示すように、ロボット制御装置は、アドレス(又はシンボル)に対して一意に決まるアドレスデータ領域を持っている。ロボット制御装置は、アドレスデータ領域とIO機器領域との割り付けを行うことで、IO機器とアドレスデータ領域とを連動させることにより、IO機器とシーケンスプログラムとの連携をとることができる。しかしながら、ユーザは、変数を定義できないため、プログラミングの自由度が低いという問題がある。
 他方、シーケンスプログラムを記載する方式には、変数を定義する方式もある。変数を定義する方式でシーケンスプログラムを作成する場合、PLC側に固定アドレスは持たない。すなわち、変数を定義する方式で作成したシーケンスプログラムは、動作プログラムやIO機器との連携がとれない場合がある。
 また、従来技術では、パーソナルコンピュータ等にインストールされたシーケンスプログラム作成ツール(以下、「作成ツール」ともいう)を用いてシーケンスプログラムと変数とを作成するが、作成ツールにより任意のIO機器と変数との割り付けをしようとすると、全ての種類のIO機器の情報を当該作成ツールが持っている必要があり、手間がかかる。
 前述した課題は、ロボット制御装置を含む産業機械制御装置に共通の課題である。
 そこで、作成ツールがIO機器の情報を持つことなく、変数を定義する方式で作成されたシーケンスプログラム内の変数と、IO機器又は産業機械システムの内部ポート等とを連携させることが望まれている。
 本開示の産業機械システムの一態様は、産業機械を制御する産業機械制御装置とシーケンスプログラム作成ツール(「作成ツール」)とを含む産業機械システムであって、前記産業機械制御装置は、シーケンスプログラムを実行するシーケンスプログラム実行部と、前記シーケンスプログラム内の変数とIO機器又は前記産業機械システムの内部IOポートとのデータを共有する入出力共有領域と、前記入出力共有領域と前記IO機器又は前記内部IOポートとの割り付けを設定するIO割付部と、前記IO割付部による割り付けに応じて、前記入出力共有領域と、前記IO機器又は前記内部IOポートとの間でデータ転送するIOデータ転送部と、前記入出力共有領域と前記シーケンスプログラム内の変数との間でデータ転送する変数データ転送部と、を備え、前記シーケンスプログラム作成ツール(「作成ツール」)は、前記入出力共有領域と、前記シーケンスプログラム内の変数とを割り付ける変数割付データを設定し、前記変数データ転送部は、前記シーケンスプログラム作成ツールにより設定された前記変数割付データに基づいて、前記入出力共有領域と前記シーケンスプログラム内の変数との間でデータ転送する。
 本開示の産業機械制御装置の一態様は、シーケンスプログラムを実行するシーケンスプログラム実行部と、前記シーケンスプログラム内の変数とIO機器又は産業機械システムの内部IOポートとのデータを共有する入出力共有領域と、前記入出力共有領域と前記IO機器又は前記内部IOポートとの割り付けを設定するIO割付部と、前記IO割付部による割り付けに応じて、前記入出力共有領域と、前記IO機器又は前記内部IOポートとの間でデータ転送するIOデータ転送部と、前記入出力共有領域と、前記シーケンスプログラム内の変数とを割り付ける変数割付データを設定する変数割付部と、前記変数割付データに基づいて、前記入出力共有領域と前記シーケンスプログラム内の変数との間でデータ転送する変数データ転送部と、を備える。
一実施形態に係る産業機械制御装置の動作の概略の一例を示す図である。 一実施形態に係る産業機械システムの機能ブロック構成の一例を示す図である。 ロボット制御装置の機能ブロックの構成の一例を示す図である。 IO割付部によるIO機器領域のIO割付の設定画面の一例を示す図である。 変数割付データの一例を示す図である。 作成ツールにより作成されたシーケンスプログラムの一例を示す図である。 ロボットシステムのデータ転送処理について説明するフローチャートである。 ロボット制御装置の機能ブロックの構成の一例を示す図である。 従来のロボット制御装置の動作の概略の一例を示す図である。
 以下、一実施形態に係る産業機械システムについて、図を参照しながら詳細に説明する。
<一実施形態>
 まず、本実施形態の概略を説明する。本実施形態では、産業機械制御装置は、図1に示すように、シーケンスプログラムは、変数データとプログラムデータとを有する。また、産業機械制御装置は、シーケンスプログラム内の変数と産業機械制御装置に接続されたIO機器又は内部IOポートとのデータを共有する入出力共有領域、及び入出力共有領域とIO機器又は内部IOポートとが割り付けられたIO機器領域を有する。産業機械制御装置は、IO機器領域と入出力共有領域とのIO割付を行うとともに、入出力共有領域と、シーケンスプログラム内の変数との変数割付を行うことで、IO割付に応じて入出力共有領域とIO機器又は内部IOポートとの間でデータ転送するとともに、変数割付に応じて入出力共有領域とシーケンスプログラム内の変数との間でデータ転送する。
 これにより、本実施形態によれば、作成ツールがIO機器の情報を持つことなく、変数を定義する方式で作成されたシーケンスプログラム内の変数と、IO機器又は産業機械システムの内部ポート等とを連携させることができる。
 以上が本実施形態の概略である。
 図2は、一実施形態に係る産業機械システムの機能ブロック構成の一例を示す図である。ここでは、産業機械としてロボット、産業機械制御装置としてロボット制御装置、及び動作プログラムとしてロボットプログラムの場合を例示する。なお、本発明は、産業機械として工作機械、産業用ロボット、サービス用ロボット、鍛圧機械及び射出成形機といった様々な機械、及び数値制御装置等に対しても適用可能である。また、工作機械等の場合、動作プログラムは、NC(Numerical Control)プログラムとなる。
 また、IO機器としてロボットのアームの先端に装着されるハンド等のエンドエフェクタを例示する。なお、本発明は、IO機器としてコンベヤや、開閉センサ等に対しても適用可能である。
 図2に示すように、産業機械システム1は、コンピュータ10、ロボット20、ロボット制御装置30、及び工作機械40を有する。コンピュータ10は、作成ツール(シーケンスプログラム作成ツール)101を有する。また、ロボット20には、アームの先端にハンド21が取り付けられている。また、ロボット制御装置30は、教示操作盤35が接続されている。
 コンピュータ10、ロボット20、ロボット制御装置30、及び工作機械40は、図示しない接続インタフェースを介して互いに直接接続されてもよい。なお、コンピュータ10、ロボット20、ロボット制御装置30、及び工作機械40は、LAN(Local Area Network)やインターネット等の図示しないネットワークを介して相互に接続されて通信を行うようにしてもよい。この場合、コンピュータ10、ロボット20、ロボット制御装置30、及び工作機械40は、かかる接続によって相互に通信を行うための図示しない通信部を備えている。
<ロボット20>
 ロボット20は、後述のロボット制御装置30の制御に基づいて動作する公知のロボットである。ロボット20は、鉛直方向の軸を中心に回転するためのベース部や、移動及び回転するアームや、アームの先端に装着されるハンド21等のエンドエフェクタを有する。
<工作機械40>
 工作機械40は、例えば、当業者にとって公知の工作機械であり、後述のロボット制御装置30により実行されるシーケンスプログラムの指令に基づいてロボット20の動作に連携する動作をさせることができる。本実施形態に係る工作機械40は、ロボット20と連携するIO機器として動作する。すなわち、例えば、工作機械40は、加工等が完了した場合、ロボット20によりワークが入れ替えられ、入れ替えられたワークの加工を開始するように動作を連携させることができる。
<ロボット制御装置30>
 ロボット制御装置30は、ロボット20の動作を制御するための当業者にとって公知のロボット制御装置であり、教示操作盤35が接続されている。ロボット制御装置30は、例えば、作業者が教示操作盤35を用いて教示したロボット20の先端点の位置を示す直交座標値もしくは各軸値を用いて生成されたロボットプログラムを実行することで制御信号を生成する。ロボット制御装置30は、生成した制御信号をロボット20に対して出力することにより、ロボット20を動作させる。
 教示操作盤35は、ロボット20の教示を行う装置であり、ロボット制御装置30用に専用に設計された計算機でもよく、タブレット型コンピュータ等の計算機でもよい。
 図3に示すように、ロボット制御装置30は、CPU(Central Processing Unit)31及び記憶部32を有する。また、CPU31は、シーケンスプログラム実行部311、IO割付部312、IOデータ転送部313、及び変数データ転送部314を有する。
<記憶部32>
 記憶部32は、ROM(Read Only Memory)、RAM(Random Access Memory)、SSD(Solid State Drive)、HDD(Hard Disk Drive)等である。記憶部32には、CPU31が実行するオペレーティングシステム及びアプリケーションプログラム等とともに、後述のコンピュータ10の作成ツール101により作成されたシーケンスプログラムや、教示操作盤35等により作成されたロボットプログラムが記憶される。また、記憶部32は、入出力共有領域321、IO機器領域322を有する。また、記憶部32には、後述のコンピュータ10の作成ツール101により設定された変数割付データ323が記憶されてもよい。次に入出力共有領域321、IO機器領域322について説明し、IO機器領域322と、入出力共有領域321と、のIO割り付けについて説明する。
 入出力共有領域321は、記憶部32におけるRAM等のメモリであり、後述のシーケンスプログラムと、変数と、IO機器又は産業機械システム1の内部IOポートのデータを有するIO機器領域322の値を連動させるために追加される。図3に示すように、入出力共有領域321は、例えば、シーケンスプログラム内の変数とIO機器又は内部IOポートとのデータを共有するためのN個の記憶領域Data1~DataNを有する(Nは、2以上の整数である)。
 IO機器領域322は、記憶部32のRAM等のメモリである。IO機器領域322は、IO機器又は内部IOポート毎に設定される、シーケンスプログラムとの入出力ポートであり、入力ポート及び出力ポートを備える。図4に示すように、例えばIO機器(IO Board A)には、入力ポートであるIO機器領域(Input1)と、出力ポートであるIO機器領域(Output1)と、が設定される。
 IO機器領域322は、図4に示すように、後述のIO割付部312によるIO割付に基づいて、各IO機器領域に含まれる入力ポート及び出力ポート毎に、前記入出力共有領域321の記憶領域Data1~DataNが割り付けられる。
 図4は、IO割付部312によるIO機器領域322のIO割付の設定画面の一例を示す図である。
 図4に示すように、設定画面には、IO機器又は内部IOポートを設定する設定領域「IO機器」と、入出力共有領域321(PLC領域)を設定する設定領域「入出力共有領域」と、が表示される。ここで、設定領域「IO機器」の「装置名」では、ロボット制御装置30に接続されているIO機器又は内部IOポート(例えば、IOボードやネットワークポート、Robot Output、Register等)の一覧が表示される。ここで、Robot Outputは、ロボット20の手首に端子がある出力ポートであり、Registerは、ロボット20内の内部変数である。
 設定画面に表示される「IO機器」の「IO機器領域」では、入力ポート及び出力ポートが表示される。なお、Registerは、ロボット20内の内部変数であることから、空白「-」が表示される。
 設定画面に表示される「IO機器」の「タイプ」はIO機器によって自動的に決まり、「IO機器」のIO機器又は内部IOポートのタイプ(デジタル入力/出力やアナログ入力/出力等)が表示され、「サイズ」には、当該IO機器又は内部IOポートのサイズが表示される。
 設定画面に表示される「入出力共有領域」の「記憶領域」欄では、表示される「IO機器」の「装置名」のIO機器又は内部IOポート毎のデータを共有する入出力共有領域321の記憶領域(Datai;iは自然数)が表示される。なお、Registerは、空白「-」が格納される。
 設定画面に表示される「入出力共有領域」に含まれる記憶領域(Datai;iは自然数)の「タイプ」では、割り当てられるIO機器又は内部IOポートのタイプによって自動的に決まる。
 設定画面に表示される「入出力共有領域」に含まれる記憶領域(Datai;iは自然数)の「開始バイト」では、IO機器又は内部IOポート毎に割り付けられる入出力共有領域321の開始オフセットが、ロボット制御装置30に含まれるキーボード等の入力装置(図示しない)や教示操作盤35等を介してユーザにより設定される。
 なお、図4の設定画面を用いてIO割付部312により設定された入出力共有領域321とIO機器領域322とのIO割付のデータは記憶部32に記憶されてもよい。
 以上、IO割り付けについて説明した。次に、変数割り付けについて説明する。
 変数割付データ323は、後述のコンピュータ10の作成ツール101により作成されたシーケンスプログラム内の変数データと、入出力共有領域321とを割り付けるデータである。
 図5は、変数割付データ323の一例を示す図である。
 図5に示すように、変数割付データ323は、シーケンスプログラム内の各変数を入出力共有領域321(PLC領域)に含まれる各記憶領域(Datai;iは自然数)に割り付けたものである。なお、シーケンスプログラムで宣言された変数名を「名前」に設定すると、当該変数に係る「タイプ」及び「サイズ」が自動的に設定される。
 入出力共有領域321に係る「タイプ」では、シーケンスプログラム内の各変数を入力又は出力のどちらで使うかが、後述のコンピュータ10の作成ツール101により設定される。
 「開始バイト」は、割り付ける入出力共有領域321の開始オフセットが、図4の設定画面を用いて設定された入出力共有領域321とIO機器領域322とのIO割付に基づいて設定される。
 このように、シーケンスプログラム内の変数毎に、入出力共有領域321の記憶領域(Datai;iは自然数)が後述のコンピュータ10の作成ツール101により割り付けられる。
<CPU31>
 CPU31は、ロボット制御装置30を全体的に制御するプロセッサである。CPU31は、記憶部32に格納されたシステムプログラム及び各種ソフトウェアのアプリケーションプログラムを読み出し、システムプログラム及びアプリケーションプログラムに従ってロボット制御装置30全体を制御する。これにより、図3に示すように、CPU31は、シーケンスプログラム実行部311、IO割付部312、IOデータ転送部313、及び変数データ転送部314の機能を実現するように構成される。
 なお、CPU31は、ロボット20のロボットプログラムを実行するようにしてもよい。
 シーケンスプログラム実行部311は、例えば、ロボット制御装置30におけるPLCの機能として動作し、後述のコンピュータ10の作成ツール101により作成されたシーケンスプログラムを実行する。
 IO割付部312は、前述したように入出力共有領域321とIO機器又は産業機械システム1の内部IOポートとの割り付けを設定する。
 具体的には、IO割付部312は、例えば、ロボット制御装置30の入力装置(図示しない)や教示操作盤35を介したユーザの入力操作に基づいて、入出力共有領域321の記憶領域Data1~DataNと、IO機器又は産業機械システム1の内部IOポートとの割り付けを、図4に示す設定画面を用いて設定する。
 IOデータ転送部313は、例えば、図4の設定画面を用いたIO割付部312による割り付けに応じて、入出力共有領域321と、IO機器又は産業機械システム1の内部IOポートとの間でデータ転送する。
 変数データ転送部314は、入出力共有領域321と、後述のコンピュータ10の作成ツール101により作成されたシーケンスプログラム内の変数との間でデータ転送する。
 具体的には、変数データ転送部314は、例えば、後述のコンピュータ10の作成ツール101により設定された変数割付データ323に基づいて、入出力共有領域321とシーケンスプログラム内の変数との間でデータ転送する。
<コンピュータ10>
 コンピュータ10は、一般的なパーソナルコンピュータやタブレット端末等の情報処理装置である。コンピュータ10は、CPU、RAM、ROM、及びI/O(Input/Output)等を有するマイクロプロセッサと、SSDやHDD等の記憶装置と、キーボードやマウス等の入力装置と、液晶ディスプレイ等の出力装置を有する。CPUは、ROM又は記憶装置から読み出した各プログラムを実行して、ハードウェアとソフトウェア(プログラム)が協働することにより本実施形態における作成ツール(シーケンスプログラム作成ツール)101の機能が実現される。
 作成ツール101は、例えば、図示しない入力装置を介したユーザの入力操作に基づいて、シーケンスプログラムを作成するとともに、ロボット制御装置30の入出力共有領域321と、作成したシーケンスプログラム内の変数とを割り付ける変数割付データ323を設定する。
 図6は、作成ツール101により作成されたシーケンスプログラムの一例を示す図である。
 図6に示すように、シーケンスプログラムの2行目から7行目は、変数データが定義される。「hand_open」は、ロボットプログラムからのハンド開閉指令の変数であり、「hand_output」は、ハンド21への出力の変数であり、「hand_status」は、ハンド21の状態フィードバックの変数である。また、「position_x」は、ロボットのx座標値の変数であり、「error_status」は、エラー出力の変数であり、「counter」は、カウンターの変数である。
 また、シーケンスプログラムの8行目から27行目はプログラムデータであり、8行目は、変数「counter」をインクリメントする。9行目から13行目は、ロボットのxアドレスが既定位置(例えば、-1000超過かつ1000未満等)の場合だけハンド開閉が可能として、ロボットの動作プログラムからハンド開を要求し、ハンドに開の信号を出力し、変数「counter」をリセットする。14行目から18行目は、ロボットのxアドレスが既定位置でない場合、ロボットの動作プログラムからハンド閉を要求し、ハンドに閉の信号を出力し、変数「counter」をリセットする。20行目から23行目は、開閉後の500ms後にハンド21からのフィードバックをチェックし、閉信号を出直したのに、フィードバックが正しくない場合、エラーを出力する。一方、24行目から27行目は、開信号を出直したのに、フィードバックが正しくない場合、エラーを出力する。
 作成ツール101は、シーケンスプログラムの変数データと、ロボット制御装置30から取得する入出力共有領域321とIO機器領域322とのIO割付のデータとに基づいて、変数割付データ323を設定し作成する。
 具体的には、作成ツール101は、入出力共有領域321とIO機器領域322とのIO割付のデータをロボット制御装置30から取得する。作成ツール101は、取得したIO割付のデータを参照し、例えば変数「hand_open」についてロボット制御装置30の内部ポートに割り付けられた入出力共有領域321の記憶領域に割り付けるように変数割付データ323を設定する。また、作成ツール101は、取得したIO割付のデータを参照し、変数「hand_output」についてロボット20の手首の出力ポートに割り付けられた入出力共有領域321の記憶領域に割り付けるように変数割付データ323を設定する。また、作成ツール101は、取得したIO割付のデータを参照し、変数「hand_status」についてロボット20の手首の入力ポートに割り付けられた入出力共有領域321の記憶領域に割り付けるように変数割付データ323を設定する。また、作成ツール101は、取得したIO割付のデータを参照し、変数「position_x」についてロボット制御装置30の内蔵ポートに割り付けられた入出力共有領域321の記憶領域に割り付けるように変数割付データ323を設定する。また、作成ツール101は、取得したIO割付のデータを参照し、変数「error_status」について外部出力ポートに割り付けられた入出力共有領域321の記憶領域に割り付けるように変数割付データ323を設定する。なお、変数「counter」は内部変数であることから、作成ツール101は、変数「counter」について変数割付データ323に設定しない。
 作成ツール101は、上記のように設定した変数割付データ323を、シーケンスプログラムとともにロボット制御装置30に送信する。
 そうすることで、ロボット制御装置30は、作成ツール101がIO機器の情報を持つことなく、変数を定義する方式で作成されたシーケンスプログラムの変数と、IO機器又は産業機械システム1の内部ポートとを連携させることができる。
 なお、作成ツール101は、シーケンスプログラムとともに、IO機器又は産業機械システム1の内部IOポートのデータにアクセス可能なロボット20のロボットプログラム及び工作機械40のNCプログラム等を作成してもよい。作成ツール101は、作成したロボットプログラム及びNCプログラムを、ロボット制御装置30に送信してもよい。
<ロボットシステム1のデータ転送処理>
 次に、図7を参照しながら、ロボットシステム1のデータ転送処理の流れを説明する。
 図7は、ロボットシステム1のデータ転送処理について説明するフローチャートである。
 ステップS21において、ロボット制御装置30のIO割付部312は、IO機器又は産業機械システム1の内部IOポートに対して、入出力共有領域321を割り付け、IO割付データを設定する。
 ステップS11において、作成ツール101は、図示しない入力装置を介したユーザの入力操作に基づいてシーケンスプログラムを作成する。
 ステップS12において、作成ツール101は、ステップS21でIO割付部312により設定されたIO割付データを参照して、ステップS11で作成したシーケンスプログラム内の変数を、ロボット制御装置30の入出力共有領域321に割り付ける変数割付データ323を設定し作成する。
 ステップS13において、コンピュータ10は、ステップS11で作成したシーケンスプログラム及びステップS12で作成した変数割付データ323を、ロボット制御装置30に送信する。
 ステップS22において、ロボット制御装置30(CPU31)は、ステップS13でコンピュータ10から送信されたシーケンスプログラム及び変数割付データ323を受信する。
 ステップS23において、シーケンスプログラム実行部311は、シーケンスプログラムを実行する。
 ステップS24において、変数データ転送部314は、変数割付データ323に基づいて、入出力共有領域321と、シーケンスプログラム内の変数との間でデータ転送する。
 ステップS25において、IOデータ転送部313は、ステップS21で割り付けしたIO割付に応じて、入出力共有領域321と、IO機器又は産業機械システム1の内部IOポートとの間でデータ転送する。
 以上により、一実施形態に係るロボット制御装置30は、作成ツールがIO機器の情報を持つことなく、変数を定義する方式で作成されたシーケンスプログラム内の変数と、IO機器又は産業機械システムの内部ポートとを連携させることができる。
<変形例1>
 上述の一実施形態では、ロボット制御装置30が、入出力共有領域321とIO機器又は産業機械システム1の内部IOポートとのIO割付を設定したのち、コンピュータ10の作成ツール101は、IO割付のデータを参照して、ロボット制御装置30の入出力共有領域321とシーケンスプログラムの変数とを割り付ける変数割付データ323を設定したが、これに限定されない。
 例えば、コンピュータ10の作成ツール101は、ロボット制御装置30の入出力共有領域321とシーケンスプログラムの変数とを割り付ける変数割付データ323を設定したのち、ロボット制御装置30は、変数割付データ323を参照して、入出力共有領域321とIO機器又は産業機械システム1の内部IOポートとのIO割付を設定してもよい。
<変形例2>
 また例えば、上述の実施形態では、コンピュータ10の作成ツール101がシーケンスプログラムとともに、変数割付データ323を作成しロボット制御装置30に送信したが、これに限定されない。例えば、作成ツール101は、シーケンスプログラムのみを作成してロボット制御装置30に送信し、ロボット制御装置30のCPU31は、図8に示すように、IO割付データを参照して、入出力共有領域321と、受信したシーケンスプログラム内の変数とを割り付ける変数割付データ323を設定する変数割付部315を有してもよい。
<変形例3>
 また例えば、上述の実施形態では、IO機器としてロボット20の先端に取り付けられたハンド21を例示したが、これに限定されない。例えば、IO機器としてロボット20の先端に取り付けられた加速度センサ等のセンサとしてもよい。この場合、シーケンスプログラムは、センサにより検知されたセンサ値を処理するコードを含むようにしてもよい。
 なお、一実施形態におけるロボット制御装置30に含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
 プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
 なお、記録媒体に記録されるプログラムを実行するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。また、前記プログラムを記述するステップはクラウドコンピューティングで実施してもよい。
 本開示について詳述したが、本開示は上述した個々の実施形態に限定されるものではない。これらの実施形態は、本開示の要旨を逸脱しない範囲で、又は、特許請求の範囲に記載された内容とその均等物から導き出される本開示の趣旨を逸脱しない範囲で、種々の追加、置き換え、変更、部分的削除等が可能である。また、これらの実施形態は、組み合わせて実施することもできる。例えば、上述した実施形態において、各動作の順序や各処理の順序は、一例として示したものであり、これらに限定されるものではない。また、上述した実施形態の説明に数値又は数式が用いられている場合も同様である。
 上記実施形態及び変形例に関し、さらに以下の付記を開示する。
(付記1)
 産業機械システム(1)は、産業機械(20)を制御する産業機械制御装置(30)とシーケンスプログラム作成ツール(101)とを含む産業機械システム(1)であって、産業機械制御装置(30)は、シーケンスプログラムを実行するシーケンスプログラム実行部(311)と、シーケンスプログラム内の変数とIO機器(21、40)又は産業機械システム(1)の内部IOポートとのデータを共有する入出力共有領域(321)と、入出力共有領域(321)とIO機器(21、40)又は内部IOポートとの割り付けを設定するIO割付部(312)と、IO割付部(312)による割り付けに応じて、入出力共有領域(321)と、IO機器(21、40)又は内部IOポートとの間でデータ転送するIOデータ転送部(313)と、入出力共有領域(321)とシーケンスプログラム内の変数との間でデータ転送する変数データ転送部(314)と、を備え、シーケンスプログラム作成ツール(101)は、入出力共有領域(321)と、シーケンスプログラム内の変数とを割り付ける変数割付データ(323)を設定し、変数データ転送部(314)は、シーケンスプログラム作成ツール(101)により設定された変数割付データ(323)に基づいて、入出力共有領域(321)とシーケンスプログラム内の変数との間でデータ転送する。
(付記2)
 付記1の産業機械システム(1)において、産業機械制御装置(30)は、産業機械(20、40)を動作させる動作プログラムを有し、動作プログラムは、IO機器(21、40)又は内部IOポートのデータにアクセス可能とする。
(付記3)
 付記1又は付記2の産業機械システム(1)において、産業機械は、ロボット(20)である。
(付記4)
 付記3の産業機械システム(1)において、IO機器(21)は、ロボット(20)の先端に付けられたハンド(21)又はセンサであり、シーケンスプログラムは、ハンド(21)の制御又はセンサのセンサ値の処理を含み、シーケンスプログラム実行部(311)は、ハンド(21)又はセンサへの入出力するIO信号を制御する。
(付記5)
 産業機械制御装置(30)は、シーケンスプログラムを実行するシーケンスプログラム実行部(311)と、シーケンスプログラム内の変数とIO機器(21、40)又は産業機械システム(1)の内部IOポートとのデータを共有する入出力共有領域(321)と、入出力共有領域(321)とIO機器(21、40)又は内部IOポートとの割り付けを設定するIO割付部(312)と、IO割付部(312)による割り付けに応じて、入出力共有領域(321)と、IO機器(21、40)又は内部IOポートとの間でデータ転送するIOデータ転送部(313)と、入出力共有領域(321)と、シーケンスプログラム内の変数とを割り付ける変数割付データ(323)を設定する変数割付部(315)と、変数割付データ(323)に基づいて、入出力共有領域(321)とシーケンスプログラム内の変数との間でデータ転送する変数データ転送部(314)と、を備える。
(付記6)
 付記5の産業機械制御装置(30)において、産業機械(20)を動作させる動作プログラムを有し、動作プログラムは、IO機器(21、40)又は内部IOポートのデータにアクセス可能とする。
(付記7)
 付記5又は付記6の産業機械制御装置(30)において、産業機械は、ロボット(20)である。
(付記8)
 付記7の産業機械制御装置(30)において、IO機器(21)は、ロボット(20)の先端に付けられたハンド(21)又はセンサであり、シーケンスプログラムは、ハンド(21)の制御又はセンサのセンサ値の処理を含み、シーケンスプログラム実行部(311)は、ハンド(21)又はセンサへの入出力するIO信号を制御する。
 1 産業機械システム
 10 コンピュータ
 101 作成ツール
 20 ロボット
 21 ハンド
 30 ロボット制御装置
 31 CPU
 311 シーケンスプログラム実行部
 312 IO割付部
 313 IOデータ転送部
 314 変数データ転送部
 315 変数割付部
 32 記憶部
 321 入出力共有領域
 322 IO機器領域
 323 変数割付データ
 35 教示操作盤
 40 工作機械

Claims (8)

  1.  産業機械を制御する産業機械制御装置とシーケンスプログラム作成ツールとを含む産業機械システムであって、
     前記産業機械制御装置は、
     シーケンスプログラムを実行するシーケンスプログラム実行部と、
     前記シーケンスプログラム内の変数とIO機器又は前記産業機械システムの内部IOポートとのデータを共有する入出力共有領域と、
     前記入出力共有領域と前記IO機器又は前記内部IOポートとの割り付けを設定するIO割付部と、
     前記IO割付部による割り付けに応じて、前記入出力共有領域と、前記IO機器又は前記内部IOポートとの間でデータ転送するIOデータ転送部と、
     前記入出力共有領域と前記シーケンスプログラム内の変数との間でデータ転送する変数データ転送部と、を備え、
     前記シーケンスプログラム作成ツールは、
     前記入出力共有領域と、前記シーケンスプログラム内の変数とを割り付ける変数割付データを設定し、
     前記変数データ転送部は、前記シーケンスプログラム作成ツールにより設定された前記変数割付データに基づいて、前記入出力共有領域と前記シーケンスプログラム内の変数との間でデータ転送する、
     産業機械システム。
  2.  前記産業機械制御装置は、前記産業機械を動作させる動作プログラムを有し、
     前記動作プログラムは、前記IO機器又は前記内部IOポートのデータにアクセス可能とする、請求項1に記載の産業機械システム。
  3.  前記産業機械は、ロボットである、請求項1又は請求項2に記載の産業機械システム。
  4.  前記IO機器は、前記ロボットの先端に付けられたハンド又はセンサであり、
     前記シーケンスプログラムは、上記ハンドの制御又は前記センサのセンサ値の処理を含み、
     前記シーケンスプログラム実行部は、前記ハンド又はセンサへの入出力するIO信号を制御する、請求項3に記載の産業機械システム。
  5.  シーケンスプログラムを実行するシーケンスプログラム実行部と、
     前記シーケンスプログラム内の変数とIO機器又は産業機械システムの内部IOポートとのデータを共有する入出力共有領域と、
     前記入出力共有領域と前記IO機器又は前記内部IOポートとの割り付けを設定するIO割付部と、
     前記IO割付部による割り付けに応じて、前記入出力共有領域と、前記IO機器又は前記内部IOポートとの間でデータ転送するIOデータ転送部と、
     前記入出力共有領域と、前記シーケンスプログラム内の変数とを割り付ける変数割付データを設定する変数割付部と、
     前記変数割付データに基づいて、前記入出力共有領域と前記シーケンスプログラム内の変数との間でデータ転送する変数データ転送部と、
     を備える産業機械制御装置。
  6.  産業機械を動作させる動作プログラムを有し、
     前記動作プログラムは、前記IO機器又は前記内部IOポートのデータにアクセス可能とする、請求項5に記載の産業機械制御装置。
  7.  産業機械は、ロボットである、請求項5又は請求項6に記載の産業機械制御装置。
  8.  前記IO機器は、前記ロボットの先端に付けられたハンド又はセンサであり、
     前記シーケンスプログラムは、上記ハンドの制御又は前記センサのセンサ値の処理を含み、
     前記シーケンスプログラム実行部は、前記ハンド又はセンサへの入出力するIO信号を制御する、請求項7に記載の産業機械制御装置。
PCT/JP2024/016405 2024-04-26 2024-04-26 産業機械システム、及び産業機械制御装置 Pending WO2025224967A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2024/016405 WO2025224967A1 (ja) 2024-04-26 2024-04-26 産業機械システム、及び産業機械制御装置
TW114113228A TW202542663A (zh) 2024-04-26 2025-04-08 產業機械系統及產業機械控制裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2024/016405 WO2025224967A1 (ja) 2024-04-26 2024-04-26 産業機械システム、及び産業機械制御装置

Publications (1)

Publication Number Publication Date
WO2025224967A1 true WO2025224967A1 (ja) 2025-10-30

Family

ID=97489531

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2024/016405 Pending WO2025224967A1 (ja) 2024-04-26 2024-04-26 産業機械システム、及び産業機械制御装置

Country Status (2)

Country Link
TW (1) TW202542663A (ja)
WO (1) WO2025224967A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015215865A (ja) * 2014-04-24 2015-12-03 富士電機株式会社 プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP2020042710A (ja) * 2018-09-13 2020-03-19 オムロン株式会社 サポート装置、サポートプログラム、およびプログラムの生成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015215865A (ja) * 2014-04-24 2015-12-03 富士電機株式会社 プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP2020042710A (ja) * 2018-09-13 2020-03-19 オムロン株式会社 サポート装置、サポートプログラム、およびプログラムの生成方法

Also Published As

Publication number Publication date
TW202542663A (zh) 2025-11-01

Similar Documents

Publication Publication Date Title
EP0527596A2 (en) Generic data exchange
US10466674B2 (en) Programmable logic controller system, and engineering tool computer program product
US20190012168A1 (en) Program generating apparatus
JP7522219B2 (ja) 数値制御システム及び産業機械の制御方法
JP4525681B2 (ja) プログラマブルコントローラ用プログラム生成装置、プログラマブルコントローラ用プログラム生成方法およびその方法のプログラムを記録した記録媒体
CN114365048B (zh) 数控装置
CN114327628B (zh) 分层控制方法、系统、终端设备及存储介质
WO2025224967A1 (ja) 産業機械システム、及び産業機械制御装置
US12045038B2 (en) Runtime server for simultaneous execution of a plurality of runtime systems of an automation system
WO2020075351A1 (ja) コントロール装置
US7107119B2 (en) Controller for a machine tool or production machine
WO2025112914A1 (zh) 轴组运动控制系统、方法及设备
WO2013005350A1 (ja) シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
EP4474112A1 (en) Control system, computation module, robot controller, and control method
US12085904B2 (en) Engineering device, engineering method, and information storage medium
JP3795357B2 (ja) エディタ装置、エディタプログラムおよびそれを記録した記録媒体
CN113253992B (zh) 用于支持多种编程语言的plc控制方法
JP3939518B2 (ja) 入出力アドレス設定装置、入出力アドレス設定プログラムおよびそれを記録した記録媒体
JP7240282B2 (ja) 産業用コントロール装置及びアクティベーション方法
JPWO2013005350A1 (ja) シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
Martinov et al. The Mechanism for Synchronizing CNC System with External Devices by Using a Part Program
JP7723107B2 (ja) 数値制御システム及びロボット制御装置
JP3516607B2 (ja) プログラム式表示装置
EP4682653A1 (en) Support device, control method, and support program
JP2020149520A (ja) 制御システム、制御方法、および制御プログラム

Legal Events

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

Ref document number: 24936885

Country of ref document: EP

Kind code of ref document: A1