Control device and industrial machine

The control device addresses the challenge of identifying and preventing harmful code execution in industrial machines by parsing operation programs and blocking unsafe commands, ensuring safe operation through automated detection and control.

WO2025243490A1PCT designated stage Publication Date: 2025-11-27FANUC LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/019142
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-24
Publication Date
2025-11-27

AI Technical Summary

Technical Problem

Existing industrial machine control systems face challenges in identifying and preventing the execution of potentially harmful or unauthorized code within operation programs, particularly due to lengthy programs, limited computing resources, and visibility issues with machine displays, which can impact machine operations.

Method used

A control device that includes a program acquisition unit, syntax analysis unit, execution determination unit, and control unit to parse and analyze operation programs, detect specific detection target codes, and block their execution to prevent unsafe operation.

Benefits of technology

The control device effectively prevents the execution of dangerous codes without additional user intervention, ensuring safe and reliable operation of industrial machinery by identifying and blocking execution of codes requiring attention.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024019142_27112025_PF_FP_ABST
    Figure JP2024019142_27112025_PF_FP_ABST
Patent Text Reader

Abstract

A control device according to the present disclosure comprises a program acquiring unit that acquires at least one operation program, which is either a numerical control program or a robot operation program executed to control an industrial machine, a parsing unit that parses the operation program and converts the operation program into code units, an execution determining unit that determines, on the basis of a predetermined detection target code, whether or not to execute each code parsed by the parsing unit, a program analyzing unit that analyzes the code to create command data relating to control, and a control unit that controls the industrial machine on the basis of the command data, wherein, at a point in time at which the execution determining unit determines that the operation program cannot be executed, the control device interrupts the execution processing of the operation program.
Need to check novelty before this filing date? Find Prior Art

Description

Control devices and industrial machinery

[0001] The present disclosure relates to a control device and an industrial machine.

[0002] Industrial machinery such as machine tools and robots installed at production sites are controlled based on operation programs that contain code that issues commands related to the industrial machinery. Most of these operation programs consist of code that issues commands to control the operation of the industrial machinery itself, such as movement commands, spindle rotation and stopping, and coolant ON / OFF.

[0003] Some codes that can be used in an operation program affect the settings of industrial machines, such as an assignment command to a system macro variable or a programmable data input command. Such codes are useful when settings need to be changed during the execution of an operation program (see, for example, Patent Documents 1 and 2).

[0004] JP-A-06-318109 JP-A-63-271605

[0005] Incorrect use of code that affects industrial machine settings can have a significant impact on the operation of the machine. However, operating programs can be lengthy and created using tools such as CAD / CAM. Furthermore, issues with the visibility and operability of industrial machine displays make it difficult to prevent the execution of a few lines of unnecessary code. Furthermore, industrial machine control devices often have limited computing resources, making it difficult to resolve issues using methods similar to those used in general program development. In production sites, there is a demand for technology that makes it easy to identify code requiring attention that has been mixed into operating programs.

[0006] The control device for industrial machinery according to the present disclosure solves the above problem by checking whether an operating program contains code that requires careful handling and blocking its execution.

[0007] One aspect of the present disclosure is a control device comprising: a program acquisition unit that acquires at least one operation program which is either a numerical control program or a robot operation program executed to control industrial machinery; a syntax analysis unit that parses the operation program and converts it into code units; an execution determination unit that determines whether each code parsed by the syntax analysis unit can be executed based on a predetermined code to be detected; a program analysis unit that analyzes the code and creates command data related to control; and a control unit that controls the industrial machinery based on the command data, wherein the control device interrupts the execution process of the operation program when the execution determination unit determines that the operation program cannot be executed.

[0008] FIG. 1 is a schematic hardware configuration diagram of a control device according to a first embodiment. FIG. 2 is a block diagram showing schematic functions of a control device according to a first embodiment. FIG. 3 is a table diagram showing an example of detection target code. FIG. 4 is a schematic diagram showing an example of an operation program. FIG. 5 is a schematic diagram showing an example of an operation program divided into code units. FIG. 6 is a block diagram showing schematic functions of a control device according to a second embodiment. FIG. 7 is a block diagram showing schematic functions of a control device according to a third embodiment. FIG. 8 is a table diagram showing an example of authority information.

