Development support device, control method for development support device, information processing program, and recording medium

The development support device addresses the challenge of managing program sections by allowing users to set hierarchical relationships independent of logic relationships, enabling effective reflection of device processes and functions in the program structure.

JP7673490B2Active Publication Date: 2025-05-09OMRON CORP
View PDF 16 Cites 0 Cited by

Patent Information

Application Number
JP2021086280
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-05-21
Publication Date
2025-05-09
Estimated Expiration
2041-05-21

AI Technical Summary

Technical Problem

Existing development support devices cannot manage multiple sections of a user program independently of logic relationships, preventing users from reflecting information like device processes and functions in the program structure.

Method used

A development support device that allows users to set hierarchical relationships between program sections independently of call relationships, using a reception unit to accept user operations and a hierarchical management unit to assign information identifying the hierarchy to each section.

Benefits of technology

Enables users to manage multiple program sections in a way that reflects inclusive information, such as device processes and functions, while maintaining the simplicity of execution order determination, allowing for easy understanding and manipulation of section execution orders.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007673490000001
    Figure 0007673490000001
  • Figure 0007673490000002
    Figure 0007673490000002
  • Figure 0007673490000003
    Figure 0007673490000003
Patent Text Reader

Abstract

To manage multiple sections of a program regardless of the logical relationship while reflecting information, each having an inclusion relationship such as "the process and function of a device".SOLUTION: A development support device (10) gives a hierarchical number (HN) to each of the multiple sections (SC) of a program (PG) for identifying the hierarchy that each of them belongs to in response to a user operation.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a development support device that supports a user in creating a program to be executed by a control device. [Background technology]

[0002] Conventionally, development support devices for supporting the development of control systems using industrial control devices such as programmable logic controllers (hereinafter abbreviated as "PLCs") have been known. For example, Patent Documents 1 and 2 listed below disclose development support devices that allow a user to divide and manage a user program into a plurality of partial programs (hereinafter referred to as "sections"), each of which is a processing unit unrelated to a calling relationship (logical relationship). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2004-240592 A [Patent Document 2] JP 2004-240593 A Summary of the Invention [Problem to be solved by the invention]

[0004] However, the above-mentioned conventional techniques do not allow a user to manage multiple sections that make up a user program in a manner that reflects information that is mutually inclusive, such as "equipment processes and functions," regardless of logical relationships.

[0005] One aspect of the present invention is to enable a user to manage multiple sections that make up a user program in a manner that reflects information that is mutually inclusive, such as "equipment processes and functions," regardless of logical relationships. [Means for solving the problem]

[0006] In order to solve the above problems, a development support device according to one embodiment of the present invention is a development support device that supports a user in creating a program to be executed on a control device, the program being divided into a plurality of sections, each of which is a unit of processing set by the user regardless of calling relationships, and each of the plurality of sections is executed sequentially from highest to lowest depending on its writing position in the program, and the development support device is equipped with a reception unit that receives user operations to set a hierarchical relationship between the plurality of sections, and a hierarchy management unit that assigns, to each of the plurality of sections, information identifying the hierarchical level to which each of the sections belongs in accordance with the hierarchical relationship.

[0007] According to the above configuration, when the development support device receives a user operation to set a hierarchical relationship between the multiple sections, it assigns to each of the multiple sections information that identifies the hierarchical level to which each of the sections belongs in accordance with the hierarchical relationship.

[0008] The "calling relationship" refers to a "calling-called relationship" between "multiple units (elements) constituting the program" such as POUs (Program Organization Units) defined in IEC 61131-3. The "calling relationship" is also called a "reference-referenced relationship" or a "logical relationship."

[0009] For example, when a POU in a program calls (references) another POU, the POU is called the caller (referencer), and the other POU called by the POU is called the callee (referenced).The relationship between the POU and the other POU is said to be a call relationship, with the POU as the caller and the other POU as the callee.

[0010] Conventionally, it has not been possible to set a hierarchical relationship between the multiple sections that make up the program, and therefore the user has not been able to manage the multiple sections in a manner that reflects information that is inclusive of one another, such as "equipment processes and functions."

[0011] In response to this, the development support device allows the user to set "any hierarchical relationship" between the multiple sections constituting the program, which is unrelated to the call relationship (logical relationship). In other words, the user can set a hierarchical relationship between the multiple sections constituting the program that reflects information that is inclusive of each other, such as "device processes and functions."

[0012] Therefore, the development support device has the effect of enabling the user to "manage the multiple sections that make up the program in a manner that reflects information that is mutually inclusive, such as 'equipment processes and functions', regardless of logical relationships."

[0013] In addition, since the execution order of the sections is determined according to the simple rule that "the sections are executed in order from the top to the bottom," the user can easily understand the execution order of each of the multiple sections. And, the fact that "the user can easily understand the execution order of each of the multiple sections" can be evaluated as the convenience of the sections.

[0014] The "information specifying a hierarchical level" assigned to each of the sections constituting the program does not affect the order in which the sections are executed, i.e., the hierarchical level to which the sections belong does not affect the order in which the sections are executed. Therefore, even if a user sets a hierarchical relationship between the sections, the simple rule of the sections that "sections are executed in order from top to bottom" is not affected, and the usability of the sections is not affected.

[0015] Therefore, the development support device has the effect of enabling the user to "manage the multiple sections in a manner that reflects information that is inclusive of each other, such as 'equipment processes and functions'," while maintaining the convenience of the sections.

[0016] Furthermore, the user can set a hierarchical relationship between the multiple sections that reflects information that is inclusive of each other, such as "equipment processes and functions." In other words, the user can relate two or more sections to each other by "relationships that are meaningful to the user."

[0017] The development support device then performs at least one of changing the position of a description in the program, duplicating, comparing, etc., for each of two or more sections that are related to each other by a "relationship that is meaningful to the user."

[0018] Therefore, the development support device has the effect of being able to change, copy, compare, etc. the position of writing in the program, using two or more sections that are related to each other by a "relationship that is meaningful to the user" as a unit.

[0019] A development support device according to one embodiment of the present invention may establish a parent-child relationship between a certain section and another section, with the certain section as a parent node and the other section as a child node, when the following conditions are satisfied: (1) the hierarchy to which the certain section belongs is one level higher than the hierarchy to which the other section belongs; and (2) in the program, the position at which the certain section is written is higher than the position at which the other section is written; and (3) in the program, no section other than the certain section that belongs to the same hierarchy as the certain section belongs is written between the position at which the certain section is written and the position at which the other section is written.

[0020] According to the above configuration, when the certain section and the other section satisfy the condition, the development support device sets the parent-child relationship between the certain section and the other section.

[0021] Here, the condition is a condition related to the hierarchical level to which the section belongs and the position of the section in the program, so that the development support device can set the parent-child relationship between the certain section and the other section in accordance with the hierarchical level set by a user between the sections and the position of the section in the program.

[0022] The hierarchical relationship is a relationship that is arbitrarily set by the user, and is a relationship that reflects information that is inclusive of one another, such as "device processes and functions."

[0023] Therefore, the development support device has the effect of being able to set the parent-child relationship between the certain section and the other section in a manner that reflects information that is inclusive of each other, such as "device processes and functions."

[0024] A development support device according to one embodiment of the present invention may further include a display control unit that displays the identification information of each of the one section and the other section in the parent-child relationship using a tree structure indicating the parent-child relationship, and when displaying the identification information of the one section, the display control unit may be capable of switching between (1) a collapsed display in which the identification information of the other section is not displayed, and (2) an expanded display in which the identification information of the other section is displayed together with the identification information of the one section.

[0025] According to the above configuration, when displaying identification information of a section, the development support device can switch between a folded display in which the identification information of the section corresponding to the child node is not displayed, and an expanded display in which the identification information of the section corresponding to the child node is displayed.

[0026] Here, since the identification information of the section corresponding to the child node is not displayed in the folded display, the folded display is suitable as a display format when, for example, the user wants to check only the sections belonging to the higher hierarchy.

[0027] In contrast, since the expanded display displays the identification information of the section corresponding to the child node, the expanded display is suitable as a display format when, for example, a user wants to check the sections that are set as child nodes for a certain section.

[0028] Therefore, the development support device has the advantage of being able to display each of the multiple sections in a display format that corresponds to a level desired by the user.

[0029] In a development support device according to one embodiment of the present invention, when a certain description in the program is grammatically incorrect, the display control unit may display, as the identification information of the section containing the error, (1) identification information of a section containing the certain description, and (2) identification information of a section corresponding to an ancestor node in a tree structure showing the parent-child relationship, in which the section containing the certain description is a descendant node.

[0030] According to the above configuration, when a certain description in the program is grammatically incorrect, the development support device displays identification information of the section containing the certain description and identification information of the section corresponding to the ancestor node of the "section containing the certain description."

[0031] Therefore, the development support device has the effect of allowing the user to easily check not only the section containing grammatically incorrect content, but also the section corresponding to the ancestor node of the "section containing grammatically incorrect content."

[0032] In a development support device according to one embodiment of the present invention, a user may be able to perform at least one of changing the order of execution, cutting, copying, pasting, importing, exporting, and changing the hierarchy on a group of sections consisting of (1) one section and (2) all sections that correspond to descendant nodes when the one section is treated as an ancestor node in a tree structure showing the parent-child relationships.

[0033] According to the above configuration, the development support device enables "the user to perform at least one of changing the execution order, cutting, copying, pasting, importing, exporting, and changing the hierarchy, using the group of sections as a unit."

[0034] Here, the section group consists of (1) a section corresponding to an ancestor node in a tree structure showing the parent-child relationship, and (2) all sections corresponding to descendant nodes of the ancestor node in the tree structure. The parent-child relationship is set by the development support device according to the hierarchical relationship "arbitrarily set by the user between the multiple sections." Therefore, the section group is a unit arbitrarily set by the user for the multiple sections that make up the program, and can be considered as a unit consisting of two or more sections.

[0035] Therefore, the development support device has the effect of being able to perform at least one of changing the execution order, cutting, copying, pasting, importing, exporting, and changing the hierarchy in "units arbitrarily set by the user for the multiple sections."

[0036] A development support device according to one embodiment of the present invention may further include a selection unit that, when a user operation to select a certain section is accepted, selects as a target a group of sections consisting of (1) the certain section and (2) all sections corresponding to descendant nodes in a tree structure showing the parent-child relationship, the tree structure having the certain section as an ancestor node.

[0037] According to the above configuration, when the development support device receives a user operation to select a certain section, the development support device selects, as targets, a section group consisting of the certain section and all sections corresponding to the descendant nodes.

[0038] Here, the section group consists of (1) a section corresponding to an ancestor node in a tree structure showing the parent-child relationship, and (2) all sections corresponding to descendant nodes of the ancestor node in the tree structure. The parent-child relationship is set by the development support device according to the hierarchical relationship "arbitrarily set by the user between the multiple sections." Therefore, the section group is a unit arbitrarily set by the user for the multiple sections that make up the program, and can be considered as a unit consisting of two or more sections. A user operation to select a certain section can be considered as a user operation to select the section group "consisting of the certain section and all sections corresponding to descendant nodes in a tree structure with the certain section as an ancestor node" as a processing target.

[0039] Therefore, the development support device has an effect that, when a user selects a certain section, two or more sections including the certain section (i.e., the section group) can be selected according to “a unit arbitrarily set by the user for the multiple sections.” In other words, the development support device has an effect that, when a user selects a certain section, the development support device can select, as a target selected by the user, the section group including the certain section and another section related to the certain section by the user.

[0040] A development support device according to one embodiment of the present invention may further include an order management unit which manages the order of execution of each of the multiple sections, and the order management unit may, depending on the position of the section in the program, execute the section which is written higher in the program earlier than the section which is written lower in the program, regardless of the hierarchical relationship of the sections.

[0041] According to the above configuration, the development support device determines the execution order of the sections according to a simple rule that "the sections are executed in sequence from the top to the bottom in the description position," regardless of the hierarchical relationship of the sections.

[0042] The execution order of the sections is determined according to the simple rule that "the sections are executed in order from the top to the bottom," so the user can easily understand the execution order of each of the multiple sections. And the fact that "the user can easily understand the execution order of each of the multiple sections" can be evaluated as the convenience of the sections.

[0043] Therefore, the development support device has the effect of enabling the user to "manage the multiple sections in a manner that reflects information that is inclusive of each other, such as 'equipment processes and functions'," while maintaining the convenience of the sections.

[0044] In a development support device according to one embodiment of the present invention, when a user performs an operation to place a section group consisting of (1) a certain section and (2) all sections corresponding to descendant nodes in a tree structure showing the parent-child relationship in which the certain section is an ancestor node, in a position immediately before another section in the program that belongs to the same hierarchy as the certain section, the order management unit (3) may not change the relative execution order of each of the two or more sections included in the section group, and (4) may set the execution order of the section included in the section group that is located at the bottom to be the execution order just before the execution order of the other sections.

[0045] According to the above configuration, when a user performs an operation to place the section group including the certain section in a position immediately before another section in the program that belongs to the same hierarchical level as the certain section, the development support device executes the following process. That is, the development support device sets the execution order of the section that is written at the lowest position among the sections in the section group to the execution order immediately before the execution order of the other section. The development support device does not change the relative execution order of each of the two or more sections in the section group, that is, does not change the relative order relationship of each of the sections in the section group.

[0046] Therefore, the development support device has the effect of being able to collectively change the execution order of each of two or more sections included in the section group to be before the execution order of another section in accordance with "a unit arbitrarily set by the user for the multiple sections."

[0047] In a development support device according to one embodiment of the present invention, when a user performs an operation to place a section group consisting of (1) a certain section and (2) all sections corresponding to descendant nodes in a tree structure showing the parent-child relationship in which the certain section is an ancestor node, in a position immediately after another section in the program that belongs to the same hierarchy as the certain section, the order management unit (3) may not change the relative execution order of each of the two or more sections included in the section group, and (4) may set the execution order of the certain section to be one execution order after the execution order of the section that is written lowest among the sections corresponding to descendant nodes in the tree structure showing the parent-child relationship in which the other section is an ancestor node.

[0048] According to the above configuration, when a user performs an operation to place the section group including the certain section in the program immediately after another section that belongs to the same hierarchy as the certain section, the development support device executes the following process. That is, the development support device sets the execution order of the certain section to be one section after the execution order of the section that is written at the lowest position among the sections corresponding to the descendant nodes in a tree structure in which the other section is an ancestor node. The development support device does not change the relative execution order of each of the two or more sections included in the section group, that is, does not change the relative order relationship of each of the sections in the section group.

[0049] Therefore, the development support device has the effect of being able to collectively change the execution order of each of two or more sections included in the section group to be after the execution order of another section in accordance with "a unit arbitrarily set by the user for the multiple sections."

[0050] A development support device according to one embodiment of the present invention may further include an addition unit that, upon a user operation to import a group of sections consisting of (1) a certain section that is set as the hierarchy to which a certain hierarchy in the parent-child relationship should belong, and (2) a section that corresponds to a descendant node in a tree structure in which the certain section is an ancestor node, stores each of the two or more sections that constitute the section group in a memory unit without changing the hierarchy to which each of them belongs, and the order management unit may (3) for the two or more sections included in the section group, without changing the relative execution order of each of the sections in the section group, and (4) set the execution order of the certain section to be one execution order after the execution order of the section that was executed latest at the time before the section group was imported.

[0051] According to the above configuration, when a user performs an operation to import a section group consisting of the certain section and a section corresponding to a descendant node in a tree structure in which the certain section is an ancestor node, the development support device stores the section group in a storage unit. In particular, the development support device stores the section group in the storage unit while maintaining an ancestor-descendant relationship between two or more sections SC constituting the section group, that is, stores each of the two or more sections SC constituting the section group in the storage unit.

[0052] Specifically, the development support device stores each of the two or more sections constituting the section group in the storage unit without changing the hierarchical level to which each of the sections belongs.The development support device then sets the execution order of the certain section to be one execution order after the execution order of the section that is executed latest before the section group is imported, without changing the relative execution order of the two or more sections.

[0053] Therefore, the development support device has the effect of being able to import two or more sections at once, to which a parent-child relationship (ancestor-descendant relationship) has been assigned by the user, instead of importing two or more sections one by one.

[0054] In particular, the development support device has the effect of being able to import two or more sections SC to which a parent-child relationship (ancestor-descendant relationship) has been assigned by the user at once, while maintaining the ancestor-descendant relationship between them.

[0055] A development support device according to one embodiment of the present invention may further include a comparison unit that, when comparing the program before and after the update, compares whether the pre-update hierarchy and the post-update hierarchy of a certain section match.

[0056] According to the above configuration, when comparing the pre-update and post-update versions of the program, the development support device compares whether the pre-update hierarchical level and the post-update hierarchical level of a certain section match.

[0057] Therefore, the development support device has the effect of enabling the user to check the section in which only the hierarchy to which it belongs has been changed before and after the update.

[0058] In a development support device according to one embodiment of the present invention, when a user operation is received to raise or lower the hierarchy level to which a certain section belongs, the hierarchy management unit may raise or lower (1) the hierarchy to which the certain section belongs and (2) the hierarchy to which each of all sections corresponding to descendant nodes in a tree structure showing the parent-child relationship, in which the certain section is an ancestor node, by one level, all at once, in response to the user operation.

[0059] According to the above configuration, when a user operation is received to raise or lower the hierarchy level to which the certain section corresponding to an ancestor node belongs, the development support device changes the hierarchy levels to which the following sections belong in addition to the hierarchy level to which the certain section belongs. In other words, the development support device changes the hierarchy levels to which all sections corresponding to descendant nodes in a tree structure with the certain section as an ancestor node belong in addition to the hierarchy to which the certain section belongs.

[0060] Therefore, the development support device has the effect of being able to collectively raise or lower the hierarchical level to which each of two or more sections in an ancestor-descendant relationship belongs by one level in response to a user operation.

