Sequence program editing device and PLC device

The sequence program editing device and PLC device address incompatibilities by attributing and grouping program components, ensuring consistent and simultaneous execution of multiple sequence programs.

WO2025248578A1PCT designated stage Publication Date: 2025-12-04FANUC LTD
View PDF 3 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Existing programmable logic controllers (PLCs) face issues with incompatibilities between separately developed sequence programs for pre-processing, main processing, and post-processing, leading to incorrect combinations and improper execution due to version mismatches.

Method used

A sequence program editing device assigns attributes to program components within each sequence program, and a PLC device acquires and executes these attributes to ensure consistent execution, grouping program parts by their processing type to prevent incompatibilities and ensure simultaneous updates.

Benefits of technology

This approach prevents incompatibilities and ensures that all related processes are updated simultaneously, maintaining correct program execution sequences.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024019342_04122025_PF_FP_ABST
    Figure JP2024019342_04122025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention prevents compatibility between sequence programs even when a plurality of sequence programs are grouped together by process and executed sequentially. Provided is a sequence program editing device for editing a sequence program for a PLC device that sequentially executes a plurality of sequence programs. This sequence program editing device comprises a program component attribute assignment unit that assigns, to each of a plurality of program components constituting a sequence program for the PLC device, an attribute related to a process to be executed by each of the plurality of program components.
Need to check novelty before this filing date? Find Prior Art

Description

Sequence program editing device and PLC device

[0001] The present disclosure relates to a sequence program editing device and a PLC device that edit and execute multiple sequence programs executed in one task.

[0002] A programmable logic controller (PLC) has the ability to execute multiple sequence programs sequentially in a single task. For example, in a PLC configured to execute multiple program elements within a cycle time, a technology is known in which the execution time of each program element is measured, the execution time of the program element execution timer is stored, the multiple program elements are executed, and, based on the execution times of each program element stored in memory, a determination is made as to whether the total execution time of the multiple program elements exceeds the cycle time. If the total execution time exceeds the cycle time, logic compression of the program element is performed. For example, see Patent Document 1. Multiple sequence programs (program elements) are developed separately for each control target or for each developer.

[0003] JP 2012-113405 A

[0004] A single sequence program may be divided into pre-processing, main processing, post-processing, etc., and it may be necessary to execute each sequence program individually, such as pre-processing, main processing, and post-processing. In such cases, the pre-processing, main processing, and post-processing are each created as separate sequence programs, but this can lead to incompatibilities between the sequence programs. For example, in Figure 9, one or more programmers first create version 1 sequence programs 1 to 3 for the pre-processing, main processing, and post-processing of process A in a development environment such as a computer, and then create version 2 sequence programs 1 to 3 by adding functions. In this case, it is possible that one of programs 1 to 3 may be forgotten to be updated with additional functions or transferred to the PLC in the execution environment. In this case, the PLC will not be able to process the sequence programs correctly because the versions of sequence programs 1 to 3 are different and therefore the combination is invalid.

[0005] For this reason, even if a single program is divided into, for example, pre-processing, main processing, and post-processing, it is desirable to develop the pre-processing, main processing, and post-processing as a single program rather than creating separate programs for each. This ensures that all related processes are included in a single program, so they are always updated simultaneously. Furthermore, even when multiple sequence programs are used and pre-processing, main processing, post-processing, and other processes in each program are executed sequentially, it is desirable to prevent incorrect combinations from occurring.

[0006] (1) One aspect of the sequence program editing device disclosed herein is a sequence program editing device that edits a sequence program for a PLC device that sequentially executes multiple sequence programs, and includes a program component attribute assigning unit that assigns attributes related to the processing performed by each of multiple program components that make up the sequence program for the PLC device to the multiple program components.

[0007] (2) One aspect of the PLC device of the present disclosure includes a program component attribute acquisition unit that acquires the attributes of a plurality of program components in each of a plurality of sequence programs created by the sequence program editing device of (1), and a program execution unit that sequentially executes each of the program components having the same acquired attributes.