[0009] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. In the following description, components having the same or similar functions will be denoted by the same reference numerals. Duplicate descriptions of those components may be omitted.

[0010] In this application, "based on XX" means "based on at least XX," and includes cases where it is based on other elements in addition to XX. Furthermore, "based on XX" is not limited to cases where XX is used directly, but also includes cases where it is based on XX that has been calculated or processed. "XX" is any element (for example, any information).

[0011] The term "drive axis" used herein refers to a virtual axis set in a processing machine, and includes, for example, the X-axis, Y-axis, Z-axis, A-axis, B-axis, and C-axis.

[0012] 1 is a schematic hardware configuration diagram showing the main parts of a control device according to an embodiment of the present disclosure. The control device 1 of the present disclosure can be implemented as a control device that controls industrial machinery such as a machine tool or robot that has a moving object that moves when driven by a motor. The following describes, as an example, the control device 1 that controls a machine tool that processes a workpiece by controlling the relative position between a tool and a workpiece.

[0013] The CPU 11 included in the control device 1 of the present disclosure is a processor that performs overall control of the control device 1. The CPU 11 reads a system program stored in the ROM 12 via the bus 22 and controls the entire control device 1 in accordance with the system program. The RAM 13 temporarily stores temporary calculation data, display data, various data input from outside, and the like.

[0014] The nonvolatile memory 14 is configured, for example, by a memory backed up by a battery (not shown) or an SSD (Solid State Drive), and retains its stored state even when the power to the control device 1 is turned off. The nonvolatile memory 14 stores operation programs and data read from an external device 72 via the interface 15, data and operation programs input via the input device 71, and various data acquired from the industrial machine 3. The operation programs and data stored in the nonvolatile memory 14 may be expanded into the RAM 13 when executed / used. Furthermore, various system programs such as known analysis programs are written in the ROM 12 in advance.

[0015] The interface 15 is an interface for connecting the CPU 11 of the control device 1 to an external device 72 such as a USB memory, CompactFlash (registered trademark), or SD card. For example, operation programs and various data used to control the industrial machine 3 can be read from the external device 72. Furthermore, operation programs and various data edited within the control device 1 can be stored in the external device 72. A PLC (programmable logic controller) 16 outputs signals to the industrial machine 3 and its peripheral devices (e.g., tool changers, actuators such as robots, sensors attached to the industrial machine 3, etc.) via an I / O unit 17 to control the industrial machine 3 using a sequence program built into the control device 1. The PLC 16 also receives signals from various switches on an operation panel installed on the main body of the industrial machine 3 and from peripheral devices, performs the necessary signal processing, and then passes the signals to the CPU 11.

[0016] The display device 70 displays various data loaded into the memory, data obtained as a result of executing operation programs, system programs, etc., output via the interface 18. In addition, the input device 71, which is composed of a keyboard, pointing device, etc., passes instructions, data, etc. based on operations by an operator to the CPU 11 via the interface 19.

[0017] The interface 20 is an interface for connecting the CPU 11 of the control device 1 to a wired or wireless network 5. The network 5 may communicate using technologies such as serial communication such as RS-485, Ethernet (registered trademark), optical communication, wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), etc. Other control devices 4, fog computers 6, cloud servers 7, etc. are connected to the network 5, and data is exchanged between the network 5 and the control device 1.