[0061] In order to solve the above problems, a control method according to one aspect of the present invention is a control method for a development support device that assists a user in creating a program to be executed on a control device, the program being divided into a plurality of sections, each of which is a unit of processing set by a user regardless of calling relationships, and each of the plurality of sections is executed sequentially from highest to lowest depending on its writing position in the program, and the control method includes a reception step for receiving a user operation to set a hierarchical relationship between the plurality of sections, and a hierarchy management step for assigning, to each of the plurality of sections, information identifying the hierarchical level to which each of the sections belongs in accordance with the hierarchical relationship.

[0062] According to the above configuration, when the control method receives a user operation to set a hierarchical relationship between the multiple sections, it assigns information to each of the multiple sections that identifies the hierarchical level to which each of the sections belongs in accordance with the hierarchical relationship.

[0063] The "calling relationship" refers to a "calling-called relationship" between "multiple units (elements) constituting the program" such as POUs (Program Organization Units) defined in IEC 61131-3. The "calling relationship" is also called a "reference-referenced relationship" or a "logical relationship."

[0064] For example, when a POU in a program calls (references) another POU, the POU is called the caller (referencer), and the other POU called by the POU is called the callee (referenced).The relationship between the POU and the other POU is said to be a call relationship, with the POU as the caller and the other POU as the callee.

[0065] Conventionally, it has not been possible to set a hierarchical relationship between the multiple sections that make up the program, and therefore the user has not been able to manage the multiple sections in a manner that reflects information that is inclusive of one another, such as "equipment processes and functions."

[0066] In contrast, the control method allows the user to set "any hierarchical relationship" between the multiple sections constituting the program, which is unrelated to the call relationship (logical relationship). In other words, the user can set a hierarchical relationship between the multiple sections constituting the program that reflects information that is inclusive of each other, such as "device processes and functions."

[0067] Therefore, the control method has the effect of enabling the user to manage the multiple sections that make up the program in a manner that reflects information that is mutually inclusive, such as "apparatus processes and functions," regardless of logical relationships.

[0068] In addition, since the execution order of the sections is determined according to the simple rule that "the sections are executed in order from the top to the bottom," the user can easily understand the execution order of each of the multiple sections. And, the fact that "the user can easily understand the execution order of each of the multiple sections" can be evaluated as the convenience of the sections.

[0069] The "information specifying a hierarchical level" assigned to each of the sections constituting the program does not affect the order in which the sections are executed, i.e., the hierarchical level to which the sections belong does not affect the order in which the sections are executed. Therefore, even if a user sets a hierarchical relationship between the sections, the simple rule of the sections that "sections are executed in order from top to bottom" is not affected, and the usability of the sections is not affected.

[0070] Therefore, the control method has the effect of enabling a user to manage the multiple sections in a manner that reflects information that is inclusive of each other, such as "equipment processes and functions," while maintaining the convenience of the sections.

[0071] Furthermore, the user can set a hierarchical relationship between the multiple sections that reflects information that is inclusive of each other, such as "equipment processes and functions." In other words, the user can relate two or more sections to each other by "relationships that are meaningful to the user."

[0072] The control method performs at least one of, for example, changing the position of a description in the program, duplicating, comparing, etc., for two or more sections that are related to each other by a "relationship that is meaningful to the user" as a unit.

[0073] Therefore, the control method has the effect of being able to change, copy, compare, etc. the position of writing in the program, using two or more sections that are related to each other by a "relationship that is meaningful to the user" as a unit. Effect of the Invention

[0074] According to one aspect of the present invention, a user can manage multiple sections that make up a program in a manner that reflects information that is mutually inclusive, such as "equipment processes and functions," regardless of logical relationships. [Brief description of the drawings]

[0075] [Figure 1] 1 is a block diagram showing a configuration of a main part of a development support device according to a first embodiment of the present invention. [Diagram 2] FIG. 2 is a diagram showing an overall outline of a control system including the development support device of FIG. 1. [Diagram 3] FIG. 13 is a diagram showing an example of a hierarchical relationship set between multiple sections by a user. [Figure 4] 13A and 13B are diagrams illustrating a user operation for lowering or raising a section hierarchy level. [Diagram 5] 2 is a diagram showing an example of the configuration of a section table stored in a storage unit of the development support device of FIG. 1; [Figure 6] 2 is a flow diagram of a process for setting a hierarchical relationship between a plurality of sections, which is executed by the development support device of FIG. 1. FIG. [Figure 7] 1A and 1B are diagrams illustrating examples of a folded display and an unfolded display, respectively. [Figure 8] This is an example that highlights not only the section with the error, but also the sections that belong to a higher hierarchy relative to that section. [Figure 9] 13A to 13C are diagrams illustrating an example of a user operation for changing a position in units of a section group. [Figure 10] 13A to 13C are diagrams illustrating an example of a user operation for executing copy and paste in units of section groups. [Figure 11] 13A and 13B are diagrams illustrating example images displaying comparison results before and after a program update. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0076] [Embodiment 1] An embodiment according to one aspect of the present invention (hereinafter also referred to as "the present embodiment") will be described below with reference to Figs. 1 to 11. Note that the same or corresponding parts in the figures are given the same reference numerals and their description will not be repeated. In the present embodiment, for example, a development support device 10 will be described as a typical example of a development support device that supports a user in creating a program PG (e.g., a user program) executed in a PLC (Programmable Logic Controller) 20 (control device).

[0077] In the following description, "m", "n", "p", "q", "x", "y", and "z" each represent an integer equal to or greater than 0. Furthermore, "m" and "n" are different integers, "p" and "q" are different integers, and "x", "y", and "z" are different integers.

[0078] Furthermore, when it is necessary to distinguish between multiple sections SC, they are distinguished by adding suffixes such as "(1)", "(2)", "(3)", ..., and "(z)" to the reference symbols. For example, they are distinguished by writing "Section SC(1)", "Section SC(2)", "Section SC(3)", ..., and "Section SC(z)". When there is no particular need to distinguish between each of the multiple sections SC, they are simply referred to as "Section SC". The same applies to the hierarchical number HN, the writing position PS, the execution order EO, ​​etc.

[0079] In order to facilitate understanding of a development support device 10 according to an embodiment of the present invention, first, an overview of a control system 1 including the development support device 10 will be described with reference to FIG.

[0080] § 1. Examples of Application (Overall overview of the control system) 2 is a diagram showing an overall overview of a control system 1 including a development support device 10. The control system 1 is a master-slave control system including a PLC 20 as a master device and one or more slave devices 40 connected to the master device via a network (field network 60). The PLC 20 is called a "master device" in the sense that it manages data transmission via the field network 60.

[0081] When multiple PLCs 20 are connected to the field network 60, one of the PLCs 20 may be a master device, and the remaining PLCs 20 may be slave devices. Also, a control entity other than either the PLC 20 or the slave device 40 may be the master device. In other words, the "master device" and the "slave device" are defined with a focus on the control function of data transmission on the field network 60, and there is no particular limitation on the type of information transmitted and received between the devices.

[0082] The PLC 20 performs overall control of the control system 1. Specifically, the PLC 20 acquires information as input data from a device 50, which is an input device such as a sensor, via a slave device 40. The PLC 20 executes arithmetic processing using the acquired input data according to a pre-installed user program. The PLC 20 executes the arithmetic processing to determine the control content for the device 50, which is an output device such as an actuator, and outputs control data corresponding to the control content to the device 50 via the slave device 40.

[0083] The field network 60 transmits various data received by the PLC 20 or transmitted by the PLC 20. The field network 60 is, for example, EtherCAT (registered trademark), PROFINET (registered trademark), MECHATROLINK (registered trademark)-III, Powerlink, SERCOS (registered trademark)-III, or CIP Motion. The field network 60 may also be, for example, EtherNet / IP (registered trademark), DeviceNet, or CompoNet (registered trademark). In the following, a control system 1 will be described in which data frames are transferred sequentially on the field network 60 to transmit and receive data between the PLC 20 and a slave device 40, or between multiple slave devices 40.

[0084] The slave device 40 is a slave device in a network (field network 60) in which the PLC 20 serves as a master device, and is, for example, a device communication management unit such as a communication coupler that manages communication with the device 50. The slave device 40 may be a servo driver that is directly connected to the field network 60.

[0085] The device 50 is an input device such as a sensor, and an output device such as an actuator. One or more devices 50 are connected to the slave device 40 via a communication cable.

[0086] The development support device 10 is connected to the PLC 20 via a communication cable, such as a Universal Serial Bus (USB) cable. The development support device 10 is an information processing device for generating a user program executed by the PLC 20 and various setting information for the control system 1.

[0087] The development support device 10 provides, for example, a development environment for the PLC 20, and provides an environment for a user to create (create and edit) a program such as a user program according to a control purpose (for example, a target line and process). The user creates program code for a control program (user program) to be executed by the PLC 20 using a development environment (programming tool) provided by the development support device 10. The development support device 10 may have a debugging function and a simulation function to assist the user in creating and editing a control program to be executed by the PLC 20.

[0088] Furthermore, the development support device 10 may, for example, calculate and set the timing for the PLC 20 to acquire a state value (input refresh) and the timing for the PLC 20 to update an output value (output refresh). The development support device 10 may monitor the operating state of the PLC 20 and the values ​​of various data.

[0089] The development support device 10 may be a device that provides an integrated development environment that also supports 3D motion simulation, in addition to programming, configuration (configuration setting), debugging, maintenance, and monitoring functions of the PLC 20. The development support device 10 may also set and adjust various parameters for the slave device 40.

[0090] The development support device 10 is typically configured as a general-purpose computer. For example, the information processing program executed by the development support device 10 may be stored and distributed on a CD-ROM (Compact Disk-Read Only Memory) (not shown). The program stored on this CD-ROM is read by a CD-ROM drive (not shown) and stored on a hard disk or the like of the development support device 10. Alternatively, the development support device 10 may be configured to download a program similar to the program stored on the DVD-ROM from a higher-level host computer or the like via a network.

[0091] As shown in Fig. 2, an HMI (Human Machine Interface) 30 may be connected to the PLC 20 via a communication cable. The HMI 30 is a means for humans and machines to exchange information, specifically, a means for humans to operate a machine (give instructions to the machine) and a machine to inform humans of its current status and results. Regarding the HMI 30, means by which humans give instructions to a machine include switches, buttons, handles, dials, pedals, remote controls, microphones, keyboards, mice, etc. Regarding the HMI 30, means by which a machine communicates information related to its current status, results, etc. to humans include LCD screens, meters, lamps, speakers, etc.

[0092] The HMI 30 includes a display unit, an operation unit, a communication unit that communicates with the PLC 20, and a control unit that controls each unit. The HMI 30 can change various settings of the control system 1 (e.g., the PLC 20) in response to a user operation on the operation unit. The display unit of the HMI 30 displays predetermined information about the control system 1.

[0093] Programs that the user creates and edits using the development environment provided by the development support device 10 include user programs, motion calculation programs, and sequence instruction calculation programs. The "user program" is created according to the user's control target (for example, the target line and process). The development support device 10 generates a user program by compiling a ladder program (source program) written in ladder logic (ladder language). Ladder logic is a method for describing logic circuits and is a programming language adopted in many PLCs. The user program is generated, for example, in an object program format that can be executed by a microprocessor included in the PLC 20. The "motion calculation program" is a program that is executed according to instructions from the user program and calculates a command value to be output to a motor driver such as a servo motor driver and a pulse motor driver each time it is executed. The "sequence instruction calculation program" is a program that is called when a specific sequence command used in the user program is executed and is executed to realize the contents of the command.

[0094] (Overview of the development support device according to this embodiment) The development support device 10 manages one or more projects, each of which includes “one or more program PG.” A project includes “setting information for a controller such as the PLC 20” and “one or more program PG.”

[0095] The program PG is the logic that controls the controller, and examples of this include ST programs and ladder programs. The program PG is the object that the user edits, and is also called source code. The program PG is divided into multiple sections SC, each of which corresponds to, for example, "the steps and functions of the device."

[0096] Sections SC are an arbitrary number of divisions of a program PG, and correspond to information that is meaningful to the user, such as "processes and functions of an apparatus." Sections SC differ from POUs, which will be described later, in that they are "units (units that make up a program PG) that are set independently of calling relationships (logical relationships)."

[0097] Techniques for dividing a program PG into multiple sections SC and managing them have been known for some time, and the multiple sections SC that make up the program PG are executed sequentially from the section with the highest writing position PS to the section with the lowest writing position PS, in accordance with the writing position PS in the program PG.

[0098] The convenience of sections SC lies in the fact that "the program PG can be divided into multiple units for management" and that "the execution order EO of sections SC can be easily understood because the execution order EO is simply determined according to the description position PS." In other words, the user can arbitrarily divide the program PG into two or more sections SC in association with information that is meaningful to the user, such as "processes and functions of the equipment," and can easily understand the execution order EO of each of the multiple sections SC.

[0099] Here, multiple "equipment processes and functions" may have a mutually inclusive relationship, but conventionally, it has not been possible to manage multiple sections SC in a manner that reflects information that has a mutually inclusive relationship, such as "equipment processes and functions."

[0100] However, the user wants to manage the program PG by reflecting information that is inclusive of one another, such as "equipment processes and functions," in the program structure. In other words, the user wants to manage the multiple SCs that make up the program PG in a form that reflects information that is inclusive of one another, such as "equipment processes and functions."

[0101] Here, units called POUs, such as Function Blocks and Functions, are elements for logically structuring a program PG hierarchically, but are not elements that reflect information that is mutually inclusive, such as "equipment processes and functions." POUs are related to each other through logical relationships (call relationships), and users cannot set relationships between multiple POUs independently of the call relationships. For this reason, it is difficult to visually grasp inclusive relationships, such as "processes and functions," when managing a program PG based on POUs.

[0102] The purpose of the development support device 10 is to enable program management (management of section SC) such as changing the order, duplicating, and comparing in units that are meaningful to the user, such as "processes and functions of the device," without losing the convenience of the above-mentioned sections SC. In other words, the purpose of the development support device 10 is to enable "the user to visually grasp the inclusion relationship, such as "processes and functions," when managing the program PG," while keeping the rules related to the execution order of the program PG simple. In addition, the purpose of the development support device 10 is to enable "the user to perform operations such as "changing the writing position EP (i.e., execution order EO)," "duplicating," and "comparing" for the sections SC constituting the program PG, using the above-mentioned inclusion relationship as a unit." The development support device 10 enables the user to perform operations such as changing the writing position EP, duplicating, and comparing, using "two or more sections SC related to each other by a hierarchical relationship (ancestor-descendant relationship) that reflects the above-mentioned inclusion relationship" as a unit.

[0103] To achieve the above-mentioned objective, the development support device 10 gives each of the multiple sections SC hierarchical information that reflects information in a mutually inclusive relationship, such as "device processes and functions," and manages a program PG made up of multiple hierarchical sections SC. In other words, the development support device 10 gives each of the multiple sections SC that make up the program PG hierarchical information (hierarchical number HN), making it possible to manage the multiple sections SC in a tree structure.

[0104] As a result, the development support device 10 allows "a user to change, copy, compare, etc., the execution order EO collectively for two or more sections SC in a unit that is meaningful to the user" while keeping the conventional rules for determining the execution order EO. By using the development support device 10, the user can manage programs in an efficient and user-friendly manner, that is, manage the multiple sections SC that make up the program PG.

[0105] The development support device 10 will be briefly described below with respect to points to note and the processes executed by the development support device 10.

[0106] (About execution order) The hierarchical information (hierarchical number HN) that the development support device 10 assigns to the sections SC is unrelated to the execution order OR of the sections SC in the program PG. The execution order OR of the sections SC is determined only by the writing positions PS of the sections SC in the program PG, and the sections SC are executed sequentially from the section with the highest writing position PS to the section with the lowest writing position PS in the program PG.

[0107] (Regarding parent-child relationships) When a user assigns a hierarchical relationship between multiple sections SC that make up a program PG, the development support device 10 sets a parent-child relationship between two or more sections SC according to the hierarchical level to which the sections SC belong and the writing position PS of the sections SC.

[0108] Specifically, when sections SC(m) and SC(n) constituting a program PG satisfy the following three conditions, the development support device 10 establishes a parent-child relationship between the two, with section SC(m) as the parent node and section SC(n) as the child node.

[0109] The first condition is that the hierarchical level to which section SC(m) belongs is one hierarchical level above the hierarchical level to which section SC(n) belongs; in other words, "the hierarchical level number HN(m) of section SC(m) is one lower than the hierarchical level number HN(n) of section SC(n)."

[0110] The second condition is that "in the program PG, the writing position PS(m) of section SC(m) is above the writing position PS(n) of section SC(n)." Since the execution order EO of section SC is determined only by the writing position PS of section SC, the second condition can be rephrased as follows. That is, it can be rephrased as "the execution order EO(m) of section SC(m) is earlier than the execution order EO(n) of section SC(n)."

[0111] The third condition is that "between the writing position PS(m) and the writing position PS(n), there is no section SC other than section SC(m) that belongs to the same hierarchical level to which section SC(m) belongs." Since the execution order EO of section SC is determined only by the writing position PS of section SC, the third condition can be rephrased as follows. In other words, it can be rephrased as "a section SC other than section SC(m) that belongs to the same hierarchical level to which section SC(m) belongs will not be executed between the execution order EO(m) and the execution order EO(n)." The execution order EO(m) is the execution order EO of section SC(m), and the execution order EO(n) is the execution order EO of section SC(n).

[0112] The development support device 10 executes processes such as display, change of writing position PS, cut, copy, paste, import, and export for two or more sections SC in a parent-child relationship (ancestor-descendant relationship), for example, as follows. That is, the development support device 10 executes these processes in the same manner as a personal computer executes processes such as display, change of position, cut, copy, paste, import, and export for two or more elements in a hierarchical relationship (parent-child relationship).