[0008] 1 is a diagram showing an example of the configuration of each of a plurality of sequence programs. FIG. 2 is a diagram showing an example of the execution order of program parts when a plurality of sequence programs are executed. FIG. 3 is a diagram showing an example of the functional block configuration of a PLC system according to an embodiment. FIG. 4 is a diagram showing an example of a sequence program to which no attributes are added. FIG. 5 is a diagram showing an example of a sequence program to which attributes are added. FIG. 6 is a diagram showing an example of a sequence program. FIG. 7 is a diagram showing an example of a sequence program. FIG. 8 is a diagram showing an example of a list in which program parts of each sequence program are grouped by attribute. FIG. 9 is a diagram showing an example of a sequence program in which program parts of each sequence program are grouped by attribute. FIG. 10 is a flowchart illustrating program execution processing of a PLC system. FIG. 11 is a diagram showing an example of a sequence program. FIG. 12 is a diagram showing an example of a conventional technology.

[0009] An industrial machinery system according to one embodiment will be described in detail below with reference to the drawings. <One Embodiment> First, an overview of this embodiment will be described. In this embodiment, as shown in FIG. 1A, a sequence program editing device creates multiple sequence programs so that each includes program parts to which attributes related to processes such as pre-processing, main processing, and post-processing are assigned. As shown in FIG. 1B, a PLC device (hereinafter also referred to as "PLC") acquires attributes for each of the multiple sequence programs and sequentially executes each program part having the same acquired attributes. As a result, according to this embodiment, even when multiple sequence programs are sequentially executed collectively for each process, it is possible to prevent incompatibilities between the sequence programs. This concludes the overview of this embodiment.

[0010] FIG. 2 is a diagram illustrating an example of a functional block configuration of a PLC system according to an embodiment. As illustrated in FIG. 2, the PLC system 1 includes a sequence program editing device 10 and a PLC 20. The sequence program editing device 10 and the PLC 20 may be directly connected to each other via a connection interface (not shown). The sequence program editing device 10 and the PLC 20 may also be connected to each other via a network (not shown), such as a local area network (LAN) or the Internet, to communicate with each other. In this case, the sequence program editing device 10 and the PLC 20 each include a communication unit (not shown) for communicating with each other via such a connection.

[0011] <Sequence program editing device 10> The sequence program editing device 10 is an information processing device such as a general personal computer or a tablet terminal. The sequence program editing device 10 has a CPU 11, a storage unit 12, an input unit 13, and a display unit 14. It is also possible for the PLC 20 to be configured to include the sequence program editing device 10.

[0012] <Input Unit 13> The input unit 13 is a keyboard, a mouse, a touch panel arranged in front of the display unit 14 (described later), or the like, and accepts input operations from a programmer for creating a sequence program. For example, when creating a program, the programmer can input attributes related to processing, such as pre-processing, main processing, and post-processing, for each of the multiple program components that make up the sequence program. Note that, as will be described later, attributes may be divided into two (e.g., pre-processing, post-processing), four (e.g., pre-processing, main processing-1, main processing-2, post-processing), or the like, depending on the function and purpose of the sequence program.

[0013] <Display Unit 14> The display unit 14 is a liquid crystal display, etc. For example, the display unit 14 may display a sequence program created by inputting data from a programmer via the input unit 13.

[0014] <Storage Unit 12> The storage unit 12 may be a ROM (Read Only Memory), RAM (Random Access Memory), SSD (Solid State Drive), HDD (Hard Disk Drive), or the like. The storage unit 12 stores N sequence programs 121-1 to 121-N created by the sequence program editing device 10, along with an operating system and application programs executed by the CPU 11 (described later). N is an integer equal to or greater than 2. As shown in FIG. 2, each sequence program 121-i (i = 1 to N) includes program components Ai-1 to Ai-3 that perform pre-processing, main processing, post-processing, and other processes. Attributes 1 to 3 of the program components Ai-1 to Ai-3 indicate attributes related to pre-processing, main processing, post-processing, and the like, which are added by the program component attribute assigner 111 (described later). FIGS. 3A and 3B are diagrams illustrating an example of the sequence program 121-i. FIG. 3A illustrates an example of the sequence program 121-i created by the sequence program editing device 10. 3B shows a sequence program 121-i to which processing attributes have been added by the program component attribute assigning unit 111, which will be described later. As shown in FIG. 3B, in the sequence program 121-i, the attribute Ai-1 [attribute: pre-processing] has been added to the net comment of net number "1," the attribute Ai-2 [attribute: main processing] has been added to the net comment of net number "2," and the attribute Ai-3 [attribute: post-processing] has been added to the net comment of net number "3." Note that in FIG. 3B, the sequence program 121-i is divided into three parts: pre-processing, main processing, and post-processing, but it may be divided into two or four or more parts depending on the function and purpose.