[0018] The axis control circuit 30 for controlling the drive axes of the industrial machine 3 receives position commands for the drive axes from the CPU 11 and outputs commands for the drive axes to the servo amplifier 40. The servo amplifier 40 receives these commands and drives the servo motors 50 associated with the drive axes, moving each component of the industrial machine 3 along the respective axes. Each servo motor 50 has a built-in position detector, and feeds back a position feedback signal from the position detector to the axis control circuit 30. The axis control circuit 30 performs feedback control of the servo motor 50 based on the position feedback signal. Note that while only one axis control circuit 30, servo amplifier 40, and servo motor 50 are shown in the hardware configuration diagram of FIG. 1 , in reality, there are as many axis control circuits 30, servo amplifiers 40, and servo motors 50 as there are drive axes of the industrial machine 3 to be controlled. For example, to control a typical machine tool with three linear axes and two rotational axes, five sets of axis control circuits 30, servo amplifiers 40, and servo motors 50 are provided to move a spindle to which a tool is attached and a workpiece relatively in the three linear axes and two rotational axes (X-axis, Y-axis, Z-axis, A-axis, and C-axis directions).

[0019] The spindle control circuit 60 receives a spindle rotation command and outputs a spindle speed signal to a spindle amplifier 61. The spindle amplifier 61 receives this spindle speed signal and rotates a spindle motor 62 of the industrial machine 3 at the commanded rotation speed to drive the spindle. A position coder 63 is connected to the spindle motor 62. The position coder 63 outputs a feedback pulse in synchronization with the rotation of the spindle, and the feedback pulse is read by the CPU 11.

[0020] The control device 1 may be configured as a separate entity from the industrial machine 3. In this case, the control device 1 and the industrial machine 3 may be connected by a signal line or the like, or may be connected via a network. Furthermore, the control device 1 may be connected to the industrial machine 3 by being incorporated in the industrial machine 3.

[0021] 2 is a schematic block diagram illustrating functions of the control device 1 according to the first embodiment of the present disclosure. Each function of the control device 1 according to this embodiment is realized by the CPU 11 of the control device 1 shown in FIG. 1 executing a system program and controlling the operation of each part of the control device 1.

[0022] The control device 1 of this embodiment includes a program acquisition unit 100 , a syntax analysis unit 110 , an execution determination unit 120 , a program analysis unit 150 , and a control unit 160 .

[0023] The program acquisition unit 100 acquires at least one operation program executed to control the industrial machine 3. This operation program is, for example, a numerical control program. If the industrial machine 3 is a robot, this operation program is, for example, a robot operation program. The program acquisition unit 100 may acquire an operation program stored in, for example, the RAM 13 or the non-volatile memory 14. The program acquisition unit 100 may also acquire an operation program from an external device 72. Furthermore, the program acquisition unit 100 may also acquire an operation program input by a user via the input device 71. The program acquisition unit 100 outputs the acquired operation program to the syntax analysis unit 110.

[0024] The syntax analysis unit 110 analyzes the operating program acquired by the program acquisition unit 100 and divides it into code units. The syntax analysis unit 110 may divide the operating program into code units using an algorithm commonly used for analyzing the syntax of operating programs, such as LR syntax analysis. The syntax analysis performed by the syntax analysis unit 110 corresponds to preprocessing of the program analysis process by the program analysis unit 150. The syntax analysis unit 110 outputs the divided code to the execution determination unit 120. The syntax analysis unit 110 also outputs the divided code to the program analysis unit 150.

[0025] The execution determination unit 120 determines whether each code parsed by the syntax analysis unit 110 is executable. The execution determination unit 120 determines whether each code is executable by determining whether a specific detection target code is included in each code. The detection target code used by the execution determination unit 120 according to this embodiment may be a preset, fixed code. The detection target code is code that issues a command related to settings that affect the overall operation of industrial machinery, such as a code that commands the setting of a system variable, a code that commands the change of a specific macro variable, or a specific M code. For example, in a numerical control program, examples of the detection target code include G10, macro variable assignment code, and some M codes. Furthermore, in a robot operation program, examples of the detection target code include register variable change code and some external signal output code. Typically, such code is executed by an operator with higher authority and is not included in programs executed by on-site workers. Therefore, the detection target code is set to detect such code as code requiring attention. The detection target code may be defined as a single code or as a string of multiple codes.