[0113] (Display processing performed by the development support device) The development support device 10 displays the relationship between two or more sections SC in a parent-child relationship (ancestor-descendant relationship) using a tree structure, and for example displays the names (identification information) of each of the multiple sections SC that make up the program PG in a tree-like manner. The development support device 10 can switch between a folded display and an expanded display of the names of the sections SC displayed in a tree-like manner, similar to a tree-like display that is generally used when displaying two or more elements in a hierarchical relationship (parent-child relationship).

[0114] Furthermore, if there is a parent-child relationship between sections SC(m) and SC(n), and if the development support device 10 determines that there is an error in the contents (program, source code) of section SC(n), it displays the following information: That is, the development support device 10 displays the name of section SC(m) in addition to the name of section SC(n) as the name of the section SC in which the error was found.

[0115] (Regarding changes to the description position and execution order) As described above, the execution order EO of the sections SC is determined only by the positions PS of the sections SC in the program PG. The user can change the execution order EO of the sections SC in the program PG by changing the positions PS of the sections SC in the program PG.

[0116] By using the development support device 10, the user can collectively change the writing positions PS of two or more sections SC that have an ancestor-descendant relationship (parent-child relationship).

[0117] In the following description, a set of two or more sections SC consisting of "one section SC corresponding to an ancestor node" and "all sections SC corresponding to descendant nodes of the ancestor node" may be referred to as a "section group SG." For example, a set of sections SC consisting of section SC(p) and all sections SC corresponding to descendant nodes whose ancestor node is section SC(p) may be referred to as a section group SG(p). Similarly, a set of sections SC consisting of section SC(q) and all sections SC corresponding to descendant nodes whose ancestor node is section SC(q) may be referred to as a section group SG(q).

[0118] For example, when sections SC(p) and SC(q) belong to the same hierarchical layer, the user can collectively change the writing positions PS of two or more sections included in the section group SG as follows by using the development support device 10. That is, the user can exchange the writing position PS of the section group SG(p) with the writing position PS of the section group SG(q).

[0119] For example, the user can collectively change the writing position PS of each of two or more sections SC included in the section group SG(q) to a position above the writing position PS(p) of section SC(p). The user can collectively change the writing position PS of each of two or more sections SC included in the section group SG(p) to a position below the writing position PS of the section SC with the lowest writing position PS among the sections SC included in the section group (q).

[0120] Furthermore, the user can collectively change the writing positions PS of two or more sections included in the section group SG, using the section group SG as a unit, without changing the relative positional relationship between the two or more sections SC included in the section group SG.

[0121] The user can move the writing positions of two or more sections SC, including the selected section SC(p) and any sections SC corresponding to descendant nodes of section SC(p), together above or below the writing position PS of the section group SC(q).

[0122] (About cutting, copying, pasting, etc.) A user can execute at least one of the operations of cut, copy, paste, import, and export collectively on two or more sections SC in an ancestor-descendant relationship (parent-child relationship) by using the development support device 10. In other words, a user can perform an operation such as cut on a unit of "a section group SG consisting of one section SC and 'all sections SC corresponding to descendant nodes when that one section SC is regarded as an ancestor node'".

[0123] (Comparison before and after program updates, etc.) When the program PG is updated (changed) by the user, the development support device 10 can compare the program PG before and after the update with each other and merge both of them.

[0124] Specifically, the development support device 10 can compare the following information for the program PG before the update and the program PG after the update: That is, the development support device 10 can independently compare the hierarchical information of each of the multiple sections SC constituting each of the program PG and the contents of each of the multiple sections SC constituting each of the program PG before and after the update.

[0125] Furthermore, the development support device 10 can merge each of the multiple sections SC that make up the pre-update program PG with each of the multiple sections SC that make up the post-update program PG.

[0126] (About POU) In addition to Section SC, IEC61131-3 also provides POU (Program Organization Unit) as a unit that configures a Program PG. In IEC61131-3, a Program PG is created in functional units, and these functional units are called "POU." POU can be considered as "the smallest unit for program management that consists of multiple instruction words," and is a general term for the functional components that make up a user program.

[0127] A POU is a logical unit that constitutes a program PG, and multiple POUs are related to each other by logical relationships (call relationships). The difference between a POU and a section SC is that while a POU is a unit that is related to each other by logical relationships, a section SC is a unit that is arbitrarily related by the user according to "equipment processes and functions" etc., regardless of logical relationships.

[0128] The "calling relationship" refers to a "calling-called relationship" between "multiple units (elements) constituting a program PG" such as POU (Program Organization Unit) defined in IEC 61131-3. A "calling relationship" is also called a "reference-referenced relationship" or a "logical relationship."

[0129] For example, when a POU calls (references) another POU in a program PG, the POU is called the caller (referencer) and the other POU called by the POU is called the callee (referenced).Then, there is said to be a call relationship between the POU and the other POU, with the POU as the caller and the other POU as the callee.

[0130] POUs, which are logical units that make up a user program, include programs PG, functions, and function blocks. In other words, there are three types of POUs: programs PG, functions, and function blocks, and POU is a general term for these.

[0131] A program is sometimes abbreviated as "PRG" or "PG" and refers to an algorithm that uses functions, function blocks, etc.

[0132] Function Blocks, sometimes abbreviated as "FB," are a group of processes that need to store internal variables, etc. Most libraries are function blocks.

[0133] A function, sometimes abbreviated as "FUN," refers to an instruction that has no internal state and is used for arithmetic operations, type conversion, and the like.

[0134] The difference between function blocks and functions is that function blocks can generate different instances of the same type, but functions cannot generate instances using logic alone. Also, if the input is the same, the calculation result will always be the same, which is the difference between function blocks and functions.

[0135] (About the sections before and after which the hierarchical relationship is set) Fig. 3 is a diagram showing an example of a hierarchical relationship set between multiple sections SC by a user. The left side of Fig. 3 (i.e., (A) of Fig. 3) shows an example image showing a program PG before a hierarchical relationship is set between multiple sections SC. The right side of Fig. 3 (i.e., (B) of Fig. 3) shows an example image showing a program PG after a hierarchical relationship is set between multiple sections SC. The example image shown on the left side of Fig. 3 and the example image shown on the right side of Fig. 3 are each displayed, for example, by the development support device 10.

[0136] In the example image shown on the left side of Fig. 3, the program PG (specifically, ST_Program0) is divided into the following 11 sections SC: That is, the program PG: ST_Program0 is divided into 11 sections SC, which are, from the top down, FrameSection, Frame_InitializeSection, ..., InspectionSection.

[0137] In the following description, FrameSection may be expressed as section SC(1), Frame_InitializeSection as section SC(2), Frame_Validation as section SC(3), Frame_WorkSection as section SC(4), UnitSection as section SC(5), ..., InspectionSection as section SC(11).

[0138] In the example image shown on the left side of Figure 3, no hierarchical relationship is set for these 11 sections SC, in other words, these 11 sections SC all belong to the same hierarchical level. For example, these 11 sections SC all belong to the hierarchical level "Hierarchical level number HN:1".

[0139] In contrast to the example image shown on the left side of FIG. 3, in the example image shown on the right side of FIG. 3, a hierarchical relationship (parent-child relationship) is set for the eleven sections SC shown on the left side of FIG.

[0140] For example, the following hierarchical relationship (parent-child relationship) is set between the three sections SC, FrameSection, Frame_InitializeSection, and Frame_WorkSection. That is, a parent-child relationship is set in which FrameSection is the parent node and Frame_InitializeSection and Frame_WorkSection are the child nodes. The hierarchy to which section SC(2) called Frame_InitializeSection and section SC(4) called Frame_WorkSection belong is immediately below the hierarchy to which section SC(1) called FrameSection belongs.

[0141] Also, for example, the following hierarchical relationship (parent-child relationship) is set between Frame_InitializeSection and Frame_Validation. That is, a parent-child relationship is set in which Frame_InitializeSection is the parent node and Frame_Validation is the child node. The hierarchy to which section SC(3) called Frame_Validation belongs is the hierarchy immediately below the hierarchy to which section SC(2) called Frame_InitializeSection belongs. Frame_Validation can be considered as section SC corresponding to a grandchild node with FrameSection as the parent node (ancestor node).

[0142] Furthermore, for example, the following hierarchical relationship (parent-child relationship) is set between the three sections SC, UnitSection, Unit_InitializeSection, and Unit_WorkSection. That is, a parent-child relationship is set in which UnitSection is the parent node and Unit_InitializeSection and Unit_WorkSection are the child nodes. The hierarchy to which the section SC(6) called Unit_InitializeSection and the section SC(7) called Unit_WorkSection belong is immediately below the hierarchy to which the section SC(5) called UnitSection belongs.

[0143] In addition, the following parent-child relationships are established between Unit_WorkSection, Unit_WorkFunctionSectionA, Unit_WorkFunctionSectionB, and Unit_WorkFunctionSectionC. That is, a parent-child relationship is established in which Unit_WorkSection is the parent node and each of the remaining three sections SC is a child node. The hierarchy to which Unit_WorkFunctionSectionA, Unit_WorkFunctionSectionB, and Unit_WorkFunctionSectionC belong is the hierarchy immediately below the hierarchy to which Unit_WorkSection belongs. Unit_WorkFunctionSectionA, Unit_WorkFunctionSectionB, and Unit_WorkFunctionSectionC correspond to grandchild nodes with Unit_WorkSection as the parent node (ancestor node).

[0144] Although details will be described later, when the development support device 10 receives a user operation that changes the hierarchical level to which a section SC belongs (for example, a user operation as exemplified in Fig. 4), the development support device 10 sets a parent-child relationship between the multiple sections SC that make up the program PG, or cancels the parent-child relationship. For example, when a user operation that sets a hierarchical relationship between the eleven sections SC exemplified on the left side of Fig. 3 is received, the development support device 10 sets a parent-child relationship (ancestor-descendant relationship) between those eleven sections SC, as exemplified on the right side of Fig. 3.

[0145] The development support device 10 assigns hierarchical information (specifically, hierarchical number HN) to sections SC that divide the program PG, thereby managing the multiple sections SC that make up the program PG in a hierarchical structure. Specifically, the development support device 10 adds hierarchical information to the sections SC, and manages sections SC(m) and SC(n) so that, for example, section SC(n) belongs to a lower hierarchical level than the hierarchical level to which section SC(m) belongs. In particular, the development support device 10 manages the relationship between the multiple sections SC to which a hierarchical relationship has been assigned as a parent-child relationship (ancestor-descendant relationship).

[0146] The hierarchical information given to the sections SC by the development support device 10 (that is, the hierarchical number HN of the sections SC) does not affect the program execution order, that is, the execution order EO of the sections SC is not affected by the hierarchical number HN of the sections SC.

[0147] The following describes the hierarchical number HN assigned to a section SC, the execution order EO of a section SC, and the parent-child relationship (ancestor-descendant relationship) between two or more sections SC.

[0148] (About hierarchical numbers) The development support device 10 manages the hierarchical level to which each of the multiple sections SC constituting the program PG belongs by using a hierarchical level number HN. For example, the development support device 10 sets the hierarchical level number HN as follows for each of the above-mentioned eleven sections SC constituting the program PG:ST_Program0 illustrated on the right side of FIG.

[0149] That is, the development support device 10 sets the hierarchical levels HN of the FrameSection, UnitSection, and InspectionSection belonging to the highest hierarchical level among the above-mentioned eleven sections SC illustrated on the right side of FIG. 3 to, for example, "1."

[0150] Furthermore, the development support device 10 sets the hierarchical number HN of a section SC belonging to a hierarchical level immediately below a certain hierarchical level to a value obtained by adding "1" to the hierarchical number HN of the section SC belonging to that certain hierarchical level. For example, when the section SC belonging to the highest hierarchical level is regarded as a parent node, the development support device 10 sets the hierarchical number HN of the section SC corresponding to the child node to "2" by adding "1" to the "hierarchical number HN:0" of the section SC belonging to the highest hierarchical level.

[0151] 3, the development support device 10 sets the hierarchical number HN of Frame_InitializeSection and Frame_WorkSection, which correspond to the "child nodes having FrameSection as a parent node", to "2". Similarly, the development support device 10 sets the hierarchical number HN of Unit_InitializeSection and Unit_WorkSection, which correspond to the "child nodes having UnitSection as a parent node", to "2".

[0152] Furthermore, the development support device 10 sets the hierarchical number HN of Frame_Validation, which corresponds to the "child node having Frame_InitializeSection as a parent node", to "3". Similarly, the development support device 10 sets the hierarchical number HN of each of the three sections SC, which correspond to the "child node having Unit_WorkSection as a parent node", to "3". That is, the development support device 10 sets the hierarchical number HN of each of Unit_WorkFunctionSectionA, Unit_WorkFunctionSectionB, and Unit_WorkFunctionSectionC to "3".

[0153] (About execution order) The development support device 10 manages the execution order EO of each of the multiple sections SC constituting the program PG only by the writing position PS in the program PG, regardless of the hierarchical number HN of each. Specifically, the development support device 10 makes the execution order EO of a section SC whose writing position PS is higher in the program PG earlier than the execution order EO of a section SC whose writing position PS is lower in the program PG.

[0154] For example, if the writing position PS(m) of section SC(m) is above the writing position PS(n) of section SC(n) in the program PG, the development support device 10 sets the execution order EO(m) of section SC(m) as follows: That is, the development support device 10 sets the execution order EO(m) of section SC(m) earlier than the execution order EO(n) of section SC(n).

[0155] Therefore, even if a hierarchical relationship is set between multiple sections SC, the development support device 10 does not change the execution order EO of each of the multiple sections SC if the writing position PS of each of the multiple sections SC is not changed up or down.

[0156] For example, there is a difference between the above-mentioned 11 sections SC in that a hierarchical relationship is not set / a hierarchical relationship is set between the left and right sides of Fig. 3. However, the "position PS of description in program PG:ST_Program0" of each of the above-mentioned 11 sections SC is not changed up or down between the left and right sides of Fig. 3.

[0157] That is, on both the left and right sides of Fig. 3, the description position PS(1) of FrameSection is immediately above the description position PS(2) of Frame_InitializeSection. Also, on both the left and right sides of Fig. 3, the description position PS(2) of Frame_InitializeSection is immediately above the description position PS(3) of Frame_Validation. Similarly, on both the left and right sides of Fig. 3, the description position PS(3) of Frame_Validation is immediately above the description position PS(4) of Frame_WorkSection, ... and the description position PS(11) of InspectionSection is at the very bottom.

[0158] Therefore, the development support device 10 does not change the execution order EO of each of the above-mentioned eleven sections SC between the left and right sides of Fig. 3. In other words, when a user operation is performed to "change the hierarchical level to which section SC belongs without changing the writing position PS of section SC up or down", the development support device 10 changes only the hierarchical level number HN of section SC without changing the execution order EO of section SC. In addition, when a user operation is performed to "change the writing position PS of section SC up or down without changing the hierarchical level to which section SC belongs", the development support device 10 changes only the execution order EO of section SC without changing the hierarchical level number HN of section SC.

[0159] The first section SC to be executed is FrameSection on both the left and right sides of Fig. 3, the second is Frame_InitializeSection, the third is Frame_Validation, and the last is InspectionSection. That is, on both the left and right sides of Fig. 3, the 11 sections SC are executed in the order of FrameSection, Frame_InitializeSection, Frame_Validation, and finally InspectionSection.

[0160] (Regarding parent-child relationships) When a user sets a hierarchical relationship between multiple sections SC constituting a program PG, the development support device 10 uses the hierarchical relationship to set a parent-child relationship (ancestor-descendant relationship) between the multiple sections SC. That is, when sections SC(m) and SC(n) satisfy all of the above-mentioned first condition, second condition, and third condition, the development support device 10 sets a parent-child relationship in which section SC(m) is the parent node and section SC(n) is the child node.

[0161] In the example image on the right side of Fig. 3, FrameSection and "Frame_InitializeSection and Frame_WorkSection" satisfy all of the above-mentioned first, second, and third conditions. Therefore, the development support device 10 sets a parent-child relationship between these three sections SC, with FrameSection as the parent node and Frame_InitializeSection and Frame_WorkSection as the child nodes.

[0162] Furthermore, Frame_InitializeSection and Frame_Validation satisfy all of the above-mentioned first, second, and third conditions, and therefore the development support device 10 sets a parent-child relationship between these two sections SC, with Frame_InitializeSection as the parent node and Frame_Validation as the child node.

[0163] In other words, the development support device 10 sets an ancestor-descendant relationship between FrameSection and Frame_Validation, with FrameSection as the parent (ancestor) node and Frame_Validation as the grandchild node.

[0164] Furthermore, the development support device 10 confirms that UnitSection and each of "Unit_InitializeSection and Unit_WorkSection" satisfy all of the above three conditions, and sets the following parent-child relationship between these three: That is, the development support device 10 sets a parent-child relationship in which UnitSection is the parent node and Unit_InitializeSection and Unit_WorkSection are the child nodes.

[0165] Similarly, the development support device 10 sets a parent-child relationship in which Unit_WorkSection is the parent node and the following three sections SC are child nodes. That is, the development support device 10 sets a parent-child relationship in which Unit_WorkFunctionSectionA, Unit_WorkFunctionSectionB, and Unit_WorkFunctionSectionC are each child nodes.

[0166] In other words, the development support device 10 sets an ancestor-descendant relationship in which UnitSection is the parent (ancestor) node and each of the above-mentioned three sections SC is a grandchild node.

[0167] (Examples of user operations that set hierarchical relationships) Fig. 4 is a diagram for explaining a user operation for lowering or raising the hierarchy of section SC. The upper side of Fig. 4 (i.e., Fig. 4(A)) shows example images before and after accepting a user operation for lowering the hierarchy to which section SC belongs by one. The lower side of Fig. 4 (i.e., Fig. 4(B)) shows example images before and after accepting a user operation for raising the hierarchy to which section SC belongs by one. The example images shown in the upper side of Fig. 4 and the example images shown in the lower side of Fig. 4 are each displayed, for example, by development support device 10.