[0015] <CPU 11> The CPU 11 is a processor that controls the entire sequence program editing device 10. The CPU 11 reads out the system program and various software application programs stored in the storage unit 12, and controls the entire sequence program editing device 10 in accordance with the system program and the application programs. As a result, as shown in Fig. 2, the CPU 11 is configured to realize the function of a program component attribute assigning unit 111. The CPU 11 may also create a sequence program 121-i for the PLC 20 based on input operations by a programmer via the input unit 13.

[0016] As shown in Figure 3B, the program component attribute assignment unit 111 assigns attributes (e.g., preprocessing) related to the processing performed by each of the program components Ai-1 to Ai-3 that make up the sequence program 121-i, for example, to the net comments of each of the program components.

[0017] <PLC 20> The PLC 20 is a PLC device known to those skilled in the art that executes a plurality of sequence programs 121-1 to 121-N, such as ladder programs, to perform various controls, arithmetic processing, signal input / output processing, etc. The PLC 20 has a CPU 21 and a storage unit 22.

[0018] <Storage Unit 22> The storage unit 22 is a ROM, RAM, SSD, HDD, etc. The storage unit 22 stores an operating system and application programs executed by the CPU 21, which will be described later, as well as a plurality of sequence programs 121-1 to 121-N transmitted from the sequence program editing device 10. Note that the storage unit 22 may also store attributes of a plurality of program components in each of the sequence programs 121-1 to 121-N, which are acquired by a program component attribute acquisition unit 211, which will be described later.

[0019] <CPU 21> The CPU 21 is a processor that performs overall control of the PLC 20. The CPU 21 reads out the system program and various software application programs stored in the storage unit 22, and controls the entire PLC 20 in accordance with the system program and the application programs. As a result, as shown in Fig. 2, the CPU 21 is configured to realize the functions of a program component attribute acquisition unit 211 and a program execution unit 212.

[0020] The following description will be given by way of example of a case in which three sequence programs 121-1 to 121-3 are created by the sequence program editing device 10 and executed by the PLC 20. The PLC 20 is not limited to three sequence programs 121-1 to 121-3, and may also execute two or four or more sequence programs. FIGS. 4A to 4C are diagrams showing examples of the sequence programs 121-1 to 121-3. FIG. 4A shows the sequence program 121-1. As shown in FIG. 4A, the sequence program 121-1 is a two-part sequence program consisting of a pre-processing program component placed at net number "1" and post-processing program components placed at net numbers "2" and "3." FIG. 4B shows the sequence program 121-2. As shown in FIG. 4B, the sequence program 121-2 is a three-part sequence program consisting of a pre-processing program component placed at net number "1," a main processing-1 program component placed at net number "2," and a post-processing program component placed at net number "3." 4C shows the sequence program 121-3. As shown in Fig. 4C, the sequence program 121-3 is a four-part sequence program consisting of a pre-processing program part allocated to net number "1", a main processing-1 part allocated to net number "2", a main processing-2 part allocated to net number "3", and a post-processing program part allocated to net number "4".

[0021] The program component attribute acquisition unit 211 may acquire attributes related to processing assigned to the program components included in each sequence program 121-1 to 121-3, which have multiple program components and are created by the sequence program editing device 10, and store the attributes in the memory unit 12.