[0026] 3 is a table showing examples of codes to be detected. In the example of FIG. 3, at least three codes, "G10 L52," "#500=", and "M200," are set as codes to be detected that cannot be executed. When such codes to be detected are set and the execution determination unit 120 detects that these codes are included in an operation program, it determines that the operation program cannot be executed.

[0027] Fig. 4 shows an example of an operation program. Fig. 5 shows an example in which the operation program shown in Fig. 4 is parsed and divided into code units. When the code shown in Fig. 5 is subjected to a detection process based on the detection target code shown in Fig. 3, the detection target code is detected in the dotted frame in the figure. In such a case, the execution determination unit 120 determines that the operation program O0010 cannot be executed.

[0028] The execution determination unit 120 may determine whether or not an operation program can be executed when the operation program is acquired, or when a user issues a command to execute the operation program. Furthermore, the execution determination unit 120 may determine whether or not an operation program can be executed in parallel with the execution of the operation program. The execution determination unit 120 outputs the determination result to the program analysis unit 150.

[0029] The program analysis unit 150 analyzes the commands indicated by the code of the operation program acquired by the program acquisition unit 100 and parsed by the syntax analysis unit 110. The program analysis unit 150 then creates data necessary for controlling the industrial machine 3. For example, the program analysis unit 150 analyzes commands for controlling the drive axes of the industrial machine 3 and creates data related to movement commands for driving the respective servo motors 50. The program analysis unit 150 also analyzes commands for controlling the spindles of the industrial machine 3 and creates data related to spindle rotation commands for rotating the spindle motor 62. The program analysis unit 150 also analyzes commands for setting the control device 1 and each part of the industrial machine 3 and commands for controlling the operation of peripheral devices of the industrial machine 3 and creates data corresponding to each command. The program analysis unit 150 outputs the created control-related data to the control unit 160. The control unit 160 then controls each part of the industrial machine 3 based on the control-related data created by the program analysis unit 150.

[0030] When the execution determination unit 120 outputs a determination that the operation program cannot be executed, the program analysis unit 150 suspends the execution of the operation program and displays a message to that effect on, for example, the display device 70. At this time, an alert or the like may also be output.

[0031] The control device 1 of this embodiment, which has the above-mentioned configuration, can reliably prevent the execution of dangerous operating programs by blocking the execution of code that requires attention and is subject to detection, without requiring the user to perform any additional work.

[0032] Second Embodiment A control device according to a second embodiment of the present disclosure will be described below. The control device 1 according to this embodiment has the same hardware configuration as the control device 1 according to the first embodiment.

[0033] 6 is a schematic block diagram showing functions of the control device 1 according to the second embodiment of the present disclosure. As with the control device 1 according to the first embodiment, the functions of the control device 1 according to this embodiment are realized by the CPU 11 included in the control device 1 shown in FIG. 1 executing a system program and controlling the operation of each part of the control device 1.

[0034] The control device 1 according to this embodiment includes a program acquisition unit 100, a syntax analysis unit 110, an execution determination unit 120, a program analysis unit 150, a control unit 160, and further includes a detection target acquisition unit 130.

[0035] The program acquisition unit 100, syntax analysis unit 110, program analysis unit 150, and control unit 160 according to this embodiment have the same functions as those according to the first embodiment.

[0036] The detection target acquisition unit 130 acquires at least one predetermined detection target code. The detection target code acquired by the detection target acquisition unit 130 is code that issues commands related to settings that affect the overall operation of industrial machinery, such as code that commands the setting of a system variable, code that commands the change of a specific macro variable, or a specific M code. Typically, in many cases, such code is executed by an operator with higher authority and is not included in programs executed by workers on site. Therefore, such code is acquired as detection target code so that it can be detected as code requiring attention.