[0168] (Example of user operation to move down one level) In the example image shown on the left side of Fig. 4A, "Section SC(1):Section0" and "Section SC(2):Section1" belong to the same hierarchical level. In this situation, when a user operation "Lower the level" is received for "Section SC(2):Section1", which is "to lower the hierarchical level to which it belongs", the development support device 10 displays the example image shown on the right side of Fig. 4A.

[0169] In other words, a user operation that moves the level to which Section 1 belongs down by one level moves the level to which Section 1 belongs down by one level compared to the level to which Section 1 belonged in the example image shown on the left side of Figure 4(A) (the same level to which Section 0 belongs).

[0170] Furthermore, since the hierarchy of Section 1 is one level lower than the hierarchy of Section 0, Section 0 and Section 1 satisfy all of the above-mentioned first condition, second condition, and third condition.

[0171] Therefore, as shown in the right side of FIG. 4A, the development support device 10 sets a parent-child relationship between Section 0 and Section 1, with Section 0 as the parent node and Section 1 as the child node, and expresses the relationship between the two using a tree structure.

[0172] That is, when a user operation to "move the hierarchical level to which Section1 belongs down by one" is accepted, the development support device 10 increases the hierarchical level number HN of Section1 by one without changing the execution order EO of Section1.

[0173] Then, the development support device 10 regards Section 1, which is written in the writing position PS immediately below the writing position PS of Section 0, as a section SC corresponding to a "child node having Section 0 as a parent node." As shown in the example image illustrated on the right side of Fig. 4(A), the development support device 10 displays the parent-child relationship (hierarchical relationship) between them using a tree structure in which Section 0 is the parent node and Section 1 is the child node.

[0174] When a user performs an operation to move the section SC with the lower writing position PS down one level among two sections SC that "belong to the same hierarchical level and have consecutive writing positions PS," the development support device 10 sets the following parent-child relationship between these two sections SC. That is, the development support device 10 sets a parent-child relationship shown in a tree structure in which, among two sections SC with consecutive writing positions PS vertically, the section SC with the upper writing position PS is set as the parent node, and the section SC with the lower writing position PS is set as the child node.

[0175] For example, if the description position PS(m) of section SC(m) is immediately above the description position PS(n) of section SC(n) and the hierarchical number HN(m) of section SC(m) is one greater than the hierarchical number HN(n) of section SC(n), the development support device 10 performs the following process. That is, the development support device 10 confirms that sections SC(m) and SC(n) satisfy all of the above-mentioned first condition, second condition, and third condition. Then, the development support device 10 sets a parent-child relationship (hierarchical relationship) between sections SC(m) and SC(n) with section SC(m) as the parent node and section SC(n) as the child node.

[0176] Then, the development support device 10 displays the relationship between section SC(m) and section SC(n), for example, using a tree structure in which section SC(m) is a parent node and section SC(n) is a child node.

[0177] Here, since the execution order EO of section SC is determined only by the written position PS of section SC, the above-mentioned process executed by the development support device 10 can be rephrased as follows: That is, if the execution order EO(m) of section SC(m) is immediately after the execution order EO(n) of section SC(n) and the hierarchical number HN(m) is one greater than the hierarchical number HN(n), the development support device 10 regards sections SC(m) and SC(n) as parent and child.

[0178] (Example of user operation to move up one level) In the example image shown on the left side of FIG. 4B, a parent-child relationship is set between "Section SC(1):Section0" and "Section SC(2):Section1." That is, the parent-child relationship (hierarchical relationship) between the two is displayed by a tree structure with Section 0 as the parent node and Section 1 as the child node. In this situation, when a user operation "Raise the level" is received for "Section SC(2):Section1," which is "to raise the level to which it belongs," the development support device 10 displays the example image shown on the right side of FIG. 4B.

[0179] That is, by a user operation to raise the level to which Section1 belongs by one, the level of Section1 is raised by one level compared to the level to which Section1 belonged (the level one level lower than the level of Section0) in the example image shown on the left side of Fig. 4(B). In other words, the level to which Section1 belongs and the level to which Section0 belongs become the same.

[0180] Furthermore, when the hierarchy to which Section 1 belongs and the hierarchy to which Section 0 belongs become the same, the relationship between Section 0 and Section 1 no longer satisfies the first condition described above.

[0181] Therefore, the development support device 10 dissolves the parent-child relationship (ancestor-descendant relationship) in which Section 0 is the parent node and Section 1 is the child node, as illustrated on the right side of FIG. 4B.

[0182] That is, when a user operation to "move up the hierarchy to which Section 1 belongs" is accepted for Section 1, the development support device 10 decreases the hierarchy number HN of Section 1 by one without changing the execution order EO of Section 1.

[0183] Then, the development support device 10 regards Section 1, which is written in the writing position PS immediately below the writing position PS of Section 0, as a section SC that belongs to the same hierarchical level as the hierarchical level to which Section 0 belongs. As shown in the example image illustrated on the right side of (B) of Fig. 4, the development support device 10 displays Section 0 and Section 1 as two sections SC that belong to the same hierarchical level.

[0184] When a user operation is received to move up one level in the hierarchy to which a section SC corresponding to a child node belongs, the development support device 10 dissolves the parent-child relationship between the two sections SC that are in a parent-child relationship.

[0185] For example, when a first condition is no longer satisfied for sections SC(m) and SC(n) in a parent-child relationship in which section SC(m) is the parent node and section SC(n) is the child node, the development support device 10 dissolves the parent-child relationship between the two. That is, when the first condition that "the hierarchical number HN(m) of section SC(m) is one less than the hierarchical number HN(n) of section SC(n)" is no longer satisfied, the development support device 10 dissolves the parent-child relationship between sections SC(m) and SC(n).

[0186] If the writing position PS(m) of section SC(m) is immediately above the writing position PS(n) of section SC(n) and the hierarchical number HN(m) of section SC(m) is the same as the hierarchical number HN(n) of section SC(n), the development support device 10 performs the following process. That is, the development support device 10 treats sections SC(m) and SC(n) as belonging to the same hierarchical level. For example, the development support device 10 displays sections SC(m) and SC(n) as two sections SC belonging to the same hierarchical level.

[0187] Here, since the execution order EO of section SC is determined only by the written position PS of section SC, the above-mentioned process executed by the development support device 10 can be rephrased as follows: That is, when the execution order EO(m) is immediately after the execution order EO(n) and the hierarchical number HN(m) is the same as the hierarchical number HN(n), the development support device 10 displays section SC(m) and section SC(n) as two sections SC belonging to the same hierarchical level.

[0188] (User operation to move multiple sections up / down one level at a time) So far, we have explained an example in which a user moves a certain section SC up or down by one level in the hierarchy to which that section SC belongs. Furthermore, a user can move multiple sections SC up or down by one level in the hierarchy to which those multiple sections SC belong collectively.

[0189] For example, assume that a program PG is composed of three sections SC: "section SC(0):Section0", "section SC(1):Section1", and "section SC(2):Section2". The execution order of these three in the program PG is as follows: section SC(0) is first, section SC(1) is second, and section SC(2) is third. Furthermore, both sections SC(0) and SC(1) belong to the highest hierarchy, that is, their hierarchy numbers HN are both "1", and section SC(2) belongs to the second highest hierarchy, that is, its hierarchy number HN is "2".

[0190] In this case, sections SC(1) and SC(2) satisfy all of the above-mentioned first, second, and third conditions, and the development support device 10 therefore sets a parent-child relationship between sections SC(1) and SC(2), with section SC(1) as the parent node and section SC(2) as the child node.

[0191] In the above state, when the user selects "Lower the level", which is a user operation for section SC(1) to "lower the level to which it belongs", the development support device 10 executes the following process. That is, the development support device 10 lowers the level to which section SC(1) belongs by one, and also lowers the level to which section SC(2) belongs by one. In other words, the development support device 10 changes the level number HN of section SC(1) from "1" to "2", and also changes the level number HN of section SC(2) from "2" to "3". As a result, section SC(0) belongs to the top level, section SC(1) belongs to the second level from the top, and section SC(2) belongs to the third level from the top.

[0192] Sections SC(0) and SC(1) satisfy all of the above-mentioned first, second, and third conditions. Therefore, the development support device 10 sets a parent-child relationship between sections SC(0) and SC(1), with section SC(0) as the parent node and section SC(1) as the child node.

[0193] Furthermore, sections SC(1) and SC(2) satisfy all of the above-mentioned first, second, and third conditions. Therefore, the development support device 10 sets a parent-child relationship between sections SC(1) and SC(2), with section SC(1) as the parent node and section SC(2) as the child node.

[0194] From this state, if the user further selects "Raise the level", which is a user operation for section SC(1) to "raise the hierarchical level to which it belongs by one", the development support device 10 executes the following process. That is, the development support device 10 raises the hierarchical level to which section SC(1) belongs by one, and also raises the hierarchical level to which section SC(2) belongs by one. In other words, the development support device 10 changes the hierarchical level number HN of section SC(1) from "2" to "1", and also changes the hierarchical level number HN of section SC(2) from "3" to "2". As a result, both sections SC(0) and SC(1) belong to the highest hierarchical level, and section SC(2) belongs to the second highest hierarchical level.

[0195] When the hierarchical level to which section SC(0) belongs and the hierarchical level to which section SC(1) belongs become the same, the relationship between sections SC(0) and SC(1) no longer satisfies the first condition described above. Therefore, the development support device 10 dissolves the "parent-child relationship in which section SC(0) is the parent node and section SC(1) is the child node" between sections SC(0) and SC(1).

[0196] Furthermore, sections SC(1) and SC(2) still satisfy all of the above-mentioned first, second, and third conditions. Therefore, the development support device 10 maintains a "parent-child relationship between sections SC(1) and SC(2), with section SC(1) as the parent node and section SC(2) as the child node."

[0197] As explained so far, when there is an ancestor-descendant relationship between two or more sections SC, when a user performs an operation to move the hierarchy level to which the section SC corresponding to the ancestor node (parent node) belongs up or down by one level, the development support device 10 executes the following processing.

[0198] That is, the development support device 10 raises or lowers the hierarchy to which the section SC corresponding to the ancestor node (parent node) belongs according to the received user operation. Also, the development support device 10 raises or lowers the hierarchy to which each of the sections SC corresponding to the descendant nodes (child nodes) belongs according to the received user operation. In other words, the development support device 10 decrements or increments the hierarchy number HN of each of the sections SC corresponding to the ancestor node and the descendant nodes.

[0199] Therefore, by using the development support device 10, the user can collectively move up or down by one level the hierarchical levels to which each of two or more sections SC, in which an ancestor-descendant relationship is set, belongs.

[0200] As described above, when a user operation to raise or lower the hierarchical level to which a certain section SC belongs is received, the development support device 10 executes the following process. That is, the development support device 10 (particularly the hierarchical management unit 121 described later) raises or lowers the hierarchical level to which a certain section SC belongs in response to the user operation. In addition, the development support device 10 collectively raises or lowers the hierarchical levels to which all sections SC corresponding to descendant nodes in a tree structure having the certain section SC as an ancestor node in response to the user operation.

[0201] According to the above configuration, when a user operation is received to move up or down a hierarchy level to which a certain section SC corresponding to an ancestor node belongs, the development support device 10 changes the hierarchy level to which the following sections SC belong in addition to the hierarchy level to which the certain section SC belongs. In other words, the development support device 10 changes the hierarchy level to which all sections SC corresponding to descendant nodes in the tree structure with the certain section SC as an ancestor node belong in addition to the hierarchy level to which the certain section belongs.

[0202] Therefore, the development support device 10 has the effect of being able to collectively raise or lower the hierarchical level to which each of two or more sections SC in an ancestor-descendant relationship belongs by one level in response to a user operation.

[0203] (Examples of user operations other than selection on the menu screen) 4, an example has been described in which the development support device 10 accepts a user operation of "decreasing a layer by one" or "raising a layer by one" selected on the menu screen. However, it is not essential for the development support device 10 to accept a user operation of "decreasing a layer by one" or "raising a layer by one" selected on the menu screen. For example, the development support device 10 may accept a user operation of "decreasing a layer by one" or "raising a layer by one" of the selected section SC by dragging and dropping the selected section SC.

[0204] The outline of the development support device 10 described above with reference to Figures 2, 3, and 4 can be summarized as follows. That is, the development support device 10 is a development support device that supports a user in creating a program PG to be executed by a PLC 20 (controller). The program PG is divided into a plurality of sections SC, each of which is a processing unit set by the user regardless of a calling relationship (logical relationship). Each of the plurality of sections SC is executed in sequence, from the section with the highest writing position PS to the section with the lowest writing position PS, according to the writing position PS in the program PG.

[0205] The development support device 10 includes a reception unit 110 and a hierarchical management unit 121, which will be described later with reference to Fig. 1. The reception unit 110 receives a user operation for setting a hierarchical relationship between a plurality of sections SC. The hierarchical management unit 121 assigns, to each of the plurality of sections SC, a hierarchical number HN, which is information for identifying the hierarchical layer to which each of the sections SC belongs, in accordance with the hierarchical relationship set in the user operation received by the reception unit 110.

[0206] According to the above configuration, when the development support device 10 receives a user operation to set a hierarchical relationship between multiple sections SC, it assigns to each of the multiple sections SC a hierarchical number HN that identifies the hierarchical layer to which each of the sections SC belongs, in accordance with the hierarchical relationship set by the user.

[0207] The "calling relationship" refers to a "calling-called relationship" between "multiple units (elements) constituting a program PG" such as POU (Program Organization Unit) defined in IEC 61131-3. A "calling relationship" is also called a "reference-referenced relationship" or a "logical relationship."

[0208] For example, when a POU calls (references) another POU in a program PG, the POU is called the caller (referencer) and the other POU called by the POU is called the callee (referenced).Then, there is said to be a call relationship between the POU and the other POU, with the POU as the caller and the other POU as the callee.

[0209] Conventionally, it was not possible to set a hierarchical relationship between the multiple sections SC that make up a program PG, and therefore the user was not able to manage the multiple sections SC in a way that reflected information that was mutually inclusive, such as "equipment processes and functions."

[0210] In response to this, the development support device 10 allows the user to set "any hierarchical relationship" between multiple sections SC constituting the program PG that is unrelated to the call relationship (logical relationship). In other words, the user can set a hierarchical relationship between multiple sections SC constituting the program PG that reflects information that is inclusive of each other, such as "equipment processes and functions."

[0211] Therefore, the development support device 10 has the effect of enabling the user to "manage the multiple sections SC that make up the program PG in a manner that reflects information that is inclusive of each other, such as 'equipment processes and functions', regardless of logical relationships."

[0212] In addition, since the execution order EO of the sections SC is determined according to the simple rule that "the sections are executed in order from the top to the bottom in terms of the written position PS," the user can easily understand the execution order EO of each of the multiple sections SC. And the fact that "the user can easily understand the execution order EO of each of the multiple sections SC" can be evaluated as the convenience of the sections SC.

[0213] The hierarchical number HN given to each of the multiple sections SC constituting the program PG does not affect the execution order EO of each of the multiple sections SC, that is, the hierarchical level to which a section SC belongs does not affect the execution order EO of the section SC. Therefore, even if a user sets a hierarchical relationship between multiple sections SC, it does not affect the simple rule of the sections SC that "they are executed sequentially from the top to the bottom in terms of their writing positions PS", and therefore there is no impact on the usability of the sections SC.

[0214] Therefore, the development support device 10 has the effect of enabling a user to manage multiple sections SC in a manner that reflects information that is inclusive of each other, such as "equipment processes and functions," while maintaining the convenience of the sections SC.

[0215] Furthermore, the user can set a hierarchical relationship between multiple sections SC that reflects information that is inclusive of each other, such as "equipment processes and functions." In other words, the user can relate two or more sections SC to each other through "relationships that are meaningful to the user."

[0216] The development support device 10 then performs at least one of changing, duplicating, comparing, etc., the description position PS in the program PG, for example, for two or more sections SC related to each other by a "relationship meaningful to the user".

[0217] Therefore, the development support device 10 has the effect of being able to change, copy, compare, etc. the description position PS in the program PG, for each of two or more sections SC that are related to each other by a "relationship that is meaningful to the user".

[0218] When sections SC(m) and SC(n) satisfy the following three conditions, the development support device 10 sets a parent-child relationship between them, with section SC(m) as the parent node and section SC(n) as the child node.

[0219] The first condition is that the hierarchical level to which section SC(m) belongs is one level higher than the hierarchical level to which section SC(n) belongs. The second condition is that in the program PG, the position PS(m) of section SC(m) is higher than the position PS(n) of section SC(n). The third condition is that between the position PS(m) of section SC(m) and the position PS(n) of section SC(n), there is no section SC other than section SC(m) that belongs to the same hierarchical level to which section SC(m) belongs.

[0220] According to the above configuration, if section SC(m) and section SC(n) satisfy the above three conditions, the development support device 10 sets the above-mentioned parent-child relationship between section SC(m) and section SC(n).

[0221] Here, the above three conditions are conditions related to the hierarchical level to which the section SC belongs and the writing position PS of the section SC in the program PG. Therefore, the development support device 10 can set a parent-child relationship between sections SC(m) and section SC(n) in accordance with the hierarchical relationship set by the user between multiple sections SC and the writing position PS of the section SC in the program PG.

[0222] The hierarchical relationship is a relationship that is arbitrarily set by the user, and is a relationship that reflects information that is inclusive of one another, such as "device processes and functions."

[0223] Therefore, the development support device 10 has the effect of being able to set the above-mentioned parent-child relationship between section SC(m) and section SC(n) in a manner that reflects information that is inclusive of each other, such as "device processes and functions."

[0224] §2. Example configuration The detailed configuration of the development support device 10, the outline of which has been explained above, will now be explained with reference to FIG.

[0225] (Detailed configuration of development support device) Fig. 1 is a block diagram showing the main configuration of a development support device 10. As shown in Fig. 1, the development support device 10 includes, as functional blocks, a storage unit 100, a receiving unit 110, an executing unit 120, a display control unit 130, and an adding unit 140.