[0022] FIG. 5 is a diagram showing an example of a list of program components for each of the sequence programs 121-1 to 121-3, organized by attribute. In FIG. 5, the attributes are four: "pre-processing," "main processing-1," "main processing-2," and "post-processing." However, this is not limited to these four attributes, and other processing attributes may also be included. As shown in the list in FIG. 5, in the sequence program 121-1 of FIG. 4A, the pre-processing program component has only net number "1," so "1" is stored in the first net number and the last net number. Furthermore, the post-processing program component has net numbers ranging from "2" to "3," so "2" is stored in the first net number and "3" is stored in the last net number. Furthermore, in the sequence program 121-2 of FIG. 4B, the pre-processing program component has only net number "1," so "1" is stored in the first net number and the last net number. Furthermore, since the main processing-1 program component only has net number "2", "2" is stored in the first net number and the last net number. Furthermore, since the post-processing program component only has net number "3", "3" is stored in the first net number and the last net number. Furthermore, in sequence program 121-3 of FIG. 4C, since the pre-processing program component only has net number "1", "1" is stored in the first net number and the last net number. Furthermore, since the main processing-1 program component only has net number "2", "2" is stored in the first net number and the last net number. Furthermore, since the main processing-2 program component only has net number "3", "3" is stored in the first net number and the last net number. Furthermore, since the post-processing program component only has net number "3", "4" is stored in the first net number and the last net number.

[0023] As a result, for example, if a user wants to execute program parts within each program collectively on an attribute basis, or wants to simplify the flow of the combined processing, the program execution unit 212 can sequentially execute program parts with the same type of processing attributes obtained from, for example, sequence programs 121-1 to 121-3.

[0024] Specifically, for example, when instructed to sequentially execute program parts with the same processing attributes, the program execution unit 212 refers to the list in FIG. 5 and groups the program parts of each of the sequence programs 121-1 to 121-3 by attribute. FIG. 6 illustrates an example of a sequence program in which the program parts of each of the sequence programs 121-1 to 121-3 are grouped by attribute. The program execution unit 212 executes the grouped sequence program as shown in FIG. 6 to sequentially execute the sequence programs 121-1 to 121-3. By doing so, even if a single program is divided into, for example, pre-processing, main processing, and post-processing, the PLC 20 develops the pre-processing, main processing, and post-processing as a single program rather than creating separate programs for each. This ensures that all related processes are included in a single program, ensuring simultaneous updates and preventing miscombinations. Furthermore, users can sequentially execute multiple sequence programs by grouping together the pre-processing, main processing, post-processing, and other processes of each program.

[0025] <Program Execution Processing of PLC System 1> Next, the flow of the program execution processing of the PLC system 1 will be described with reference to Fig. 7. Fig. 7 is a flowchart illustrating the program execution processing of the PLC system 1.

[0026] In step S11, the sequence program editing device 10 (CPU 11) creates a plurality of sequence programs 121-1 to 121-3 based on input from the programmer via the input unit 13.

[0027] In step S12, the program component attribute assigning section 111 assigns to the net comment attributes relating to the processing of each of the plurality of program components that make up each of the sequence programs 121-1 to 121-3 created in step S11.

[0028] In step S13, the sequence programs 121-1 to 121-3 to which attributes have been assigned in step S12 are transmitted to the PLC 20.

[0029] In step S21, the PLC 20 (CPU 21) receives the sequence programs 121-1 to 121-3 transmitted in step S13, and stores the received sequence programs 121-1 to 121-3 in the storage unit 22.

[0030] In step S22, the program part attribute acquisition unit 211 acquires the attributes of the plurality of program parts in each of the sequence programs 121-1 to 121-3 received in step S21, and stores the acquired attributes in the storage unit 22.

[0031] In step S23, when multiple sequence programs are executed sequentially by grouping together each process such as pre-processing, main processing, and post-processing in each program, the program execution unit 212 groups each of the program components of sequence programs 121-1 to 121-3 into a single sequence program by attribute based on the attributes stored in the memory unit 22 in step S22.

[0032] In step S24, the program execution unit 212 sequentially executes the sequence programs compiled in step S23.