[0037] The detection target acquisition unit 130 may acquire the detection target code stored in advance in, for example, the RAM 13 or the non-volatile memory 14. Alternatively, the detection target code may be acquired from an external device 72. Furthermore, a predetermined input screen may be displayed on the display device 70, and the detection target code may be acquired through a user's operation of the input device 71, or the detection target code may be acquired from an external computer such as the fog computer 6 or the cloud server 7. The detection target acquisition unit 130 outputs the acquired detection target code to the execution determination unit 120.

[0038] The execution determination unit 120 determines whether or not each piece of code parsed by the syntax analysis unit 110 is executable. The execution determination unit 120 according to this embodiment determines whether or not the code contains the detection target code acquired by the detection target acquisition unit 130, thereby determining whether or not the code is executable.

[0039] The control device 1 according to the present embodiment having the above configuration can reliably prevent the execution of dangerous operation programs without requiring the user to perform any additional work by blocking the execution of code that is a detection target and that requires attention. Because the detection target code that requires attention can be set as appropriate, it is possible to select the detection target code as appropriate in accordance with the operation program to be executed, the type of industrial machine 3, the rules at the manufacturing site, etc., thereby enabling flexible response.

[0040] Third Embodiment A control device according to a third embodiment of the present disclosure will be described below. The control device 1 according to this embodiment has the same hardware configuration as the control device 1 according to the first embodiment.

[0041] 7 is a schematic block diagram showing functions of the control device 1 according to the third embodiment of the present disclosure. As with the control device 1 according to the first embodiment, the functions of the control device 1 according to this embodiment are realized by the CPU 11 included in the control device 1 shown in FIG. 1 executing a system program and controlling the operation of each part of the control device 1.

[0042] The control device 1 according to this embodiment includes a program acquisition unit 100, a syntax analysis unit 110, an execution determination unit 120, a program analysis unit 150, a control unit 160, as well as a user authentication unit 140 and an authority information acquisition unit 145.

[0043] The program acquisition unit 100, syntax analysis unit 110, program analysis unit 150, and control unit 160 according to this embodiment have the same functions as those according to the first embodiment.

[0044] The user authentication unit 140 authenticates the user who is using the control device 1. The user authentication unit 140 may authenticate the user of the control device 1 and the industrial machine 3, for example, by performing general ID and password authentication. Alternatively, the user may be authenticated by using a known authentication method such as fingerprint authentication or iris authentication. Furthermore, the user may be required to carry a device such as an IC card, and the user may be authenticated by detecting the device. The user authentication unit 140 outputs information identifying the authenticated user to the execution determination unit 120.

[0045] The authority information acquisition unit 145 acquires authority information related to the authority of users of the control device 1 and the industrial machine 3. The authority information acquired by the authority information acquisition unit 145 includes at least information identifying users who use the control device 1 and the industrial machine 3, associated with whether or not each detection target code is executable. FIG. 8 is a table diagram showing an example of authority information. The example of FIG. 8 shows that there are "Worker A" and "Administrator B" as users of the control device 1 and the industrial machine 3. Each user is associated with each detection target code as being executable ("◯") or not executable ("X"). In the case of FIG. 8, for the three detection target codes "G10 L52", "#500=", and "M200", all of the codes are inexecutable for worker A, and all of the codes are executable for administrator B.

[0046] The authority information acquisition unit 145 may acquire authority information that is stored in advance in, for example, the RAM 13 or the nonvolatile memory 14. Alternatively, the authority information may be acquired from the external device 72. Furthermore, the authority information may be acquired from an external computer such as the fog computer 6 or the cloud server 7. The authority information acquisition unit 145 outputs the acquired authority information to the execution determination unit 120.

[0047] The execution determination unit 120 determines whether each piece of code parsed by the syntax analysis unit 110 is executable. When determining whether or not to execute, the execution determination unit 120 according to this embodiment refers to information identifying the user authenticated by the user authentication unit 140 and the authority information acquired by the authority information acquisition unit 145. Then, the execution determination unit 120 determines whether or not to execute each piece of code by determining whether or not each piece of code in the operation program includes a piece of detection target code that cannot be executed by the user using the control device 1 and the industrial machine 3. Note that if the authority information does not include information related to the user currently using the control device 1 and the industrial machine 3, all of the detection target code may be treated as not executable.