[0226] In addition to the functional blocks illustrated in FIG. 1, the development support device 10 may further include input devices and output devices not shown, where the input devices are, for example, a keyboard and a mouse, and the output device is, for example, a display.

[0227] In addition to the above-mentioned functional blocks, the development support device 10 may also include a programming support unit (not shown) that provides an environment for a user to program a user program as a control program to be executed by the PLC 20 according to a control purpose. However, in order to ensure the simplicity of the description, configurations that are not directly related to the present embodiment are omitted from the description and block diagram. However, the development support device 10 may include the omitted configurations according to the actual situation of the implementation.

[0228] The reception unit 110, the execution unit 120, the display control unit 130, and the addition unit 140 can be realized, for example, by a central processing unit (CPU) or the like reading out a program stored in a storage device (storage unit 100) realized by a read only memory (ROM), a non-volatile random access memory (NVRAM), etc., into a random access memory (RAM) (not shown) or the like, and executing the program. First, the reception unit 110, the execution unit 120, the display control unit 130, and the addition unit 140 will be described in detail below.

[0229] (Details of functional blocks other than the memory unit) The receiving unit 110 receives a user operation and notifies the execution unit 120 of the content of the received user operation. When the receiving unit 110 receives a user operation instructing the import of a section group SG, the receiving unit 110 may notify the adding unit 140 of the content of the user operation.

[0230] The execution unit 120 is a functional block that executes processing corresponding to a user operation accepted by the acceptance unit 110. The execution unit 120 illustrated in FIG.

[0231] The hierarchy management unit 121 assigns a hierarchy number HN to each of the multiple sections SC constituting the program PG according to the hierarchy to which each of the multiple sections SC belongs. For example, when a user operation is performed to raise the hierarchy to which section SC(m) belongs by one, the hierarchy management unit 121 decreases the value of the hierarchy number HN of section SC(m) by 1. For example, when a user operation is performed to lower the hierarchy to which section SC(m) belongs by one, the hierarchy management unit 121 increases the value of the hierarchy number HN of section SC(m) by 1.

[0232] When a user operation is performed to select a section SC, the selection unit 122 selects, as a target, a section group SG consisting of the selected section SC and all sections SC corresponding to descendant nodes in a tree structure having the selected section SC as an ancestor node. For example, when a user operation is performed to select a section SC(m), the selection unit 122 selects, as a target, a section group SG(m) consisting of section SC(m) and all sections SC corresponding to descendant nodes of section SC(m).

[0233] The order management unit 123 sets the execution order EO of each of the multiple sections SC constituting the program PG to a value according to the written position PS of the section SC (the written position PS of the section SC in the program PG). According to the written position PS of the section SC, the order management unit 123 sets the execution order EO(m) of the section SC(m) having the written position PS(m) at the top to be earlier than the execution order EO(n) of the section SC(n) having the written position PS(n) at the bottom.

[0234] Furthermore, when two or more sections SC for which an ancestor-descendant relationship has been set by the adding unit 140, that is, when a section group SG is stored in the section table 170, the order management unit 123 executes the following process. That is, for each of the two or more sections SC added to the section table 170 by the adding unit 140, the order management unit 123 sets an execution order OP for each of them while maintaining the ancestor-descendant relationship between them.

[0235] In particular, the order management unit 123 sets the execution order EO for each of the two or more sections SC that make up the imported section group SG, without changing the "relative execution order EO'" of each of the sections in the section group. In other words, the order management unit 123 sets the execution order EO for each of the two or more sections SC that make up the section group SG, so that the relative order relationship (relative positional relationship) of each of these sections SC is not changed.

[0236] For example, assume that in the program table 160 before the import of the section group SG(m), the execution order OP of the section table 170 storing the section SC with the latest execution order EO is "x". Also assume that in the section group SG(m) consisting of sections SC(m), SC(m+1), SC(m+2), ..., and SC(m+n), the execution order OR of each of these sections SC is in this order. In this case, when the adding unit 140 adds "two or more section tables 170 storing each of the two or more sections SC constituting the section group SG(m)" to the program table 160, the order management unit 123 executes the following process.

[0237] That is, order management unit 123 stores "x+1" in the execution order OP of section table 170(m) that stores section SC(m). Also, order management unit 123 stores "x+2" in the execution order OP of section table 170(m+1) that stores section SC(m+1), and stores "x+3" in the execution order OP of section table 170(m+2) that stores section SC(m+2). Similarly, order management unit 123 stores "x+n+1" in the execution order OP of section table 170(m+n) that stores section SC(m+n).

[0238] When a user performs an operation to compare the pre-update program PG with the updated program PG, the comparison unit 124 compares the sections SC of the corresponding orders (execution order EO) of the two programs, that is, compares the sections SC having the same writing position PS in the two programs.

[0239] Specifically, the comparison unit 124 compares section SC(x) whose writing position PS is the xth from the top in the pre-update program PG with section SC(x) whose writing position PS is the xth from the top in the updated program PG. Also, the comparison unit 124 compares section SC(y) whose writing position PS is the yth from the top in the pre-update program PG with section SC(y) whose writing position PS is the yth from the top in the updated program PG. Similarly, the comparison unit 124 compares section SC(z) whose writing position PS is the zth from the top in the pre-update program PG with section SC(z) whose writing position PS is the zth from the top in the updated program PG.

[0240] That is, the comparison unit 124 compares sections SC that have the same description position PS (execution order EO) before and after updating the program PG.

[0241] The comparison unit 124 compares the names (identification information), hierarchical numbers HN, and programs (source codes) of sections SC that have the same written positions PS (execution order EO) before and after updating the program PG. For example, the comparison unit 124 compares the names, hierarchical numbers HN, and programs (source codes) of section SC(x) in the program PG before the update and section SC(x) in the program PG after the update. The comparison unit 124 then notifies the display control unit 130 of the comparison results.

[0242] The display control unit 130 displays information corresponding to the user operation accepted by the accepting unit 110 and information stored in the project table 150 acquired by referring to the storage unit 100 on the display screen of the device itself, or causes an external display device to display the information. In particular, the display control unit 130 displays information corresponding to the user operation accepted by the accepting unit 110 and information stored in the program table 160 and the section table 170 on the display screen of the device itself, or causes an external display device to display the information.

[0243] For example, the display control unit 130 displays the identification information of each of the sections SC(m) and SC(n) in a parent-child relationship using a tree structure indicating the parent-child relationship between the two. The display control unit 130 also displays the "comparison result of the section SC before and after the update of the program PG" notified by the comparison unit 124.

[0244] When a user performs an operation to import a section group SG consisting of two or more sections SC in which an ancestor-descendant relationship is set, the adding unit 140 stores the section group SG in the storage unit 100, and in particular, stores it in the section table 170.

[0245] Specifically, the adding unit 140 adds two or more section tables 170 for storing each of the two or more sections SC that make up the section group SG to the program table 160. Then, the adding unit 140 stores each of the two or more sections SC that make up the section group SG in each of the two or more section tables 170 added to the program table 160, without changing the hierarchical level to which each of the sections belongs (i.e., each hierarchical level number HN).

[0246] (Details of memory section) The storage unit 100 is a storage device that stores various data used by the development support device 10. The storage unit 100 may non-temporarily store (1) a control program, (2) an OS program, (3) application programs for executing various functions possessed by the development support device 10, and (4) various data read when executing the application programs, which are executed by the development support device 10. The above data (1) to (4) are stored in a non-volatile storage device such as a read only memory (ROM), a flash memory, an erasable programmable ROM (EPROM), an electrically EPROM (EEPROM (registered trademark)), or a hard disk drive (HDD). The development support device 10 may include a temporary storage unit (not shown). The temporary storage unit is a so-called working memory that temporarily stores data used for calculations and calculation results during various processes executed by the development support device 10, and is configured by a volatile storage device such as a random access memory (RAM). Which data is to be stored in which storage device is appropriately determined based on the purpose of use of the development support device 10, convenience, cost, physical constraints, etc. The storage unit 100 further stores a project table 150, a program table 160, and a section table 170.

[0247] The project table 150 stores "setting information for a controller such as the PLC 20" and "one or more programs PG." Here, each of the "one or more programs PG" is stored in one or more program tables 160. Therefore, the project table 150 stores one or more program tables 160, each of which stores one program PG.

[0248] 1, a first program table 160(1), a second program table 160(2), ..., an nth program table 160(n) are stored in the project table 150. The first program table 160(1) stores a first program PG(1), the second program table 160(2) stores a second program PG(2), ..., and the nth program table 160(n) stores an nth program PG(n).

[0249] In this embodiment, when there is no need to distinguish between the first program table 160(1), the second program table 160(2), ..., the nth program table 160(n), they will be simply referred to as "program table 160." Also, when there is no need to distinguish between the first program PG(1), the second program PG(2), ..., the nth program PG(n), they will be simply referred to as "program PG."

[0250] The program table 160 stores a program PG created by a user using the development environment provided by the development support device 10. As described above, the program PG is divided into a plurality of sections SC. Therefore, the program table 160 stores a plurality of section tables 170, each of which stores a respective one of the plurality of sections SC.

[0251] 1, first program table 160(1) stores a plurality of sections SC constituting first program PG(1), specifically, first section table 170(1-1) through x-th section table 170(1-x). Each of first section table 170(1-1) through x-th section table 170(1-x) stores each of sections SC(1-1) through SC(1-x) constituting first program PG(1).

[0252] Further, the second program table 160(2) stores a plurality of sections SC constituting the second program PG(2), specifically, the first section table 170(2-1) through the y-th section table 170(2-y) are stored. The first section table 170(2-1) through the y-th section table 170(2-y) each store a section SC(2-1) through a section SC(2-y) constituting the second program PG(2).

[0253] Similarly, the nth program table 160(n) stores a plurality of sections SC that make up the nth program PG(n), specifically, the first section table 170(n-1) to the zth section table 170(nz). Each of the first section table 170(n-1) to the zth section table 170(nz) stores each of the sections SC(n-1) to SC(nz) that make up the nth program PG(n).

[0254] When there is no need to distinguish between the first section table 170(1-1) through the xth section table 170(1-x) stored in the first program table 160(1), they will simply be referred to as "section tables 170." Similarly, when there is no need to distinguish between the multiple section tables 170 stored in each of the second program table 160(2) and the nth program table 160(n), they will simply be referred to as "section tables 170."

[0255] Each of the multiple sections SC that make up the program PG is stored in the section table 170. Specifically, the section table 170 stores the name (identification information) of the section SC, the execution order EO, ​​the hierarchical number HN, and the contents of the program PG (source code) in that section SC, in association with one another. An example of the configuration of the section table 170 is shown in FIG. 5.

[0256] (Example of section table configuration) FIG. 5 is a diagram showing an example of the configuration of section tables 170 (in the example shown in FIG. 5, first section table 170(1), second section table 170(2), ..., xth section table 170(x)) stored in storage unit 100 by development support device 10. As described above, when there is no need to distinguish between first section table 170(1), second section table 170(2), ..., xth section table 170(x), they will be simply referred to as "section tables 170." In section table 170, for each section SC, the name (identification information) of that section SC, the execution order EO, ​​the hierarchical number HN, and the contents of the program PG (source code) in that section SC are stored in correspondence with each other.

[0257] For example, each of the eleven sections SC constituting the "program PG:ST_Program0" illustrated on the right side of FIG. 3 (that is, FIG. 3(B)) is stored in the section table 170 as follows.

[0258] That is, first section table 170(1) stores the name (identification information), execution order EO, ​​and hierarchical number HN of "section SC(1):FrameSection," and the contents of the program PG (source code) in that section SC. Specifically, first section table 170(1) stores "FrameSection" as the name of section SC(1), "1" as the execution order EO, ​​and "1" as the hierarchical number HN. Also, first section table 170(1) stores "source code in section SC called FrameSection" as the contents.

[0259] The second section table 170(2) stores the name, execution order EO, ​​and hierarchical number HN of "section SC(2):Frame_InitializeSection," and the contents of the program PG (source code) in that section SC. Specifically, the second section table 170(2) stores "Frame_InitializeSection" as the name of section SC(2). The second section table 170(2) also stores "2" as the execution order EO and "2" as the hierarchical number HN. Furthermore, the second section table 170(2) stores "the source code in section SC called Frame_InitializeSection" as the contents.

[0260] Similarly, the third section table 170(3) stores the name, execution order EO, ​​and hierarchical number HN of "section SC(3):Frame_Validation," and the contents of the program PG (source code) in that section SC. Specifically, the third section table 170(3) stores "Frame_Validation" as the name of section SC(3). The third section table 170(3) also stores "3" as the execution order EO and "3" as the hierarchical number HN. Furthermore, the third section table 170(3) stores "the source code in section SC called Frame_Validation" as the contents.

[0261] The eleventh section table 170(11) stores the name, execution order EO, ​​and hierarchical number HN of "section SC(11): InspectionSection," and the contents of the program PG (source code) in that section SC. Specifically, the eleventh section table 170(11) stores "InspectionSection" as the name of section SC(11). The eleventh section table 170(11) also stores "11" as the execution order EO and "1" as the hierarchical number HN. The eleventh section table 170(11) also stores "source code in section SC called InspectionSection" as the contents.

[0262] §3. Example of operation The following describes the process executed by the development support device 10 when it receives a user operation to "set a hierarchical relationship between multiple sections SC." The user operation to "set a hierarchical relationship between multiple sections SC" is, for example, a user operation to "raise by one" the hierarchy to which a certain section SC(m) belongs, or a user operation to "decrease by one" the hierarchy to which a certain section SC(m) belongs, as shown in FIG.

[0263] (Regarding the process to be executed in response to user operations to assign or change a hierarchy) Fig. 6 is a flow diagram of "processing for setting a hierarchical relationship between multiple sections SC" executed by the development support device 10. As illustrated in Fig. 6, first, the reception unit 110 receives a user operation for changing the hierarchical number of the section SC (S110). The reception unit 110 notifies the execution unit 120 of the content of the received user operation, and notifies, for example, the hierarchical management unit 121 of the execution unit 120 that a user operation for changing the hierarchical number of the section SC has been received.

[0264] In response to a user operation received by the reception unit 110, the hierarchy management unit 121 changes the hierarchical number HN of the section SC targeted by the user operation (S120). For example, when the reception unit 110 receives a user operation to raise the hierarchical level of section SC(m) by one, the hierarchy management unit 121 decreases the value of the hierarchical number HN of section SC(m) by one. For example, when the reception unit 110 receives a user operation to lower the hierarchical level of section SC(m) by one, the hierarchy management unit 121 increases the value of the hierarchical number HN of section SC(m) by one.

[0265] The control method executed by the development support device 10, which has been explained using 6, can be summarized as follows. That is, the control method executed by the development support device 10 is a control method of the development support device that supports a user in creating a program PG to be executed by a control device such as the PLC 20. The program PG is divided into a plurality of sections SC, each of which is a processing unit set by the user regardless of the calling relationship (logical relationship). Each of the plurality of sections SC is executed in sequence from the section with the highest writing position PS to the section with the lowest writing position PS, according to the writing position PS in the program PG.

[0266] The control method executed by the development support device 10 includes a receiving step (S110) and a hierarchical management step (S120). The receiving step receives a user operation for setting a hierarchical relationship between a plurality of sections SC. The hierarchical management step assigns a hierarchical number HN, which is information for identifying the hierarchical layer to which each of the plurality of sections SC belongs, to each of the plurality of sections SC in accordance with the hierarchical relationship set in the "user operation received in the receiving step."

[0267] According to the above configuration, when the control method receives a user operation to set a hierarchical relationship between multiple sections SC, it assigns a hierarchical number HN to each of the multiple sections SC, which identifies the hierarchical hierarchical relationship to which each belongs, in accordance with the hierarchical relationship set by the user.

[0268] The "calling relationship" refers to a "calling-called relationship" between "multiple units (elements) constituting a program PG" such as POU (Program Organization Unit) defined in IEC 61131-3. A "calling relationship" is also called a "reference-referenced relationship" or a "logical relationship."

[0269] For example, when a POU calls (references) another POU in a program PG, the POU is called the caller (referencer) and the other POU called by the POU is called the callee (referenced).Then, there is said to be a call relationship between the POU and the other POU, with the POU as the caller and the other POU as the callee.

[0270] Conventionally, it was not possible to set a hierarchical relationship between the multiple sections SC that make up a program PG, and therefore the user was not able to manage the multiple sections SC in a way that reflected information that was mutually inclusive, such as "equipment processes and functions."

[0271] In contrast, the control method allows the user to set "any hierarchical relationship" between multiple sections SC constituting a program PG, which is unrelated to the call relationship (logical relationship). In other words, the user can set a hierarchical relationship between multiple sections SC constituting a program PG that reflects information that is inclusive of each other, such as "equipment processes and functions."

[0272] Therefore, the control method has the effect of enabling a user to manage multiple sections SC that make up a program PG in a manner that reflects information that is mutually inclusive, such as "equipment processes and functions," regardless of logical relationships.

[0273] In addition, since the execution order EO of the sections SC is determined according to the simple rule that "the sections are executed in order from the top to the bottom in terms of the written position PS," the user can easily understand the execution order EO of each of the multiple sections SC. And the fact that "the user can easily understand the execution order EO of each of the multiple sections SC" can be evaluated as the convenience of the sections SC.

[0274] The "hierarchical level number HN (information identifying a hierarchical level)" assigned to each of the multiple sections SC constituting the program PG does not affect the execution order EO of the sections SC, that is, the hierarchical level to which the sections SC belong does not affect the execution order EO of the sections SC. Therefore, even if a user sets a hierarchical relationship between multiple sections SC, it does not affect the simple rule of the sections SC that "they are executed sequentially from the top to the bottom in terms of their writing positions PS", and therefore does not affect the usability of the sections SC.

[0275] Therefore, the control method has the effect of enabling a user to manage multiple sections SC in a manner that reflects information that is inclusive of each other, such as "equipment processes and functions," while maintaining the convenience of the sections SC.