[0033] As described above, the sequence program editing device 10 and PLC 20 according to one embodiment can prevent incompatibilities between sequence programs even when multiple sequence programs are executed sequentially by processing. In other words, the sequence program editing device 10 assigns process-related attributes, such as pre-processing, main processing, and post-processing, to each of the sequence programs 121-1 to 121-3, and the PLC 20 writes the sequence programs together into a single sequence program based on the attributes, thereby preventing incompatibilities between the sequence programs. Furthermore, because the sequence program editing device 10 creates the program components for each process, such as pre-processing, main processing, and post-processing, for each of the sequence programs 121-1 to 121-3 together, they are always updated simultaneously, preventing incorrect combinations.

[0034] <Modification> In the embodiment described above, the signals (e.g., X0, Y0, etc.) in the sequence programs 121-1 to 121-3 did not affect each other between the sequence programs, but this is not limited to this. For example, the signals in the sequence programs 121-1 to 121-3 may affect each other. FIG. 8 is a diagram showing an example of the sequence program 121-1. In FIG. 8, a process for saving a log for net number "3" is added to the program component for post-processing of the sequence program 121-1 in FIG. 4A. By doing so, the program execution unit 212 of the PLC 20 can execute the sequence programs 121-1 to 121-3 to save the logs of the sequence programs 121-2 and 121-3, along with the sequence program 121-1, in post-processing after the pre-processing and main processing.

[0035] In one embodiment, the functions included in the sequence program editing device 10 and the PLC 20 can be realized by hardware, software, or a combination of these. Here, "realized by software" means that the functions are realized by a computer reading and executing a program.

[0036] The program can be stored and supplied to a computer using various types of non-transitory computer-readable media. 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 be provided to the computer by 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 media can provide the program to the computer via a wired communication path such as an electrical wire or optical fiber, or via a wireless communication path.

[0037] The step of executing the program recorded on the recording medium includes not only processes that are performed in chronological order, but also processes that are not necessarily performed in chronological order but are performed in parallel or individually. Also, the step of writing the program may be performed by cloud computing.

[0038] Although the present disclosure has been described in detail, 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 present disclosure or the spirit of the present disclosure derived from the content of the claims and their equivalents. These embodiments can also be implemented in combination. 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.

[0039] The following supplementary notes are further disclosed regarding the above-described embodiments and modifications. (Supplementary Note 1) A sequence program editing device (10) is a sequence program editing device (20) that edits a sequence program (121-i) for a PLC device (20) that sequentially executes a plurality of sequence programs (121-1 to 121-N), and includes a program component attribute assigning unit (111) that assigns attributes related to the processing executed by each of the plurality of program components constituting the sequence program (121-i) for the PLC device (20), to each of the plurality of program components. (Supplementary Note 2) In the sequence program editing device (10) of Supplementary Note 1, the attributes include any of pre-processing, main processing, and post-processing. (Supplementary Note 3) The PLC device (20) includes a program component attribute acquisition unit (211) that acquires attributes of a plurality of program components in each of a plurality of sequence programs (121-1 to 121-N) created by the sequence program editing device (10) of Supplementary Note 1 or Supplementary Note 2, and a program execution unit (212) that sequentially executes each program component having the same acquired attribute.

[0040] 1 PLC system 10 Sequence program editing device 11 CPU 111 Program component attribute assigning unit 12 Storage unit 121-1 to 121-N Sequence program 20 PLC 21 CPU 211 Program component attribute acquiring unit 212 Program executing unit 22 Storage unit

Claims

1. A sequence program editing device that edits a sequence program for a PLC device that sequentially executes multiple sequence programs, the sequence program editing device comprising a program component attribute assigning unit that assigns attributes related to the processing executed by each of the multiple program components that make up the sequence program for the PLC device to the multiple program components.

2. The sequence program editing device according to claim 1, wherein the attributes include any one of pre-processing, main processing, and post-processing.

3. A PLC device comprising: a program component attribute acquisition unit that acquires the attributes of a plurality of program components in each of a plurality of sequence programs created by the sequence program editing device described in claim 1 or claim 2; and a program execution unit that sequentially executes each of the program components having the same acquired attributes.

Citation Information

Patent Citations

  • Programmable controller, user program switching device and method thereof

    JP1996054908A

  • Programmable controller

    JP1997160611A

  • Programmable controller

    JP2005084800A