[0048] The control device 1 according to the present embodiment having the above configuration can reliably prevent the execution of dangerous operation programs by blocking the execution of code that requires attention and is a detection target, without requiring the user to perform any additional work. In particular, since it is possible to set code that is a detection target and that cannot be executed for each user currently using the control device 1 and the industrial machine 3, it is possible to respond more flexibly in accordance with the authority of each user.

[0049] Although the embodiments of the present disclosure have been described in detail above, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the invention or the idea and intent of the present disclosure derived from the content described in the claims and their equivalents. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these. The same applies when numerical values ​​or mathematical expressions are used in the description of the above-described embodiments.

[0050] The following are supplementary notes related to embodiments of the present disclosure. (Supplementary Note 1) A control device (1) according to one aspect of the present disclosure includes a program acquisition unit (100) that acquires at least one operation program that is either a numerical control program or a robot operation program executed to control an industrial machine (3), a syntax analysis unit (110) that parses the operation program and converts it into code units, an execution determination unit (120) that determines whether each code parsed by the syntax analysis unit (110) is executable based on a predetermined detection target code, a program analysis unit (150) that analyzes the code and creates command data related to control, and a control unit (160) that controls the industrial machine (3) based on the command data, and suspends execution of the operation program when the execution determination unit (120) determines that the operation program is not executable.

[0051] (Supplementary Note 2) The detection target code detected by a control device (1) according to another aspect of the present disclosure includes code that changes a setting value. (Supplementary Note 3) A control device (1) according to another aspect of the present disclosure further includes a detection target acquisition unit (130) that acquires a predetermined detection target code. (Supplementary Note 4) A control device (1) according to another aspect of the present disclosure further includes an authority information acquisition unit (145) that acquires authority information related to a user's authority, and the execution determination unit (120) determines whether or not to allow execution based on the authority information.

[0052] (Supplementary Note 5) An industrial machine (3) according to one aspect of the present disclosure includes any one of the control devices (1) described above.

[0053] REFERENCE SIGNS LIST 1 Control device 3 Industrial machine 4 Control device 5 Network 6 Fog computer 7 Cloud server 11 CPU 12 ROM 13 RAM 14 Non-volatile memory 15, 18, 19, 20 Interface 16 PLC 17 I / O unit 22 Bus 30 Axis control circuit 40 Servo amplifier 50 Servo motor 60 Spindle control circuit 61 Spindle amplifier 62 Spindle motor 63 Position coder 70 Display device 71 Input device 72 External device 100 Program acquisition unit 110 Syntax analysis unit 120 Execution determination unit 130 Detection target acquisition unit 140 User authentication unit 145 Authority information acquisition unit 150 Program analysis unit 160 Control unit

Claims

1. A control device comprising: a program acquisition unit that acquires at least one operation program which is either a numerical control program or a robot operation program executed to control industrial machinery; a syntax analysis unit that parses the operation program and converts it into code units; an execution determination unit that determines whether each code parsed by the syntax analysis unit is executable based on a predetermined code to be detected; a program analysis unit that analyzes the code and creates command data related to control; and a control unit that controls the industrial machinery based on the command data, wherein the control device interrupts the execution process of the operation program when the execution determination unit determines that the operation program is not executable.

2. The control device according to claim 1, wherein the code to be detected includes a code for changing a setting value.

3. The control device according to claim 1, further comprising a detection target acquisition unit that acquires a predetermined detection target code.

4. The control device according to claim 1, further comprising an authority information acquisition unit that acquires authority information related to user authority, wherein the execution determination unit determines whether or not execution is permitted based on the authority information.

5. An industrial machine equipped with the control device according to any one of claims 1 to 4.

Citation Information

Patent Citations

  • Numerical control device

    JP2006215740A

  • Numerical value control device having program processing resumption function

    JP2015222550A

  • Control device

    JP2022063397A