[0276] Furthermore, the user can set a hierarchical relationship between multiple sections SC that reflects information that is inclusive of each other, such as "equipment processes and functions." In other words, the user can relate two or more sections SC to each other through "relationships that are meaningful to the user."

[0277] The control method performs at least one of changing, duplicating, comparing, etc., the description position PS in the program PG for each of two or more sections SC that are related to each other by a "relationship meaningful to the user".

[0278] Therefore, the control method has the effect of enabling changes, copies, comparisons, etc. of the writing positions PS in the program PG to be performed for each of two or more sections SC that are related to each other by a "relationship that is meaningful to the user".

[0279] (About collapsed and expanded views) Fig. 7 is a diagram for explaining an example of each of the folded display and the unfolded display. In particular, Fig. 7 shows a display example of eleven sections SC, FrameSection, Frame_InitializeSection, ..., and InspectionSection, which are illustrated on the right side of Fig. 3 (i.e., Fig. 3(B)).

[0280] Fig. 7(A) shows an example of an image in which a collapsed display is executed, in which, among multiple sections SC in which a parent-child relationship (hierarchical relationship) is set, only the name (identification information) of the section SC corresponding to the parent node is displayed, and the name of the section SC corresponding to the child node is not displayed. Fig. 7(B) shows an example of an image in which an expanded display is executed, in which, among multiple sections SC in which a parent-child relationship (hierarchical relationship) is set, the name of the section SC corresponding to the child node is displayed together with the name (identification information) of the section SC corresponding to the parent node.

[0281] As described with reference to FIG. 3, of the eleven sections SC described above, the section SC with "hierarchical number HN:1" is made up of three sections SC: FrameSection, UnitSection, and InspectionSection.

[0282] Furthermore, the sections SC of "hierarchical number HN:2" are the four sections SC of Frame_InitializeSection, Frame_WorkSection, Unit_InitializeSection, and Unit_WorkSection.

[0283] Frame_InitializeSection and Frame_WorkSection are section SCs corresponding to "child nodes whose parent node is FrameSection". Furthermore, Unit_InitializeSection and Unit_WorkSection are section SCs corresponding to "child nodes whose parent node is UnitSection".

[0284] (About the collapsed example) In the folded display illustrated in (A) of Figure 7, the development support device 10 (display control unit 130) displays only the name (identification information) of the section SC corresponding to the parent node among multiple sections SC in which a parent-child relationship (hierarchical relationship) is set.

[0285] That is, in the collapsed display, the display control unit 130 displays only the name FrameSection among the parent-child relationships of "FrameSection, Frame_InitializeSection, and Frame_WorkSection."

[0286] Similarly, in the collapsed display, the display control unit 130 displays only the name "UnitSection" among the parent-child relationships of "UnitSection, Unit_InitializeSection, and Unit_WorkSection."

[0287] (Example of expanded display) In the expanded display illustrated in (B) of Figure 7, the development support device 10 (display control unit 130) displays the name of the section SC corresponding to the parent node, together with the name of the section SC corresponding to the child node, among multiple sections SC in which a parent-child relationship (hierarchical relationship) is set.

[0288] That is, in the expanded display, the display control unit 130 displays all the names of the three sections SC, "FrameSection, Frame_InitializeSection, and Frame_WorkSection," which are in a parent-child relationship.

[0289] Similarly, in the expanded display, the display control unit 130 displays the names of all three sections SC, "UnitSection, Unit_InitializeSection, and Unit_WorkSection," which are in a parent-child relationship.

[0290] (Tree-like display) 7, the development support device 10 (display control unit 130) displays the relationship between two or more sections SC in a parent-child relationship (ancestor-descendant relationship) using, for example, a tree structure, that is, displays the names (identification information) of the sections SC in a tree shape. The display control unit 130 can switch between a folded display and an expanded display for the names of the sections SC displayed in a tree shape, similar to a tree-shaped display that is generally used when displaying multiple elements in a parent-child relationship (ancestor-descendant relationship).

[0291] Specifically, the display control unit 130 can perform a collapsed display in which "the name of section SC(n) corresponding to a child node is not displayed, but the name of section SC(m) corresponding to a parent node is displayed." Also, the display control unit 130 can perform an expanded display in which "the name of section SC(n) corresponding to a child node and the name of section SC(m) corresponding to a parent node are displayed together."

[0292] As described above, the development support device 10 includes a display control unit 130. The display control unit 130 displays the names (identification information) of the sections SC(m) and SC(n) in the parent-child relationship using a tree structure indicating the parent-child relationship.

[0293] Furthermore, the display control unit 130 can switch between a folded display and an expanded display. In the folded display, when displaying the identification information of section SC(m), the display control unit 130 does not display the identification information of section SC(n) corresponding to the child node of section SC(m). In the expanded display, when displaying the identification information of section SC(m), the display control unit 130 displays the identification information of section SC(n) corresponding to the child node of section SC(m) together with the identification information of section SC(m).

[0294] According to the above configuration, when displaying the name of section SC(m), the development support device 10 can switch between a folded display in which the name of section SC(n) corresponding to the child node of section SC(m) is not displayed, and an expanded display in which the name of section SC(n) is displayed.

[0295] Here, since the names of sections SC(n) corresponding to child nodes are not displayed in the folded display, the folded display is suitable as a display format when, for example, a user wants to check only sections SC(m) belonging to a higher hierarchy.

[0296] In contrast, in an expanded display, the names of the sections SC(n) corresponding to the child nodes are displayed, so the expanded display is suitable as a display format when, for example, a user wants to check the sections SC that are set as child nodes for a certain section SC.

[0297] Therefore, the development support device 10 has the advantage of being able to display each of the multiple sections SC in a display format that corresponds to the level desired by the user.

[0298] (About error display) 8 shows an example in which in addition to the section SC containing an error, sections SC belonging to a higher hierarchy than that section SC are also highlighted. The development support device 10 (e.g., the execution unit 120) determines whether or not there is an error in the corresponding program (source code) for each of the multiple sections SC constituting the program PG. Then, the development support device 10 (display control unit 130) highlights the section SC determined to contain an error. In addition to the section SC determined to contain an error, the display control unit 130 also highlights the section SC corresponding to an ancestor node that has the section SC determined to contain an error as a descendant node.

[0299] An "error" is, for example, a grammatical error, in other words, a description (content) that makes it impossible to compile a program (source code) corresponding to section SC when attempting to compile it.

[0300] For example, in the example shown in FIG. 8, the following parent-child relationships (ancestor-descendant) are set for three sections SC: UnitSection, Unit_WorkSection, and Unit_WorkFunctionSectionB.

[0301] That is, a parent-child relationship is established between UnitSection and Unit_WorkSection, with UnitSection as the parent node and Unit_WorkSection as the child node.A parent-child relationship is established between Unit_WorkSection and Unit_WorkFunctionSectionB, with Unit_WorkSection as the parent node and Unit_WorkFunctionSectionB as the child node.That is, an ancestor-descendant relationship is established between UnitSection and Unit_WorkFunctionSectionB, with UnitSection as the parent (ancestor) node and Unit_WorkFunctionSectionB as the grandchild node.

[0302] When the execution unit 120 determines that "Unit_WorkFunctionSectionB has an error," the display control unit 130 highlights Unit_WorkFunctionSectionB that has been determined to have an error.

[0303] Furthermore, the display control unit 130 also highlights the section SC corresponding to the "ancestor node having the descendant node Unit_WorkFunctionSectionB determined to have an error." In other words, the display control unit 130 highlights UnitSection and Unit_WorkSection.

[0304] Therefore, in the example image shown in FIG. 8, UnitSection, Unit_WorkSection, and Unit_WorkFunctionSectionB are highlighted.

[0305] 8, when there is a grammatical error (a description that will result in an error when compiled) in the contents (program, source code) of section SC(n) belonging to a lower hierarchical level, the development support device 10 (display control unit 130) executes the following display: That is, in addition to the name of section SC(n), the display control unit 130 displays the names of sections SC belonging to a higher hierarchical level than the hierarchical level to which section SC(n) belongs.

[0306] Specifically, the display control unit 130 displays the name of the section SC corresponding to the ancestor node in the tree structure in which the section SC(n) is a descendant node, together with the name of the section SC(n). That is, when notifying the user of an error, the display control unit 130 can notify the user of the name of the section SC in which the error exists, together with the name of the section SC in which the error exists, corresponding to the ancestor node in the tree structure in which the section SC in which the error exists is a descendant node.

[0307] As explained above, in the development support device 10, when a certain description in the program PG is grammatically incorrect, the display control unit 130 displays the following information in addition to the identification information (name) of the section SC containing the certain description: That is, in addition to the name of the section SC containing the certain description, the display control unit 130 displays the name of the section SC corresponding to the ancestor node in the tree structure in which the section SC containing the certain description is a descendant node, as the name of the section SC containing the error.

[0308] According to the above configuration, when a certain description in a program PG is grammatically incorrect, the development support device 10 displays the name of the section SC containing the certain description and the name of the section SC corresponding to the ancestor node of the "section SC containing the certain description."

[0309] Therefore, the development support device 10 has the effect of allowing the user to check not only the section SC containing grammatically incorrect content, but also the section SC corresponding to the ancestor node of the ``section SC containing grammatically incorrect content.''

[0310] (Processing sections as a unit) When a user performs an operation such as changing the execution order PS, cutting, copying, or exporting "section SC corresponding to an ancestor node of two or more sections SC in an ancestor-descendant relationship," the development support device 10 executes the following process. That is, the development support device 10 (selection unit 122) selects, as the target of the above-mentioned process, a section group SG consisting of the section SC corresponding to the ancestor node and all sections corresponding to descendant nodes of the section SC corresponding to the ancestor node.

[0311] For example, when a user operation is performed to select section SC(m) as a target for the above-mentioned process, the selection unit 122 selects the following sections SC in addition to section SC(m) as targets for the above-mentioned process. That is, the selection unit 122 selects, in addition to section SC(m) selected by the user, all sections SC corresponding to descendant nodes having section SC(m) as an ancestor node as targets for the above-mentioned process.

[0312] (Regarding maintaining the relative positions of two or more sections in a group of sections) When the development support device 10 executes processing in units of section groups SG, it does not change the hierarchical numbers HN of each of the two or more sections SC that make up the section group SG, but instead changes, for example, the execution order EO (writing position PS in the program PG) of each of them all at once.

[0313] In particular, when development support device 10 executes processing with section group SG as a unit, it does not change the relative positional relationship (order relationship) in section group SG of two or more sections SC that constitute section group SG. In other words, when development support device 10 executes processing with section group SG as a unit, it does not change the "relative execution order OE' (relative written position PS')" of each of two or more sections SC that constitute section group SG.

[0314] For example, assume that a section group SG(p) consists of section SC(p) and sections SC(p+1), SC(p+2), ..., SC(p+n), which correspond to descendant nodes with section SC(p) as the ancestor node.

[0315] Furthermore, the relative execution order OE' of each of sections SC(p) to SC(p+n) in section group SG(p) is in the order of section SC(p), section SC(p+1), section SC(p+2), ..., section SC(p+n). In other words, the relative description position PS' of each of sections SC(p) to SC(p+n) in section group SG(p) is, from the top, section SC(p), section SC(p+1), section SC(p+2), ..., section SC(p+n).

[0316] In this case, for example, when a user operation is performed to change the writing position PS of the section group SG(p), the development support device 10 changes the writing position PS of the section group SG(p) without changing the positional relationship between the two or more sections SC in the section group SG(p). In other words, the development support device 10 changes the writing position PS of the section group SG(p) without changing the order relationship between the two or more sections SC in the section group SG(p).

[0317] The "relative execution order EO'" of each of sections SC(p) to SC(p+n) in section group SG(p) remains unchanged before and after the change in the description position PS of section group SG(p). In other words, there is no change in the fact that the sections SC that make up section group SG(p) are executed in the order of "section SC(p), section SC(p+1), section SC(p+2), ..., section SC(p+n)".

[0318] In other words, the "relative description positions PS'" of sections SC(p) to SC(p+n) in section group SG(p) do not change before and after the change in the description position PS of section group SG(p). That is, there is no change in the fact that the sections SC constituting section group SG(p) are written in the order of "section SC(p), section SC(p+1), section SC(p+2), ..., section SC(p+n)" in section group SG(p).

[0319] For example, when the writing position PS(p) of section SC(p) in the program PG is changed from "x" to "y" due to a change in the writing position PS of the section group SG(p), the development support device 10 (sequence management unit 123) executes the following process. That is, the sequence management unit 123 changes the execution order EO(p) of section SC(p) from "x" to "y". In addition, the sequence management unit 123 changes the execution order EO(p+1) of section SC(p+1) from "x+1" to "y+1". In addition, the sequence management unit 123 changes the execution order EO(p+2) of section SC(p+2) from "x+2" to "y+2". Similarly, the sequence management unit 123 changes the execution order EO(p+n) of section SC(p+n) from "x+n" to "y+n".

[0320] Therefore, the development support device 10 enables, for example, "the user to collectively change the writing positions PS of two or more sections SC that have an ancestor-parent-child relationship, without changing the relative positional relationship (order relationship) between them." This applies not only to "changing the execution order EO," but also to processes such as "cut," "copy," "paste," "import," and "export."

[0321] That is, in the development support device 10, the user can perform at least one of changing the execution order EO, ​​cutting, copying, pasting, importing, exporting, and changing the hierarchy, using the section group SG as a unit. A section group SG is a set of sections SC consisting of (1) one section SC and (2) all sections SC corresponding to descendant nodes with the one section SC as an ancestor node.

[0322] According to the above configuration, the development support device 10 enables "the user to perform at least one of changing the execution order EO, ​​cutting, copying, pasting, importing, exporting, and changing the hierarchy, using the section group SG as a unit."

[0323] Here, a section group SG consists of (1) a section SC corresponding to an ancestor node, and (2) all sections SC corresponding to descendant nodes of the section SC as the ancestor node. The parent-child relationship between two or more sections SC constituting the section group SG is set by the development support device 10 according to a hierarchical relationship "arbitrarily set by the user between those two or more sections SC." Therefore, a section group SG is a unit arbitrarily set by the user for the multiple sections SC constituting the program PG, and can be considered as a unit consisting of two or more sections SC.

[0324] Therefore, the development support device 10 has the effect of being able to perform at least one of changing the execution order EO, ​​cutting, copying, pasting, importing, exporting, and changing the hierarchy in "units arbitrarily set by the user for multiple sections SC."

[0325] The development support device 10 includes a selection unit 122. When a user operation to select a section SC(m) is performed, the selection unit 122 selects, as a target, a section group SG(m) consisting of the section SC(m) and all sections SC corresponding to descendant nodes in a tree structure in which the section SC(m) is an ancestor node.

[0326] According to the above configuration, when a user operation is performed to select section SC(m), the development support device 10 selects as the target "section group SG(m) consisting of section SC(m) and all sections SC corresponding to descendant nodes of section SC(m)."

[0327] Here, the section group SG(m) is composed of the section SC(m) and all sections SC corresponding to descendant nodes of the section SC(m) as an ancestor node. The parent-child relationship between two or more sections SC constituting the section group SG(m) is set by the development support device 10 according to a hierarchical relationship "arbitrarily set by the user between these two or more sections SC". Therefore, the section group SG is a unit arbitrarily set by the user for the multiple sections SC constituting the program PG, and can be considered as a unit consisting of two or more sections SC. The user operation of selecting the section SC(m) can be considered as the following user operation. That is, it can be considered as a user operation of selecting the section group SG(m) "consisting of the section SC(m) and all sections SC corresponding to descendant nodes in the tree structure with the section SC(m) as an ancestor node" as a processing target.

[0328] Therefore, when a user selects section SC(m), the development support device 10 has the effect of being able to select two or more sections SC including section SC(m) according to "a unit arbitrarily set by the user for a plurality of sections SC." In other words, when a user selects section SC(m), the development support device 10 has the effect of being able to select, in response to the selection, a section group SG(m) having section SC(m) as an ancestor node. In other words, when a section SC(m) is selected, the development support device 10 has the effect of being able to select, as a selection target, a section group SG(m) including section SC(m) and another section SC associated with section SC(m) by the user.

[0329] The following describes processes such as changing the execution order EO (writing position PS) performed by the development support device 10 for each section group SG, cutting, copying, pasting, importing, and exporting.

[0330] (Example of changing the description position based on the section group) FIG. 9 is a diagram for explaining an example of a user operation for collectively changing the writing positions PS of multiple sections SC included in a section group SG in section group SG units. Specifically, FIG. 9 shows a situation in which "a user operation has been performed to switch the writing positions PS of FrameSection (section SC(1)) and UnitSection (section SC(5)) belonging to the same layer." The image example shown on the left side of FIG. 9 is an image example displayed before the development support device 10 (display control unit 130) executes the process corresponding to the above-mentioned user operation. The image example shown on the right side of FIG. 9 is an image example displayed after the development support device 10 (display control unit 130) executes the process corresponding to the above-mentioned user operation.

[0331] In the example image shown on the left side of Fig. 9, each of the following three sections SC corresponds to a descendant node in the tree structure with FrameSection (section SC(1)) as the ancestor node. That is, Frame_InitializeSection (section SC(2)), Frame_Validation (section SC(3)), and Frame_WorkSection (section SC(4)) each correspond to a descendant node.

[0332] Therefore, in the explanation of FIG. 9, the set of four sections SC from section SC(1) to section SC(4) in an ancestor-descendant relationship is referred to as section group SG(1).

[0333] In addition, in the example image shown on the left side of FIG. 9, each of the following two sections SC corresponds to a "descendant node in the tree structure with UnitSection (section SC(5)) as the ancestor node." That is, Unit_InitializeSection (section SC(6)) and Unit_WorkSection (section SC(7)) each correspond to a descendant node. Furthermore, each of the following three sections SC corresponds to a "descendant node in the tree structure with Unit_WorkSection (section SC(7)) as the ancestor node." That is, Unit_WorkFunctionSectionA (section SC(8)), Unit_WorkFunctionSectionB (section SC(9)), and Unit_WorkFunctionSectionC (section SC(10)) each correspond to a descendant node.

[0334] Therefore, in the explanation of FIG. 9, the set of six sections SC from section SC(5) to section SC(10) in an ancestor-descendant relationship is referred to as section group SG(5).

[0335] 9, the user can use the development support device 10 to collectively change the writing position PS of each of the four sections SC constituting the section group SG(1) to a position lower than the writing position PS of the section group SG(5). Specifically, the user can change the writing position PS of the section group SG(1) to a position immediately below the writing position PS(10) of the section SC(10), which has the lowest writing position PS in the section group SG(5).

[0336] Moreover, in the section group SG(1) in which the writing position PS has been changed to a position lower than the writing position PS of the section group SG(5), the relative writing position PS' of each of the four sections SC constituting the section group SG(1) has not been changed. That is, in the example image on the left side of FIG. 9 and the example image on the right side of FIG. 9, the writing position PS(1) of section SC(1) is immediately above the writing position PS(2) of section SC(2), and there is no change. In the example image on the left side of FIG. 9 and the example image on the right side of FIG. 9, the writing position PS(2) of section SC(2) is immediately above the writing position PS(3) of section SC(3), and there is no change. In the example image on the left side of FIG. 9 and the example image on the right side of FIG. 9, the writing position PS(3) of section SC(3) is immediately above the writing position PS(4) of section SC(4), and there is no change. In the example image on the left side of FIG. 9 and the example image on the right side of FIG. 9, the writing position PS(4) of section SC(4) is the lowest among the writing positions PS(1) to PS(4), and there is no change.

[0337] As described with reference to FIG. 9, when sections SC(p) and SC(q) belong to the same hierarchy, the user can replace the description positions PS in units of section groups SG as follows. That is, the user can replace the description positions PS of the section group SG(p) having section SC(p) as an ancestor node with the description positions PS of the section group SG(q) having section SC(q) as an ancestor node. By selecting section SC(p), the user can replace the description positions PS of the sections SC, including those sections SC belonging to a hierarchy below section SC(p), with the description positions PS of section SC(q) at the same hierarchy as section SC(p). More precisely, by selecting section SC(p), the user can replace the description positions PS of the section group SG(p) having section SC(p) as an ancestor node with the description positions PS of the section group SG(q) having section SC(q) as an ancestor node. Moreover, the user can change the writing position PS of the section group SG without changing the relative positional relationship between two or more sections SC that make up the section group SG.

[0338] (Regarding the process to be performed when changing the description position in units of sections) In Figure 9, for the program PG before accepting the above-mentioned user operation, that is, for each of the 11 sections SC that make up the program PG in the example image shown on the left side of Figure 9, the sequence management unit 123 sets the execution sequence EO for each as follows.

[0339] That is, for a section SC(1) called FrameSection in the program PG in the example image shown on the left side of Fig. 9, the order management unit 123 sets its execution order EO(1) to "1." Furthermore, for a section SC(2) called Frame_InitializeSection, the order management unit 123 sets its execution order EO(2) to "2." Furthermore, for a section SC(3) called Frame_Validation, the order management unit 123 sets its execution order EO(3) to "3."

[0340] Similarly, the order management unit 123 sets the execution order EO(4) of the section SC(4) called Frame_WorkSection to "4" and the execution order EO(5) of the section SC(5) called UnitSection to "5". The order management unit 123 sets the execution order EO(6) of the section SC(6) called Unit_InitializeSection to "6" and the execution order EO(7) of the section SC(7) called Unit_WorkSection to "7". The order management unit 123 sets the execution order EO(8) of the section SC(8) called Unit_WorkFunctionSectionA to "8" and the execution order EO(9) of the section SC(9) called Unit_WorkFunctionSectionB to "9". The order management unit 123 sets the execution order EO(10) of the section SC(10) called Unit_WorkFunctionSectionC to "10" and the execution order EO(11) of the section SC(11) called InspectionSection to "11".

[0341] In Figure 9, for the program PG after accepting the above-mentioned user operation, that is, for each of the 11 sections SC that make up the program PG in the example image shown on the right side of Figure 9, the order management unit 123 sets the execution order EO for each as follows.

[0342] That is, for a section SC(5) called UnitSection in the program PG in the example image shown on the left side of Fig. 9, the order management unit 123 sets its execution order EO(5) to "1." Also, for a section SC(6) called Unit_InitializeSection, the order management unit 123 sets its execution order EO(6) to "2." Furthermore, for a section SC(7) called Unit_WorkSection, the order management unit 123 sets its execution order EO(7) to "3."

[0343] Similarly, the order management unit 123 sets the execution order EO(8) of section SC(8) called Unit_WorkFunctionSectionA to "4." The order management unit 123 sets the execution order EO(9) of section SC(9) called Unit_WorkFunctionSectionB to "5." The order management unit 123 sets the execution order EO(10) of section SC(10) called Unit_WorkFunctionSectionC to "6." The order management unit 123 sets the execution order EO(1) of section SC(1) called FrameSection to "7," and the execution order EO(2) of section SC(2) called Frame_InitializeSection to "8." The order management unit 123 sets the execution order EO(3) of section SC(3) called Frame_Validation to "9," and the execution order EO(4) of section SC(4) called Frame_WorkSection to "10." The order management unit 123 sets the execution order EO(11) of the section SC(11) called InspectionSection to “11”.

[0344] That is, when the writing position PS of the section group SG is changed by the user, the order management unit 123 collectively changes the execution order EO of each of the two or more sections SC that make up the section group SG in accordance with the changed writing position PS.

[0345] 9, when a user operation is performed to swap the writing positions PS of two sections SC that belong to the same hierarchy, the development support device 10 executes a change of the writing positions PS including the sections SC corresponding to each descendant node. For example, when the development support device 10 receives a user operation to "swap the writing position PS(p) of section SC(p) with the writing position PS(q) of section SC(q) that belongs to the same hierarchy as the hierarchy to which section SC(p) belongs", the development support device 10 executes the following process.

[0346] That is, the development support device 10 (selection unit 122) selects "section group SG(p) consisting of section SC(p) and all sections SC corresponding to "descendant nodes with section SC(p) as an ancestor node"" as a target for changing the writing position PS. The selection unit 122 also selects "section group SG(q) consisting of section SC(q) and all sections SC corresponding to "descendant nodes with section SC(q) as an ancestor node" as a target for changing the writing position PS. The development support device 10 (execution unit 120) swaps the writing position PS of section group SG(m) with the writing position PS of section group SG(n) in accordance with the user's operation. Then, the development support device 10 (order management unit 123) collectively changes the execution order EO of each of two or more sections SC constituting each of section group SG(m) and section group SG(n) in accordance with the changed writing position PS.

[0347] The development support device 10 can change the writing position PS of a section SC in a program for each section group SG consisting of two or more sections SC. In other words, the development support device 10 enables the user to "change the writing positions PS of two or more sections SC all at once."

[0348] As described above, the development support device 10 includes an order management unit 123 that manages the execution order EO of each of the multiple sections SC. The order management unit 123 determines the execution order EO of the sections SC according to the writing position PS of the sections SC in the program PG, regardless of the hierarchical level to which the sections SC belong. Specifically, the order management unit 123 determines the execution order EO of the sections SC such that the execution order EO of a section SC whose writing position PS is higher in the program PG is earlier than the execution order EO of a section SC whose writing position PS is lower.

[0349] According to the above configuration, the development support device 10 determines the execution order EO of the sections SC according to a simple rule that "sections SC are executed in order from highest to lowest in terms of writing position PS," regardless of the hierarchical level to which the sections SC belong.

[0350] The execution order EO of the sections SC is determined according to the simple rule that "the sections are executed in order from the top to the bottom in terms of the description position PS," so the user can easily understand the execution order EO of each of the multiple sections SC. And the fact that "the user can easily understand the execution order EO of each of the multiple sections SC" can be evaluated as the convenience of the sections SC.

[0351] Therefore, the development support device 10 has the effect of enabling a user to manage multiple sections SC in a manner that reflects information that is inclusive of each other, such as "equipment processes and functions," while maintaining the convenience of the sections SC.

[0352] When a user operation is performed to place a section group SG(p) having section SC(p) as an ancestor node in a position immediately before section SC(q) that belongs to the same hierarchy as section SC(p), the order management unit 123 executes the following process. That is, the order management unit 123 does not change the relative execution order EO of each of the two or more sections SC included in the section group SG(p). Furthermore, the order management unit 123 sets the execution order EO of the section SC that has the lowest written position PS among the sections SC included in the section group SG(p) to the execution order EO immediately before the execution order EO(q) of section SC(q).

[0353] Here, the section group SG(p) having section SC(p) as its ancestor node consists of section SC(p) and all sections SC that correspond to descendant nodes in the tree structure having section SC(p) as its ancestor node.

[0354] According to the above configuration, when a user operation is performed to place a section group SG(p) having section SC(p) as an ancestor node in a position immediately before section SC(q) which belongs to the same hierarchy as section SC(p), the development support device 10 executes the following process. That is, the development support device 10 sets the execution order EO of the section SC with the lowest written position PS among the sections SC included in the section group SG(p) to the execution order EO immediately before the execution order EO(q) of section SC(q). Then, the development support device 10 does not change the "relative execution order EO'" of each of the two or more sections SC included in the section group SG(p), that is, does not change the relative order relationship of each of the sections SC group(p).

[0355] Therefore, the development support device 10 has the effect of being able to collectively change the execution order EO of each of two or more sections SC included in the section group SG(p) according to "a unit arbitrarily set by the user for the multiple sections SC." That is, the development support device 10 has the effect of being able to collectively change the execution order EO of each of two or more sections SC included in the section group SG(p) to be before the execution order EO(q) of section SC(q).

[0356] When a user operation is performed to place a section group SG(p) having section SC(p) as an ancestor node in a position immediately after section SC(q) which belongs to the same hierarchy as section SC(p), the order management unit 123 executes the following process. That is, the order management unit 123 does not change the relative execution order EO of each of the two or more sections SC included in the section group SG(p). In addition, the order management unit 123 sets the execution order EO(p) of section SC(p) to be one after the execution order EO of "the section SC whose description position PS is at the lowest among the sections SC corresponding to the descendant nodes in the tree structure having section SC(q) as the ancestor node."

[0357] Here, the section group SG(p) having section SC(p) as its ancestor node consists of section SC(p) and all sections SC that correspond to descendant nodes in the tree structure having section SC(p) as its ancestor node.

[0358] According to the above configuration, when a user operation is performed to place a section group SG(p) having section SC(p) as an ancestor node in a position immediately after section SC(q) which belongs to the same hierarchy as section SC(p), development support device 10 executes the following process. That is, development support device 10 sets the execution order EO(p) of section SC(p) to be one step after the execution order EO of "the section SC with the lowest written position PS among the sections SC corresponding to the descendant nodes of section SC(q) as the ancestor node". Then, development support device 10 does not change the "relative execution order EO'" of each of two or more sections SC included in section group SG(p), that is, does not change the relative order relationship of each of the sections in section group SG(p).

[0359] Therefore, the development support device 10 has the effect of being able to collectively change the execution order EO of each of two or more sections SC included in the section group SG(p) according to "a unit arbitrarily set by the user for the multiple sections SC." That is, the development support device 10 has the effect of being able to collectively change the execution order EO of each of two or more sections SC included in the section group SG(p) to be after the execution order EO(q) of section SC(q).

[0360] (Examples of cutting, copying, pasting, etc. using sections as units) Figure 10 is a diagram illustrating an example of a user operation of "cutting" multiple sections SC included in a section group SG at once, and a user operation of "pasting" multiple sections SC included in a section group SG at once, on a section group SG basis.

[0361] The example image shown on the left side of Fig. 10 is the same as the example image shown on the left side of Fig. 9. Therefore, in the explanation of Fig. 10, the set of four sections SC from section SC(1) to section SC(4) in an ancestor-descendant relationship will be referred to as section group SG(1), as in Fig. 9. In other words, the set of four sections SC from FrameSection (section SC(1)) to Frame_WorkSection (section SC(4)) will be referred to as section group SG(1).

[0362] Similarly, in the explanation of Fig. 10, the set of six sections SC from section SC(5) to section SC(10) in an ancestor-descendant relationship is referred to as section group SG(5). In other words, the set of six sections SC from UnitSection(section SC(5)) to Unit_WorkFunctionSectionC(section SC(10)) is referred to as section group SG(5).

[0363] (About "cutting" sections) When a user performs a CUT operation to "cut" the section group SG(1) from "program PG:ST_Program0" in the example image shown on the left side of FIG. 10, the development support device 10 executes the following process.

[0364] First, development support device 10 moves each of first section table 170(1) through fourth section table 170(4), which stores sections SC(1) through SC(4), from program table 160 to a temporary save table (not shown).

[0365] Next, for a section SC(5) called UnitSection in the program PG, the order management unit 123 sets the execution order EO(5) to "1." Furthermore, for a section SC(6) called Unit_InitializeSection, the order management unit 123 sets the execution order EO(6) to "2." Furthermore, for a section SC(7) called Unit_WorkSection, the order management unit 123 sets the execution order EO(7) to "3."

[0366] Similarly, the order management unit 123 sets the execution order EO(8) of section SC(8) called Unit_WorkFunctionSectionA to "4." The order management unit 123 sets the execution order EO(9) of section SC(9) called Unit_WorkFunctionSectionB to "5." The order management unit 123 sets the execution order EO(10) of section SC(10) called Unit_WorkFunctionSectionC to "6." The order management unit 123 sets the execution order EO(11) of section SC(11) called InspectionSection to "7."

[0367] The display control unit 130 executes display according to the program table 160 that has been updated by the order management unit 123 as described above, with the four section tables 170 from the first section table 170(1) to the fourth section table 170(4) deleted.

[0368] (About the "paste" process using sections as a unit) When a user performs an operation to paste the section group SG(1) previously cut from the program PG, the development support device 10 executes the following process.

[0369] First, development support device 10 moves each of first section table 170(1) through fourth section table 170(4), which stores sections SC(1) through SC(4), from a temporary save table (not shown) to program table 160.

[0370] Next, the order management unit 123 updates the execution order EO of each of the two or more sections SC constituting the section group SG(1) according to the position where the section group SG(1) is pasted. For example, if a user operation to paste the section group SG(1) causes the section group SG(1) to be pasted at the last position of the program PG before pasting, as illustrated on the right side of Fig. 10, the order management unit 123 executes the following process.

[0371] That is, the order management unit 123 sets the execution order EO(1) of section SC(1) called FrameSection to “8,” and the execution order EO(2) of section SC(2) called Frame_InitializeSection to “9.” The order management unit 123 sets the execution order EO(3) of section SC(3) called Frame_Validation to “10,” and the execution order EO(4) of section SC(4) called Frame_WorkSection to “11.”

[0372] Then, the display control unit 130 executes display according to the program table 160 (and the section table 170) updated by the order management unit 123 as described above, and specifically, displays the example screen shown on the right side of FIG.

[0373] (Examples of copying, importing, exporting, etc., using sections as units) When a user operation to copy section group SG(1) is performed, development support device 10 (execution unit 120) executes the following process: That is, execution unit 120 copies each of first section table 170(1) through fourth section table 170(4) from program table 160, and adds the copied four tables to a temporary save table (not shown).

[0374] When a user performs an operation to export section group SG(1), development support device 10 (execution unit 120) executes the following process. That is, execution unit 120 exports the information stored in each of first section table 170(1) through fourth section table 170(4). Specifically, execution unit 120 exports the name (identification information), execution order EO, ​​hierarchical number HN, and the contents of program PG (source code) in each of sections SC(1) through SC(4).

[0375] When a user performs an operation to import "a section group SG(m) consisting of a section SC(m) and one or more sections SC corresponding to descendant nodes in a tree structure with section SC(m) as an ancestor node," the development support device 10 executes the following processing.

[0376] That is, first, the adding unit 140 adds two or more section tables 170 for storing each of the two or more sections SC that make up the section group SG(m) to the program table 160. Then, the adding unit 140 stores each of the two or more sections SC that make up the section group SG(m) in each of the two or more section tables 170 added to the program table 160.

[0377] Furthermore, the order management unit 123 updates the execution order OR for each of the two or more sections SC constituting the section group SG(m) stored by the adding unit 140 in each of the two or more section tables 170.

[0378] Specifically, the order management unit 123 sets the execution order EO for each of the two or more sections SC constituting the section group SG(m) without changing the "relative execution order EO'" of each in the section group (m). In other words, the order management unit 123 sets the execution order EO for each of the two or more sections SC constituting the section group SG(m) so that the relative order relationship (relative positional relationship) of each of these sections SC is not changed.

[0379] For example, suppose that section group SG(m) is composed of section SC(m), section SC(m+1), section SC(m+2), ..., section SC(m+n), and the execution order OR of each of these sections SC is in this order. Also, suppose that in program table 160 before importing section group SG(m), "x" is stored in the execution order OP of section table 170 that stores section SC with the latest execution order EO.

[0380] In this case, when the adding unit 140 adds "two or more section tables 170 each storing two or more sections SC that make up the section group SG(m)" to the program table 160, the order management unit 123 executes the following processing.

[0381] That is, order management unit 123 stores "x+1" in the execution order OP of section table 170(m) that stores section SC(m). Also, order management unit 123 stores "x+2" in the execution order OP of section table 170(m+1) that stores section SC(m+1), and stores "x+3" in the execution order OP of section table 170(m+2) that stores section SC(m+2). Similarly, order management unit 123 stores "x+n+1" in the execution order OP of section table 170(m+n) that stores section SC(m+n).

[0382] That is, when a user operation to import a section group SG(m) is performed, the development support device 10 executes the following process: The development support device 10 adds two or more section tables 170 storing each of the two or more sections SC constituting the section group SG(m) to the program table 160 without changing the relative execution order EO' of each of these sections SC.

[0383] As described above with reference to Fig. 10, when a user operation is performed to select section SC(m) as a target for at least one of the processes of cut, copy, paste, import, and export, the development support device 10 executes the following process. That is, the development support device 10 selects "section group SG(m) consisting of section SC(m) and all sections SC corresponding to "descendant nodes with section SC(m) as an ancestor node"" as a target for the above process.

[0384] Therefore, the development support device 10 enables "the user to cut, copy, or export all sections SC corresponding to "descendant nodes with section SC(m) as an ancestor node" together with the selected section SC(m). The development support device 10 enables "the user to collectively select two or more sections SC as targets for at least one process of cut, copy, paste, import, and export." In other words, by using the development support device 10, the user can select a certain section SC(m) and perform operations such as cut on a section group SG(m) including sections SC in a hierarchy below the hierarchy to which section SC(m) belongs.

[0385] As described above, the development support device 10 includes the adding unit 140. When a user operation to import a section group SG(m) is performed, the adding unit 140 stores each of the two or more sections SC constituting the section group SG(m) in the storage unit 100 without changing the hierarchical level to which each of the sections belongs. Specifically, the adding unit 140 adds two or more section tables 170 for storing each of the two or more sections SC constituting the section group SG(m) to the program table 160. Then, the adding unit 140 stores each of the two or more sections SC constituting the section group SG(m) in each of the two or more section tables 170 added to the program table 160 without changing the hierarchical level number HN of each of the sections.

[0386] Furthermore, when the adding unit 140 adds two or more section tables 170, each of which “stores two or more sections SC that make up the section group SG(m)”, to the program table 160, the order management unit 123 executes the following process.

[0387] In other words, the order management unit 123 sets the execution order EO of the section SC whose execution order EO is the first among the two or more sections SC that make up the section group SG(m) to be one execution order after the execution order EO of the section SC that is executed latest before the import is performed.

[0388] Specifically, the order management unit 123 sets the execution order EO(m) of section SC(m) corresponding to an ancestor node in the section group SG(m) to be one step after the execution order EO of the section SC that is executed latest before the import is performed. For example, when the section SC that is executed latest before the import is section SC(x) and its execution order EO is "x", the order management unit 123 sets the execution order EO(m) of section SC(m) to "x+1".

[0389] In addition, the order management unit 123 sets an execution order EO for each of the two or more sections SC that make up the section group SG(m) without changing the “relative execution order EO'” (i.e., the relative order relationship) of each in the section group (m).

[0390] Here, the section group SG(m) is made up of the section SC(m) and all the sections SC that correspond to descendant nodes in the tree structure with the section SC(m) as the ancestor node.

[0391] According to the above configuration, when a user performs an operation to import a section group SG(m) having section SC(m) as an ancestor node, development support device 10 stores each of the two or more sections constituting section group SG(m) in storage unit 100. In particular, development support device 10 stores section group SG(m) in storage unit 100 while maintaining the ancestor-descendant relationship between the two or more sections SC constituting section group SG(m).

[0392] Specifically, the development support device 10 stores each of the two or more sections SC that make up the section group SG(m) in the storage unit 100 (particularly, the section table 170) without changing the hierarchical level to which each of them belongs (i.e., each hierarchical level number HN). Then, the development support device 10 sets the execution order EO(m) of section SC(m) to be one level after the execution order EO(x) of section SC(x) without changing the "relative execution order EO'" of the two or more sections SC that make up the section group SG(m). Section SC(x) is the section SC that is executed latest before the import is performed.

[0393] Therefore, the development support device 10 has the effect of being able to import two or more sections SC to which a parent-child relationship (ancestor-descendant relationship) has been assigned by the user at once, instead of importing two or more sections SC one by one.

[0394] In particular, the development support device 10 has the effect of being able to import two or more sections SC to which a parent-child relationship (ancestor-descendant relationship) has been assigned by the user at once, while maintaining the ancestor-descendant relationship between them.

[0395] (Example of comparison results before and after update) Fig. 11 is a diagram showing an example of an image displaying a comparison result before and after an update of the program PG. When the program PG is updated, the development support device 10 (particularly, the comparison unit 124) compares the program PG before the update with the program PG after the update. Then, the development support device 10 (particularly, the display control unit 130) displays the comparison result of the program PG before and after the update made by the comparison unit 124, and displays, for example, the example image shown in Fig. 11 as the comparison result.

[0396] In comparing the pre-update and post-update program PG, the comparison section 124 compares each of the multiple sections SC constituting the pre-update program PG with each of the multiple sections SC constituting the post-update program PG.

[0397] The comparison unit 124 compares, for example, sections SC of corresponding orders (writing positions PS) between the program PG before and after the update, that is, compares sections SC with the same execution order EO. Since the execution order EO is determined only by the writing positions PS, it can be said that "the comparison unit 124 compares sections SC of the program PG before and after the update, that is, compares sections SC of the program PG ....

[0398] Specifically, the comparison unit 124 compares the section SC(1) whose writing position PS is at the top in the program PG before the update with the section SC(1) whose writing position PS is at the top in the program PG after the update. The comparison unit 124 also compares the section SC(2) whose writing position PS is second from the top in the program PG before the update with the section SC(2) whose writing position PS is second from the top in the program PG after the update. Similarly, the comparison unit 124 compares the section SC(3) whose writing position PS is third from the top in the program PG before the update with the section SC(3) whose writing position PS is third from the top in the program PG after the update.

[0399] That is, the comparison unit 124 compares the section SC(m) whose writing position PS is the xth from the top in the pre-update program PG with the section SC(m) whose writing position PS is the xth from the top in the updated program PG.

[0400] The comparison unit 124 compares, for example, the names (identification information), hierarchical number HN, and programs (source codes) of the section SC(m) in the pre-update program PG and the section SC(m) in the post-update program PG.

[0401] Specifically, the comparison unit 124 compares the name of section SC(m) in the program PG before the update with the name of section SC(m) in the program PG after the update, and notifies the display control unit 130 of the comparison result. The comparison unit 124 also compares the hierarchical number HN of section SC(m) in the program PG before the update with the hierarchical number HN of section SC(m) in the program PG after the update, and notifies the display control unit 130 of the comparison result. Furthermore, the comparison unit 124 compares the program (source code) of section SC(m) in the program PG before the update with the program (source code) of section SC(m) in the program PG after the update, and notifies the display control unit 130 of the comparison result.

[0402] When the comparison unit 124 determines that "at least one of the name, hierarchical number HN, and program is different between before and after the update" for section SC(m), the display control unit 130 highlights section SC(m). When highlighting section SC(m), the display control unit 130 may also highlight the section SC that corresponds to the "ancestor node that has section SC(m) as a descendant node."

[0403] 11, the display control unit 130 highlights "Variable Table", "Section 0", and "Section 3" as sections SC that have had at least one change in name, hierarchical number HN, or content (source code), and also highlights "Program 0" that includes these sections SC.

[0404] In other words, when the program PG is updated by the user, the development support device 10 (particularly, the comparison unit 124) compares the sections SC of corresponding orders (writing positions PS) because the writing positions PS of the sections SC are not related to the execution order EO of the sections SC. In addition, the development support device 10 (particularly, the comparison unit 124) compares the hierarchical numbers HN of the corresponding orders (writing positions PS).

[0405] In other words, when the program PG is updated (changed) by the user, the development support device 10 compares the hierarchical information (hierarchical number HN) of the section SC in the program PG before the update with the hierarchical information of the section SC in the program PG after the update. The development support device 10 also compares the contents (source code) of the section SC in the program PG before the update with the contents of the section SC in the program PG after the update.

[0406] Furthermore, the development support device 10 can merge the contents (source code) of the sections SC in the program PG before the update with the contents of the sections SC in the program PG after the update. For example, the development support device 10 can merge the contents (source code) of the sections SC of corresponding orders (writing positions PS) in the program PG before the update and the program PG after the update.

[0407] As has been described thus far, the development support device 10 includes the comparison unit 124. When comparing the program PG before and after the update, the comparison unit 124 compares whether the hierarchical levels before and after the update of section SC(m) match.

[0408] According to the above configuration, when comparing the pre-update and post-update versions of the program PG, the development support device 10 compares whether the pre-update and post-update hierarchies of section SC(m) match.

[0409] Therefore, the development support device 10 has the effect of enabling the user to check the sections SC in which only the hierarchical level to which they belong has been changed before and after the update.

[0410] § 4. Variations So far, an example has been described in which the display control unit 130 displays each of the multiple sections SC that make up the program PG. However, the display control unit 130 may be able to switch between a "section display mode" that displays each of the multiple sections SC that make up the program PG, and a "POU display mode" that displays multiple POUs that make up the program PG. In the "POU display mode," the display control unit 130 may display the logical relationships (call relationships) between the multiple POUs that make up the program PG.

[0411] Further, up to this point, an example has been described in which the comparison unit 124 compares sections SC of corresponding orders (description positions PS) between the pre-update program PG and the post-update program PG. However, as illustrated in Fig. 11, the comparison unit 124 may also compare sections SC with the same name (identification information), for example, between the pre-update program PG and the post-update program PG.

[0412] [Software implementation example] The functional blocks of the development support device 10 may be realized by a logic circuit (hardware) formed in an integrated circuit (IC chip) or the like, or may be realized by software using a CPU (Central Processing Unit). Specifically, the reception unit 110, the execution unit 120, the display control unit 130, and the addition unit 140 may be realized by hardware or software.

[0413] In the latter case, the development support device 10 includes a CPU that executes the instructions of a program, which is software that realizes each function, a ROM (Read Only Memory) or storage device (these are referred to as "recording media") in which the program and various data are recorded so as to be readable by a computer (or CPU), and a RAM (Random Access Memory) in which the program is expanded. The object of the present invention is achieved by the computer (or CPU) reading and executing the program from the recording media. As the recording media, "non-transient tangible media" such as tapes, disks, cards, semiconductor memories, programmable logic circuits, etc. can be used. The program may be supplied to the computer via any transmission medium (such as a communication network or broadcast waves) capable of transmitting the program. The present invention may also be realized in the form of a data signal embedded in a carrier wave in which the program is embodied by electronic transmission.

[0414] The present invention is not limited to the above-described embodiments, and various modifications are possible within the scope of the claims. Embodiments obtained by appropriately combining the technical means disclosed in different embodiments are also included in the technical scope of the present invention. [Explanation of symbols]

[0415] 10 Development support equipment 20 PLC (control device) 110 Reception 121 Hierarchy Management Department 122 Selection section 123 Order Management Department 124 Comparison section 130 Display control unit 140 Additional Part HN Hierarchy number (information that identifies the hierarchy) Postgraduate Program PS location SC Section SG Sections S110 Reception step S120 Hierarchy Management Step

Claims

1. A development support device that supports a user in creating a program to be executed by a control device, The program is divided into a plurality of sections, each of which is a processing unit set by a user regardless of the calling relationship, each of the plurality of sections is executed in sequence according to a description position in the program, from the top to the bottom; a reception unit that receives a user operation for setting a hierarchical relationship between the plurality of sections; a hierarchical management unit that assigns, to each of the plurality of sections, information that identifies the hierarchical level to which each of the sections belongs in accordance with the hierarchical relationship; Equipped with A certain section and a section other than the certain section, (1) the hierarchical level to which the certain section belongs is one level higher than the hierarchical level to which the other section belongs, and (2) in the program, the position at which the certain section is written is higher than the position at which the other section is written, and (3) in the program, between the position at which the certain section is written and the position at which the other section is written, there is no section other than the certain section that belongs to the same hierarchical level to which the certain section belongs. If the following conditions are met, A parent-child relationship is established between the certain section and the other section, with the certain section as a parent node and the other section as a child node; when the certain section and the other section belong to the same hierarchy, and the reception unit receives the user operation indicating that the other section is to be moved down one hierarchy level, the hierarchy management unit sets a parent-child relationship in which the certain section is a parent node and the other section is a child node, In a situation where a parent-child relationship is set between the certain section and the other section, when the reception unit receives the user operation indicating that the other section should be moved up one level in the hierarchy to which it belongs, the hierarchy management unit dissolves the parent-child relationship between the certain section and the other section.

2. a display control unit that displays identification information of the one section and the other section in the parent-child relationship using a tree structure that indicates the parent-child relationship, When displaying the identification information of the certain section, the display control unit (1) a folded display that does not display the identification information of the other section; (2) an expanded display that displays the identification information of the other section together with the identification information of the certain section; It is possible to switch 2. The development support device according to claim 1.

3. When a certain description in the program is grammatically incorrect, the display control unit (1) identification information of a section including the certain content; and (2) identification information of a section corresponding to an ancestor node in a tree structure showing the parent-child relationship, the tree structure having a section including the certain description content as a descendant node; and as an identification of the section containing the error. The development support device according to claim 2.

4. The user, (1) One section; (2) all sections corresponding to descendant nodes when the one section is regarded as an ancestor node in the tree structure showing the parent-child relationship; At least one of the following operations can be performed on a section group consisting of the above: change of execution order, cut, copy, paste, import, export, and change of hierarchy. The development support device according to any one of claims 1 to 3.

5. When a user operation to select a certain section is accepted, (1) the certain section; (2) a tree structure showing the parent-child relationship, in which all sections corresponding to descendant nodes in the tree structure having the certain section as an ancestor node; A selection unit is further provided for selecting a section group consisting of The development support device according to any one of claims 1 to 4.

6. a sequence management unit that manages an execution sequence of each of the plurality of sections, The order management unit determines, according to the description position of the section in the program, the execution order of the section that is written at a higher position, as an order of execution earlier than the execution order of the section that is written at a lower position, regardless of the hierarchical relationship of the sections. The development support device according to any one of claims 1 to 5.

7. When a user performs an operation to place a section group consisting of (1) a certain section and (2) all sections corresponding to descendant nodes in a tree structure showing a parent-child relationship in which the certain section is an ancestor node, immediately before another section belonging to the same hierarchy as the certain section in the program, The sequence management unit (3) for two or more of the sections included in the group of sections, without changing the relative execution order of each of the sections in the group of sections, (4) among the sections included in the section group, the section that is written at the bottom is set to be executed in the order of execution immediately before the execution order of the other section.

7. The development support device according to claim 6.

8. When a user performs an operation to place a section group consisting of (1) a certain section and (2) all sections corresponding to descendant nodes in a tree structure showing a parent-child relationship in which the certain section is an ancestor node, in a position immediately after another section belonging to the same hierarchy as the certain section in the program, The sequence management unit (3) for two or more of the sections included in the group of sections, without changing the relative execution order of each of the sections in the group of sections, (4) The execution order of the certain section is set to the execution order one step after the execution order of the section that is written at the lowest position among the sections corresponding to the descendant nodes in a tree structure indicating the parent-child relationship, the tree structure having the other section as an ancestor node.

8. The development support device according to claim 6 or 7.

9. an adding unit that, upon a user operation to import a section group consisting of (1) a certain section set as a hierarchy in the parent-child relationship as a hierarchy to which the certain section should belong, and (2) a section corresponding to a descendant node in a tree structure in which the certain section is an ancestor node, stores each of the two or more sections constituting the section group in a storage unit without changing the hierarchy to which each of the sections belongs; The sequence management unit (3) for two or more of the sections included in the group of sections, without changing the relative execution order of each of the sections in the group of sections, (4) The execution order of the certain section is set to be one section after the execution order of the section that is executed latest before the section group is imported. The development support device according to any one of claims 6 to 8.

10. The program further includes a comparison unit that compares whether a hierarchical level before the update of a certain section matches a hierarchical level after the update when comparing the program before the update and the program after the update. The development support device according to any one of claims 1 to 9.

11. When a user operation to move a certain section up or down one level in the hierarchy to which the certain section belongs is accepted, the hierarchy management unit: (1) a hierarchical level to which the certain section belongs; and (2) a tree structure showing the parent-child relationship, the tree structure having the certain section as an ancestor node, and a hierarchy to which each of all sections corresponding to a descendant node in the tree structure belongs; are all increased or decreased by one in response to the user operation. The development support device according to any one of claims 1 to 9.

12. A control method for a development support device that supports a user in creating a program to be executed by a control device, comprising the steps of: The program is divided into a plurality of sections, each of which is a processing unit set by a user regardless of the calling relationship, each of the plurality of sections is executed in sequence according to a description position in the program, from the top to the bottom; a receiving step of receiving a user operation for setting a hierarchical relationship between the plurality of sections; a hierarchical management step of assigning information for identifying a hierarchical level to each of the plurality of sections in accordance with the hierarchical relationship; Including, A certain section and a section other than the certain section, (1) the hierarchical level to which the certain section belongs is one level higher than the hierarchical level to which the other section belongs, and (2) in the program, the position at which the certain section is written is higher than the position at which the other section is written, and (3) in the program, between the position at which the certain section is written and the position at which the other section is written, there is no section other than the certain section that belongs to the same hierarchical level to which the certain section belongs. If the following conditions are met, A parent-child relationship is established between the certain section and the other section, with the certain section as a parent node and the other section as a child node; when the receiving step receives the user operation indicating that the other section is to be moved down one level in the hierarchy in a situation where the certain section and the other section belong to the same hierarchy, the hierarchy management step sets a parent-child relationship in which the certain section is a parent node and the other section is a child node; In a situation where a parent-child relationship is set between the certain section and the other section, when the receiving step receives the user operation indicating that the other section should be moved up one level in the hierarchy to which it belongs, the hierarchy management step dissolves the parent-child relationship between the certain section and the other section. Control methods.

13. 2. An information processing program for causing a computer to function as the development support device according to claim 1, the information processing program causing a computer to function as said reception unit and said hierarchical management unit.

14. A computer-readable recording medium having the information processing program according to claim 13 recorded thereon.

Citation Information

Patent Citations

  • Object-based fixed value area sequential switching program control method

    CN105159178A

  • Programmable controller control system

    JP1987111303A

  • Structuring method of robot motion descriptive language, and indicating method and editing method of structured robot motion descriptive language

    JP2002066967A

  • Program for management and its constructing system and its method

    JP2002328705A

  • User program development support device, display switching method, and program product

    JP2004240592A