WO2020195195A1 - 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体 - Google Patents

開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体 Download PDF

Info

Publication number
WO2020195195A1
WO2020195195A1 PCT/JP2020/004316 JP2020004316W WO2020195195A1 WO 2020195195 A1 WO2020195195 A1 WO 2020195195A1 JP 2020004316 W JP2020004316 W JP 2020004316W WO 2020195195 A1 WO2020195195 A1 WO 2020195195A1
Authority
WO
WIPO (PCT)
Prior art keywords
variable
variables
comment
support device
development support
Prior art date
Application number
PCT/JP2020/004316
Other languages
English (en)
French (fr)
Inventor
徹雄 香川
健次郎 長尾
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Priority to US17/440,180 priority Critical patent/US20220197238A1/en
Priority to EP20779668.1A priority patent/EP3951519A4/en
Priority to CN202080020816.4A priority patent/CN113614659A/zh
Publication of WO2020195195A1 publication Critical patent/WO2020195195A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13047Display data on chart with comment, message about type of data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13144GUI graphical user interface, icon, function bloc editor, OI operator interface

Definitions

  • the present invention relates to a development support device or the like that assists a user in creating a program executed by a control device.
  • Patent Document 1 discloses a development support device including a variable table including a variable name, an internal memory address, and an I / O comment.
  • Japanese Patent Publication Japanese Patent Laid-Open No. 2005-352612
  • a variable that can be represented as a descendant node in a tree structure having a certain variable as an ancestor node is, for example, "a variable that can be represented as a child node in a tree structure that has an array type variable as a parent node” Array elements of.
  • a "member of the structure type variable” that can be expressed as a child node is also expressed as a descendant node in a tree structure having a certain variable as an ancestor node.
  • This is an example of "variables that can be created”.
  • FIG. 12 is a diagram illustrating an operation performed by a user when attempting to confirm a comment about an array element of an array type variable using a conventional development support device.
  • a comment "entire start condition” is displayed for the array type variable itself named “startCondition”.
  • the comment "whole error” is displayed for the array type variable itself named “errorStatus”.
  • One aspect of the present invention has been made in view of the above problems, and is represented as a "descendant node in a tree structure having a certain variable as an ancestor node" such as an array element of an array type variable and a member of a structure type variable.
  • the purpose is to realize a development support device or the like that allows the user to easily check and edit comments on "variables that can be used”.
  • the development support device is a development support device that assists the user in creating a program executed by the control device, and is a variable used in the program.
  • the operation reception unit that accepts the user operation instructing the user to output a comment that can be arbitrarily added by the user along with the definition of the variable
  • the operation reception unit accepts the user operation.
  • comments for each of a plurality of second variables that can be represented as descendant nodes in a tree structure having the first variable as an ancestor node are given with respect to the name of the first variable and the first variable. It includes identification information for identifying each of the plurality of second variables, and an output unit that outputs as a file in a data format editable by at least one of a text editor and a table calculation software in association with.
  • the control method is a control method of a development support device that assists a user in creating a program executed by the control device, and is used in the program.
  • An operation acceptance step that accepts a user operation instructing an external output of a comment that can be arbitrarily added by the user along with the definition of the variable, and the operation acceptance step accepts the user operation in the operation acceptance step.
  • comments for each of a plurality of second variables that can be represented as descendant nodes in the tree structure having the first variable as the ancestor node are given to the name of the first variable and the first variable.
  • it includes identification information for identifying each of the plurality of second variables, and an output step of outputting as a file in a data format editable by at least one of a text editor and a table calculation software in association with. I'm out.
  • the development support device relates to "variables that can be represented as descendant nodes in a tree structure having a variable as an ancestor node" such as an array element of an array type variable and a member of a structure type variable. This has the effect of making it easy for the user to check and edit the comment.
  • FIG. 1 It is a block diagram which shows the main part structure of the development support apparatus which concerns on Embodiment 1 of this invention. It is a figure which shows the whole outline of the control system including the development support device of FIG. It is a figure which shows the whole outline of the process executed by the development support apparatus of FIG. It is a flow chart which shows an example of the export process executed by the development support apparatus of FIG. It is a figure which shows an example of the variable other than the element variable stored in the 1st variable definition table. It is a figure which shows an example of each array element of an array type variable stored in the 2nd variable definition table, and an example of an element comment for each array element of an array type variable in output list L1.
  • FIGS. 1 to 12 Embodiment 1
  • the development support device 10 will be described as a typical example of the development support device.
  • an outline of the control system 1 including the development support device 10 will be described with reference to FIG.
  • FIG. 2 is a diagram showing an overall outline of the control system 1 including the development support device 10.
  • the control system 1 is a master-slave control system including a PLC (Programmable Logic Controller) 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.
  • one of the PLCs 20 may be the master device and the remaining PLC20 may be the slave device. Further, a control subject different from both the PLC 20 and the slave device 40 may be the master device. That is, the "master device” and the "slave device” are defined by paying attention to the control function of data transmission on the field network 60, and what kind of information is transmitted and received between the devices is defined. There is no particular limitation.
  • the PLC 20 controls the entire control system 1. Specifically, the PLC 20 acquires information from the device 50, which is an input device such as a sensor, as input data via the slave device 40. The PLC 20 executes arithmetic processing using the acquired input data according to a user program incorporated in advance. The PLC 20 executes the arithmetic processing, determines the control content for the device 50 which is an output device such as an actuator, and outputs the control data corresponding to the control content to the device 50 via the slave device 40. To do.
  • the field network 60 transmits various data received by the PLC 20 or transmitted by the PLC 20, for example, EtherCAT (registered trademark), PROFINE (registered trademark), MECHATROLINK (registered trademark) -III, Powerlink, SERCOS (registered trademark). -III, CIP Motion. Further, the field network 60 may be, for example, EtherNet / IP (registered trademark), DeviceNet, CompoNet (registered trademark), or the like. In the following, the control system 1 in which data is transmitted and received between the PLC 20 and the slave device 40 or between the plurality of slave devices 40 by sequentially transferring data frames on the field network 60 will be described. Do.
  • the slave device 40 is a slave device in a network (field network 60) using the PLC 20 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.
  • the device 50 is, for example, 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.
  • the development support device 10 is connected to the PLC 20 via, for example, a communication cable which is a USB (Universal Serial Bus) 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.
  • the development support device 10 provides, for example, a development environment for PLC20, and is an environment for a user to create (create / edit) a program such as a user program according to a control purpose (for example, a target line and process). I will provide a.
  • the user creates a program code of a control program (user program) to be executed by the PLC 20 by using the development environment (programming tool) provided by the development support device 10.
  • the development support device 10 may have a debug function and a simulation function in order to assist the user in creating and editing a control program to be executed by the PLC 20.
  • the development support device 10 may calculate and set, for example, the timing of acquiring the state value (input refresh) by the PLC 20 and the timing of updating the output value (output refresh) by the PLC 20.
  • the development support device 10 may monitor the operating state of the PLC 20, the values of various data, and the like.
  • the development support device 10 may be a device that provides an integrated development environment that supports 3D motion simulation as well as programming, configuration (configuration setting), debugging, maintenance, and monitoring functions of the PLC 20. Further, the development support device 10 may set and adjust various parameters for the slave device 40.
  • the development support device 10 is typically composed of a general-purpose computer.
  • the information processing program executed by the development support device 10 may be stored in a CD-ROM (Compact Disk-Read Only Memory) (not shown) and distributed.
  • the program stored in the CD-ROM is read by a CD-ROM drive device (not shown) and stored in the hard disk of the development support device 10.
  • the development support device 10 may be configured to download a program similar to the program stored in the DVD-ROM from a higher-level host computer or the like via a network.
  • the HMI (Human Machine Interface) 30 may be connected to the PLC 20 via a communication cable.
  • the HMI30 is a means for exchanging information between a human and a machine. Specifically, the human operates the machine (gives an instruction to the machine), and the machine informs the human of the current state / result. It is a means to do it.
  • the means by which humans give instructions to machines include switches, buttons, handles, dials, pedals, remote controls, microphones, keyboards, mice, etc., and the machines convey information related to the current state / results to humans. Means include LCD screens, meters, lamps, speakers and the like.
  • 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 (for example, PLC20) according to the user operation to the operation unit. Further, the display unit of the HMI 30 displays predetermined information about the control system 1.
  • the program created / edited by the user using the development environment provided by the development support device 10 includes a user program, a motion calculation program, a sequence instruction calculation program, and the like.
  • the "user program” is created according to the control target of the user (for example, the target line and process).
  • the development support device 10 generates a user program by compiling a ladder program (source program) described by ladder logic (ladder language) or the like.
  • Ladder logic is a method for describing logic circuits and is a programming language adopted by many PLCs.
  • the user program is generated, for example, in the form of an object program that can be executed by the microprocessor included in the PLC 20.
  • the "motion calculation program” is a program that is executed according to an instruction by a user program and calculates a command value 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 predetermined sequence instruction used in the user program is executed and is executed to realize the contents of the instruction.
  • the development support device 10 is a data format in which comments set by the user for each element (element variable, second variable) of a certain variable (first variable) can be edited with at least one of a text editor and spreadsheet software. Is output as a file (output list L1 described later).
  • Each element of the variable is, for example, each array element (each array member) of the array type variable, and for example, each structure member of the structure type variable.
  • the development support device 10 is a file in a data format that can be edited by spreadsheet software, such as a Microsoft (registered trademark) Excel (registered trademark) file, for comments on each element of the variable specified by the user. Output as.
  • spreadsheet software such as a Microsoft (registered trademark) Excel (registered trademark) file
  • the user can easily check the contents of the output list L1 and easily edit (update) the contents of the output list L1 by using spreadsheet software such as Excel (registered trademark).
  • spreadsheet software such as Excel (registered trademark).
  • the user can view and edit the comments attached to each element of the variable by enjoying the high listability and operability of spreadsheet software such as Excel (registered trademark).
  • the user copies and pastes the output list L1 output by the development support device 10, and displays one or more lists L1 (1), L1 (2), L1 (3), ... L1 (n). It can be generated (“n” is a “natural number of 1 or more”).
  • the user describes a comment for each element of the variable in each of the plurality of languages L1 (1), L1 (2), L1 (3), ... L1 (n). This makes it possible to create and manage comments for each element of a variable in each of a plurality of languages.
  • the development support device 10 is an output list of a data format in which comments about each array element of the array type variable v1 can be edited with respect to the array type variable v1 specified by the user in at least one of a text editor and spreadsheet software.
  • the user copies and pastes the output list L1 (v1), and lists L1 (v1) (1), L1 (v1) (2), L1 (v1) (3), ... L1 (v1) (n). ) Is generated.
  • the user describes in English a comment about each array element of the array type variable v1 in the list L1 (v1) (1).
  • the user describes a comment for each array element of the array type variable v1 in Japanese.
  • the user describes a comment for each array element of the array type variable v1 in Chinese.
  • the user writes a comment for each array element of the array type variable v1 in Spanish in lists L1 (v1) (n).
  • the development support device 10 facilitates "the user prepares a comment for each element (element variable, second variable) of a certain variable (first variable) in each of a plurality of languages".
  • the user can use a plurality of comments, each of which is described in each of a plurality of languages (for example, the above-mentioned lists L1 (v1) (1), L1 (v1) (2), L1 (v1) (3), ... .. L1 (v1) (n)) can be easily managed.
  • the development support device 10 can import a file (input list L2 described later) edited by the user using spreadsheet software such as Excel (registered trademark). For example, the development support device 10 imports the output list L1 updated by the user as the input list L2.
  • the development support device 10 stores the memory of its own device by the comments attached to each element (eg, each array element or each structure member) of the variable (eg, array type variable or structure type variable) in the input list L2. Update the comment for each element saved in the part. Then, the development support device 10 is a comment (comment) attached to each array element so that the user can understand the meaning of each array element of the array type variable, for example, at a place where the array type variable is used in the program. The comment updated according to the updated output list L1) is displayed.
  • the user can easily switch the comment displayed by the development support device 10, for example, the language in which the comment is written, by switching the input list L2 to be imported into the development support device 10.
  • the development support device 10 import the list L1 (2) in which the comment is written in Japanese instead of the list L1 (1) in which the comment is written in English, the user can convert the comment written in English into Japan. You can switch to comment in word notation.
  • the output list L1 output by the development support device 10 is a file that can be edited by Excel (registered trademark), and the development support device 10 is suitable for being edited and used by an external device or software.
  • the output list L1 is output in the data format.
  • variables that can be represented as descendant nodes in a tree structure (tree) whose ancestor node is a variable for example, variables that are array elements or structure members are referred to as “elements”. It may be called “variable (second variable)”.
  • a comment about "a variable that can be represented as a descendant node of a tree whose ancestor node is a certain variable” may be referred to as an "element comment”. That is, a comment about an "element variable” is called an “element comment” and may be distinguished from a “comment” which is a comment about a "variable other than an element variable”.
  • An “element comment” is, for example, an array element or a structure member when the type of a variable is at least one of an array type and a structure type in a variable declaration used in the program development environment provided by the development support device 10. It is a comment that can be set for. That is, the "element comment” is a comment on a variable (element variable, second variable) that can be represented as a descendant node of a tree having a certain variable (first variable) as an ancestor node.
  • variable table screen is an edit screen that describes the variables used in the program in a table format, and you can check, edit (update) the variable name, variable data type, comments, etc. of the variable.
  • the development support device 10 is a development support device that assists the user in creating a program executed by the PLC 20 (control device).
  • the development support device 10 receives an operation reception unit 110 (particularly, an operation reception unit 110) that receives a user operation instructing the variable used in the program to externally output a comment that the user can arbitrarily add according to the definition of the variable.
  • an operation reception unit 110 particularly, an operation reception unit 110
  • Element comments (comments) for each of the element variables (second variables) are given to the name of the first variable and the identification information for identifying each of the plurality of second variables with respect to the first variable.
  • an output unit 120 that outputs as a file (output list L1) in a data format that can be edited by at least one of a text editor and a table calculation software is provided.
  • the development support device 10 associates element comments for each of the plurality of second variables with the name of the first variable and the identification information, and at least the text editor and spreadsheet software. Output as an editable data format file on one side.
  • the development support device 10 has the effect of being able to output a list of element comments for each of the plurality of second variables in a format that is easy for the user to check and edit. That is, the development support device 10 has an effect that the user can easily confirm the element comment for each of the plurality of second variables and easily edit the element comment.
  • the development support device 10 outputs the element comment as a file in a format that can be edited by the user using spreadsheet software or the like, the user can use the file, for example, to make an element comment in each of a plurality of languages. It has the effect of being able to create and manage files. For example, the user copies and pastes the output list L1 output by the development support device 10 to generate a plurality of lists L1 (1) to L1 (n), and creates a plurality of lists L1 (1) to L1 (n). In each, element comments can be created and managed in each of multiple languages. That is, the development support device 10 has an effect that the user can easily generate and easily manage the element comments described in each of the plurality of languages for each of the plurality of second variables. Play.
  • the first variable is an array type variable or a structure type variable
  • each of the plurality of second variables may be an array element of the array type variable or a member of the structure type variable.
  • the development support device 10 makes element comments for each of the plurality of second variables that are members of the array element or the structure type variable of the array type variable, and is the array type variable or the structure type variable. Output in association with the name of the first variable and the identification information.
  • the development support device 10 provides a list of element comments for each of the array elements of the array type variable or the plurality of second variables that are members of the structure type variable in a format that is easy for the user to check and edit. It has the effect of being able to output.
  • the output unit 120 may output element comments for each of the plurality of second variables in association with one character string including the name of the first variable and the identification information. Good.
  • the development support device 10 associates element comments for each of the plurality of second variables with one character string including the name of the first variable and the identification information, and performs spreadsheet calculation. Output as a file that can be edited with software. For example, the development support device 10 displays a list in which (A) one character string including the name of the first variable and the identification information and (B) the element comment are displayed side by side in a spreadsheet software or the like. Output in a data format that can be edited with.
  • the development support device 10 provides element comments for each of the plurality of second variables, the name of the first variable, and the identification information, for example, as a file in a data format that can be edited by spreadsheet software. It is output in association with one character string including.
  • one character string including the name of the first variable and the identification information is stored in one cell, and element comments for each of the plurality of second variables are also stored in one cell. become. Therefore, the user can see at a glance the relationship between the element comment for each of the plurality of second variables, the second variable to which the element comment is attached, and the first variable which is the ancestor node of the second variable. You can check with. For example, the user can check at a glance a list in which one character string including the name of the first variable and the identification information and one character string indicating the element comment are associated with each other in adjacent columns. You will be able to.
  • the development support device 10 has the effect of being able to output a list of element comments for each of the plurality of second variables in a format that is extremely visible to the user and easy to edit.
  • the identification information includes path information indicating a path from the first variable to each of the plurality of second variables in the tree structure.
  • the path information indicates each of one or more parent-child relationships from the first variable to each of the plurality of second variables in the tree structure according to the following rules. That is, the path information includes (1) when the variable corresponding to the parent node is an array type variable and the variable corresponding to the child node is an array element of the array type variable, the parent-child relationship is described. , Parentheses ([]) are used. Further, the path information includes (2) when the variable corresponding to the parent node is a structure type variable and the variable corresponding to the child node is a member of the structure type variable, the parent-child relationship is described.
  • the path information of a certain element variable is "information for identifying a descendant node corresponding to the certain element variable in a tree having the certain element variable as a descendant node” and "the certain element in the tree”. Information indicating the hierarchy of descendant nodes corresponding to variables "is included.
  • the development support device 10 outputs element comments for each of the plurality of second variables in association with the identification information including the path information and the name of the first variable. Then, in the path information, each of the one or more parent-child relationships from the first variable to each of the plurality of second variables has a parent and a child as an array type variable and an array element of the array type variable. Or whether the parent and child are a structure type variable and a member of the structure type variable.
  • the development support device 10 has the effect of being able to output the file by allowing the user to confirm the relationship between the first variable and the plurality of second variables.
  • the development support device 10 is the second variable an array element of the first variable which is an array type variable, or is the second variable a structure member of the first variable which is a structure type variable?
  • the development support device 10 whose outline has been described so far will be described next with reference to FIG. 1 for details of its configuration, and then the outline of the processing executed by the development support device 10 with reference to FIG. I will explain.
  • the conventional development support device cannot show the element comment to the user in a list format on the “variable table screen”.
  • a variable is represented as a descendant node of a tree whose ancestor node is a variable
  • the conventional development support device has low convenience and operability for a user who wants to confirm or edit an element comment for each of a plurality of element variables.
  • the user who wants to confirm the comment of "a variable that can be represented as a descendant node of a tree whose ancestor node is a certain variable” is a variable corresponding to the ancestor node (eg, parent node). I had to open the element comment dialog after selecting.
  • the development support device 10 sets element comments for each of a plurality of element variables as a list format list, particularly a list format list (output list) in a data format that can be edited by spreadsheet software or the like. Output as L1).
  • the user can easily confirm the element comment indicating the meaning given to each array element by using the output list L1 output by the development support device 10 for each array element of the array type variable. it can. Further, for example, the user makes element comments in each of the plurality of languages L1 (1) to L1 (n) generated by copying and pasting the output list L1 output by the development support device 10. Can be described. By preparing a plurality of lists L1 (1) to L1 (n) in which element comments are described in each of a plurality of languages in advance, the user can support development by simply switching the list to be imported into the development support device 10. The notation language of the element comment displayed by the device 10 can be easily switched.
  • FIG. 1 is a block diagram showing a main configuration of the development support device 10. As shown in FIG. 1, the development support device 10 includes an operation reception unit 110, an output unit 120, a storage unit 130, an input unit 140, and a comment update unit 150 as functional blocks.
  • the development support device 10 includes a programming support unit (not shown) that provides an environment for programming a user program as a control program to be executed by the PLC 20 according to a control purpose. You may be. However, in order to ensure the conciseness of the description, the configuration not directly related to the present embodiment is omitted from the description and the block diagram. However, the development support device 10 may have the omitted configuration in accordance with the actual situation of implementation.
  • the CPU central processing unit
  • NVRAM non-Volatile random access memory
  • the operation reception unit 110 accepts a user operation instructing the execution of the output process (export process) of the output list L1 or the user operation instructing the execution of the input process (import process) of the input list L2.
  • the operation reception unit 110 includes an output instruction reception unit 111 and an input instruction reception unit 112.
  • the output instruction receiving unit 111 receives the user operation instructing the execution of the export process, and notifies the output unit 120 of the accepted user operation.
  • the input instruction receiving unit 112 receives the user operation instructing the execution of the import process, and notifies the input unit 140 of the accepted user operation.
  • the output unit 120 lists comments (element comments) for "variables (element variables) that can be represented as descendant nodes of a tree whose ancestor node is the first variable" according to the user operation received by the output instruction reception unit 111.
  • the list indicated by (output list L1) is output.
  • the output unit 120 can refer to the second variable definition table 131B for the first variable specified in the user operation and "represent it as a descendant node in a tree having the first variable as an ancestor node". Identify multiple element variables (second variables). Further, the output unit 120 refers to the second variable definition table 131B and acquires element comments for each of the specified plurality of element variables. The output unit 120 associates each of the specified plurality of element variables with the identification information "identifies each of the specified plurality of element variables with respect to the first variable", and makes element comments for each of the specified plurality of element variables by using spreadsheet software or the like. Output to the output list L1 of the editable data format.
  • the output unit 120 outputs the element comment for each of the plurality of element variables to the output list L1 in association with the "name of the first variable” and the "identification information of each of the plurality of element variables".
  • the output unit 120 includes a first acquisition unit 121, a second acquisition unit 122, a third acquisition unit 123, and a character string generation unit 124.
  • the first acquisition unit 121 specifies the name of the first variable selected by the user in the "user operation received by the output instruction reception unit 111".
  • the first acquisition unit 121 may specify the name of the first variable selected by the user with reference to the first variable definition table 131A or the second variable definition table 131B.
  • the second acquisition unit 122 refers to the second variable definition table 131B, traces the tree whose ancestor node is the first variable selected by the user, and corresponds to the descendant node of the tree whose ancestor node is the first variable. Identify each of multiple element variables.
  • the second acquisition unit 122 refers to the second variable definition table 131B to generate identification information for identifying each of the specified plurality of element variables with respect to the first variable, and in particular, the specified plurality of elements. Generate identification information including the path information of each variable.
  • the second acquisition unit 122 uses as identification information for each of the plurality of element variables, "in a tree having the first variable as an ancestor node, a plurality of descendant nodes (that is, a plurality of descendants corresponding to each of the plurality of element variables). Identification information that identifies each of the nodes) is generated.
  • the path information is "information indicating a path (one or more parent-child relationships) from the first variable to each of a plurality of element variables in a tree having the first variable as an ancestor node".
  • the path information exists between "the first variable which is the ancestor node” and "each of the plurality of element variables which are the descendant nodes" in the "tree whose ancestor node is the first variable".
  • the path information corresponds to "information indicating an instance of a descendant node corresponding to each element variable in a tree having the first variable as an ancestor node".
  • the second acquisition unit 122 shows the parent-child relationship (relationship between the variable corresponding to the parent node and the variable corresponding to the child node) in the identification information (particularly the path information) according to, for example, the following rules. That is, when the variable corresponding to the parent node is an array type variable and the variable corresponding to the child node is an array element of the array type variable, the second acquisition unit 122 sets the parent-child relationship in parentheses ([]). Is shown using. When the variable corresponding to the parent node is a structure type variable and the variable corresponding to the child node is a member of the structure type variable, the second acquisition unit 122 uses a period (.) For the parent-child relationship. Shown.
  • the third acquisition unit 123 refers to the second variable definition table 131B and acquires element comments for each of the plurality of element variables specified by the second acquisition unit 122.
  • the character string generation unit 124 generates the following character strings for each of the plurality of element variables specified by the second acquisition unit 122. That is, the character string generation unit 124 has the name of the first variable specified by the first acquisition unit 121 and the "identification information of each of the plurality of element variables (each of the plurality of element variables) generated by the second acquisition unit 122. (Including path information) ”and, to generate one character string.
  • One character string generated by the character string generation unit 124 for each of the plurality of element variables is also referred to as a "comment name”.
  • the output unit 120 associates the "element comment for each of the plurality of element variables" acquired by the third acquisition unit 123 with the comment name of each of the plurality of element variables, and in at least one of the text editor and the spreadsheet software. Output to the editable output list L1.
  • the input unit 140 takes in the input list L2 according to the user operation (import process execution instruction) received by the operation reception unit 110.
  • the input list L2 is a list in which element comments about "element variables that can be represented as descendant nodes of a tree having a certain first variable as an ancestor node" are shown in a list format, and the contents are updated by the user, for example.
  • the output list L1 is obtained.
  • the comment update unit 150 updates the element comment in the second variable definition table 131B of the storage unit 130 according to the contents of the input list L2 taken in by the input unit 140.
  • the comment update unit 150 includes a character string analysis unit 151, a first specific unit 152, a second specific unit 153, and a third specific unit 154.
  • the character string analysis unit 151 extracts the name of the first variable from the comment name of the input list L2 taken in by the input unit 140, and notifies the first specific unit 152 of the extracted name of the first variable.
  • the first specifying unit 152 identifies the first variable from the "name of the first variable" extracted from the comment name of the input list L2.
  • the first specific unit 152 notifies the second specific unit 153 of the specified first variable.
  • the second specific unit 153 acquires the "node instance" corresponding to the "comment name" of the input list L2 with reference to the map information 132. Then, the second specific unit 153 is an element in which the element comment is stored in the input list L2 from the first variable specified by the first specific unit 152 and the "node instance" acquired by referring to the map information 132. Identify the variable.
  • the description rule of each "comment name" in the input list L2 is the same as the description rule of the "comment name” in the output list L1. Therefore, the second specific unit 153 stores the element comment in the input list L2 directly from the "comment name" of the input list L2 in the tree having the first variable as the ancestor node without referring to the map information 132. Identification information for identifying the element variable may be acquired. In other words, the second specific unit 153 stores the element comment in the input list L2 including the "path information of the element variable in which the element comment is stored in the input list L2" from the "comment name” of the input list L2. The "identification information of the element variable" may be extracted.
  • the third specific unit 154 acquires the "element comment associated with the comment name in the input list L2" from the input list L2 taken in by the input unit 140. That is, the third specific unit 154 acquires the "element comment in the input list L2" for the "element variable uniquely specified by the comment name of the input list L2" from the input list L2.
  • the comment update unit 150 updates the element comment of the element variable specified by the second specific unit 153 in the second variable definition table 131B by the element comment acquired from the input list L2 by the third specific unit 154.
  • the storage unit 130 is a storage device that stores various data used by the development support device 10.
  • the storage unit 130 includes (1) a control program, (2) an OS program, (3) an application program for executing various functions of the development support device 10, and (4).
  • Various data to be read when the application program is executed may be stored non-temporarily.
  • the data of (1) to (4) above may be, for example, ROM (read only memory), flash memory, EPROM (Erasable Programmable ROM), EEPROM (registered trademark) (Electrically EPROM), HDD (Hard Disc Drive), or the like.
  • 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 calculation and calculation results in the process of various processes executed by the development support device 10, and is a volatile memory such as RAM (Random Access Memory). It consists of devices. Which data is stored in which storage device is appropriately determined from the purpose of use, convenience, cost, physical restrictions, and the like of the PLC 20.
  • the storage unit 130 further stores the variable definition table 131 and the map information 132.
  • the variable definition table 131 includes a first variable definition table 131A that stores comments and the like for variables other than element variables, and a second variable definition table 131B that stores element comments and the like for element variables.
  • the first variable definition table 131A stores a set of variables other than element variables (for example, the first variable) such as "variable name, data type, and comment".
  • a set of "variable name, data type, and comment" of each of a plurality of "variables other than element variables” is set as each attribute of a plurality of "variables other than element variables”. It is stored in a list format. The details of the first variable definition table 131A will be described later with reference to FIG.
  • the name of the variable (first variable) corresponding to the ancestor node of the tree in which each of the plurality of element variables is a descendant node, the hierarchical structure of the tree, and the elements. Stores comments, etc.
  • the map information 132 is information in which the content of each "comment name" in the input list L2 is associated with "information indicating each instance (node instance) of a plurality of element variables", and the details thereof are described. It will be described later with reference to FIG. As described above, in the input list L2, the element comment of each element variable is shown in association with the comment name of each element variable.
  • Each "comment name" in the input list L2, that is, the "comment name in the input list L2" of each element variable is the name of the first variable of each element variable and the identification information (including path information) of each element variable. Is shown.
  • Information indicating an instance of an element variable is information indicating "each instance of a plurality of descendant nodes corresponding to each of a plurality of element variables in a tree having the first variable as an ancestor node".
  • the second specific unit 153 can grasp the relationship of the certain element variable with respect to the first variable by using the information indicating the instance of the certain element variable, and therefore, the certain element variable is referred to as the second. It can be specified in the variable definition table 131B.
  • FIG. 3 is a diagram showing an overall outline of the processing executed by the development support device 10. That is, the development support device 10 executes the export process and edits the element comment of each element variable acquired by referring to the second variable definition table 131B with at least one of the text editor and the spreadsheet software. Output to the format output list L1. Further, the development support device 10 executes the import process and updates the element comment of each element variable in the second variable definition table 131B according to the imported input list L2.
  • FIG. 4 is a diagram showing an overall outline of output processing (export processing) executed by the development support device.
  • the output instruction receiving unit 111 acquires a user operation (output) instructing to output an element comment for each element (element variable; hereinafter, also referred to as “target variable”) of the selected first variable to the outside.
  • Instruction acquisition process, S110 That is, the output instruction receiving unit 111 receives a user operation instructing execution of the export process.
  • the first acquisition unit 121 acquires the name of the variable corresponding to the ancestor node of the target variable (that is, the first variable selected by the user) (parent node name acquisition process, S120).
  • the second acquisition unit 122 acquires (generates) identification information for identifying the target variable from the variables corresponding to other descendant nodes having the first variable as the ancestor node with reference to the second variable definition table 131B. (Identification information acquisition process, S130).
  • the array element [0] of an array-type variable named "startCondition” is represented by “0” from other array elements (eg, [1] and [2]) of the array-type variable named "startCondition”. Be identified. Therefore, the second acquisition unit 122 refers to the second variable definition table 131B to identify "0" that identifies the array element [0] of the array type variable: startCondition from the other array elements of the array type variable: startCondition. , Acquire as identification information.
  • the third acquisition unit 123 refers to the second variable definition table 131B and acquires an element comment for the target variable (comment acquisition process, S140). Then, the character string generation unit 124 generates one character string by combining the name of the first variable acquired by the first acquisition unit 121 and the identification information acquired by the second acquisition unit 122 (path character string). Generation process, S150).
  • the output unit 120 externally provides a list (output list L1) in which comments on the target variables acquired by the third acquisition unit 123 are associated with the character strings generated by the character string generation unit 124 in the path character string generation process. Output (export processing, S160).
  • the output unit 120 outputs the output list L1 as a file in a data format that can be edited by at least one of a text editor and spreadsheet software.
  • the processing (particularly, export processing) executed by the development support device 10 described so far with reference to FIG. 4 is, in other words, the control method executed by the development support device 10 is arranged as follows. Can be done. That is, the process (control method) executed by the development support device 10 is a control method of the development support device that assists the user in creating a program executed by the PLC 20 (control device), and is used in the program. An operation acceptance step (output instruction acquisition process S110) for accepting a user operation instructing an external output of an element comment that the user can arbitrarily add to a variable according to the definition of the variable, and the operation acceptance step.
  • the element comment for each of the plurality of second variables that can be represented as descendant nodes in the tree structure (tree) in which the first variable is the ancestor node is given.
  • the output step (export process S160) to be output as a file of is included.
  • control method associates element comments for each of the plurality of second variables with the name of the first variable and the identification information, and at least one of a text editor and spreadsheet software. Output as a file in an editable data format in.
  • control method has the effect of being able to output a list of element comments for each of the plurality of second variables in a format that is easy for the user to check and edit. That is, the control method has an effect that the user can easily confirm the element comment for each of the plurality of second variables and easily edit the element comment.
  • control method outputs the element comment as a file in a format that can be edited by the user using spreadsheet software or the like, the user uses the file, for example, in each of the plurality of languages. It has the effect of being able to create and manage comments. That is, the control method has an effect of enabling the user to easily generate and manage element comments described in each of the plurality of languages for each of the plurality of second variables.
  • variables other than element variables that is, variables other than "variables that can be represented as descendant nodes of a tree whose ancestor node is a certain variable
  • variables other than element variables that is, variables other than "variables that can be represented as descendant nodes of a tree whose ancestor node is a certain variable
  • variables other than element variables are, for example, first in the following data format. It is stored in the variable definition table 131A. That is, for variables other than element variables, a set of "variable name, data type, and comment" of each variable is stored in the first variable definition table 131A as an attribute of each variable in a list format.
  • FIG. 5 is a diagram showing an example of variables other than element variables stored in the first variable definition table 131A. That is, FIG. 5 shows an example of variables other than "variables that can be represented as descendant nodes of a tree having a certain variable as an ancestor node" stored in the first variable definition table 131A.
  • the array type variable named "startCondition” and the array type variable named "errorStatus” are stored in a list format together with the attributes of each variable. ing. That is, in the first variable definition table 131A, for variables other than the element variables, the variable name of each variable is stored in association with the data type of each variable and the comment of each variable.
  • the development support device 10 displays, for example, the stored contents in the first variable definition table 131A as it is on the "variable table screen”. Display (visualize).
  • element variable 1 Each array element of array type variable
  • the "variable that can be represented as a descendant node of a tree whose ancestor node is a certain variable" that is, the element variable is the second variable in the development support device 10, for example, in the following data format. It is stored in the definition table 131B. That is, in the second variable definition table 131B, each of the plurality of element variables is managed as corresponding to each of the plurality of descendant nodes of the tree having a certain variable as the ancestor node.
  • the second variable definition table 131B stores information indicating the structure of the tree, particularly information for identifying each of the plurality of descendant nodes corresponding to each of the plurality of element variables in the tree. Further, in the second variable definition table 131B, element comments for each of the plurality of element variables are associated with each of the plurality of descendant nodes corresponding to each of the plurality of element variables.
  • FIG. 6 shows an example of an element variable stored in the second variable definition table 131B ((A) in FIG. 6) and an example of an element comment about the element variable in the output list L1 ((B) in FIG. 6). It is a figure which shows. Specifically, in FIG. 6A, element comments of each array element (that is, [0], [1], [2]) of the array type variable named “startCondition” are shown. Etc. are shown in the second variable definition table 131B.
  • the development support device 10 has an array element or a structure member (element variable, that is, a second variable) with respect to a first variable (for example, an array type variable or a structure type variable, which is a first variable) corresponding to an ancestor node. Consists of a hierarchical tree as descendant nodes. For example, the development support device 10 manages the array elements [0], [1], and [2] of the array type variable: startCondition as child nodes of the tree having the array type variable: startCondition as the parent node.
  • the development support device 10 has a plurality of second variables (for example, array elements [0], [1], [2] corresponding to sibling nodes of a tree having a first variable (for example, an array type variable: startCondition) as an ancestor node. ]) are identified as follows. That is, the development support device 10 has identification information for identifying each of the plurality of second variables with respect to the first variable (in the example shown in FIG. 6A, “0”, “1”, “2”. ”) Is assigned to each of the plurality of second variables to identify each of the plurality of second variables corresponding to sibling nodes.
  • Array type variables Array elements [0], [1], and [2] corresponding to sibling nodes of a tree whose parent node is startCondition are "0", “1”, and “2", respectively, in the hierarchy indicating child nodes. "2" distinguishes it from other array elements that correspond to sibling nodes.
  • the development support device 10 stores the element comments of each element variable in the second variable definition table 131B in association with "each descendant node in the above tree corresponding to each element variable".
  • the array element: [0] of the array type variable: startCondition is stored as a child node of the tree having the array type variable: startCondition as the parent node. ..
  • the content of the "description of node” column of the second variable definition table 131B can be regarded as "information indicating an instance of each descendant node corresponding to each element variable in the above tree".
  • information indicating an instance of a child node corresponding to each element variable in a tree having each element variable as a child node is shown.
  • array element: [0] corresponds to the child node 0 in the tree having the array type variable: startCondition as the parent node. Is shown.
  • the array element: [1] of the array type variable: startCondition is stored as a child node of the tree having the array type variable: startCondition as the parent node. .. Then, the element comment for the array element: [1] of the array type variable: startCondition: "robot activation condition" is associated with the child node indicating the array element: [1] in the above tree. Further, in the "description of node” column, it is shown that the array element: [1] corresponds to the child node 1 in the tree having the array type variable: startCondition as the parent node. The same applies to the array element of the array type variable: startCondition: [2].
  • the development support device 10 executes the following process. That is, the development support device 10 refers to the second variable definition table 131B for a certain variable (first variable) selected in the above-mentioned user operation, and is a descendant node of a tree having the certain variable as an ancestor node. Each of the plurality of second variables corresponding to is specified. The development support device 10 refers to the second variable definition table 131B and acquires element comments for each of the specified plurality of second variables.
  • the development support device 10 refers to the second variable definition table 131B to acquire identification information for identifying each of the plurality of second variables, and in particular, the first of the trees having the first variable as an ancestor node.
  • the path information from the variable to each of the plurality of second variables is acquired.
  • the development support device 10 has one character including the name of the first variable and the identification information (including the path information from the first variable to each of the plurality of second variables) for identifying each of the plurality of second variables.
  • the output list L1 associated with the element comments for each of the plurality of second variables is output to the column.
  • FIG. 6 shows an example in which element comments for each array element of the array type variable: startCondition illustrated in (A) of FIG. 6 are output to the output list L1.
  • the development support device 10 executes the following process.
  • the output unit 120 (particularly, the first acquisition unit 121) specifies the name of the first variable selected by the user, that is, the array type variable: the name of the startCondition, "startCondition".
  • the output unit 120 (particularly, the second acquisition unit 122) refers to the second variable definition table 131B, traces a tree having an array type variable: startCondition as an ancestor node, and a plurality of nodes corresponding to a plurality of descendant nodes in the tree. Specify the second variable of. That is, the second acquisition unit 122 specifies the array elements [0], [1], and [2] of the array type variable: startCondition. Then, the output unit 120 identifies identification information (that is, "0") for identifying each of the plurality of second variables (for example, array elements [0], [1], and [2]) with respect to the first variable. , "1", "2").
  • the output unit 120 (particularly, the second acquisition unit 122) refers to the second variable definition table 131B and obtains the path information of each of the array elements [0], [1], and [2] of the array type variable: startCondition. Generate.
  • the second acquisition unit 122 has the array elements [0], [1], and [2] which are descendant nodes from the array type variable: startCondition which is the ancestor node. Identify the path to.
  • the second acquisition unit 122 is located between the ancestral node, the array type variable: startCondition, and the descendant nodes, the array elements [0], [1], and [2], in the above tree. Identify one or more parent-child relationships.
  • the second acquisition unit 122 generates path information indicating the specified path (one or more parent-child relationships). "Identification information for identifying each of the plurality of second variables with respect to the first variable” is “a path from the first variable to each of the plurality of second variables in a tree having the first variable as an ancestor node”. "Path information indicating" is included.
  • the variable whose variable name is "startCondition" is an array type variable
  • the array elements of the array type variable: startCondition are array elements [0], [1], and [2].
  • the second acquisition unit 122 indicates the parent-child relationship between the array type variable and the array element using parentheses ([]) in the identification information (particularly, the path information).
  • the second acquisition unit 122 refers to the second variable definition table 131B, and there is one parent-child relationship between the array type variable: startCondition and the array element [0], and the parent-child relationship is the array type. Identify the parent-child relationship between the variable and the array element.
  • the second acquisition unit 122 identifies the array element [0] from other array elements ([1], [2]) corresponding to sibling nodes in the tree having the array type variable: startCondition as the parent node. As information, "1" is specified. Therefore, the second acquisition unit 122 generates "[0]" as the identification information including the path information for the array element [0]. Similarly, the second acquisition unit 122 generates "[1]" for the array element [1] as the identification information including the path information, and also for the array element [2] as the identification information including the path information. , "[2]" is generated.
  • the element variable corresponding to the path information is an array element of the first variable which is an array type variable, and is identified by "0” from other array elements of the first variable. Indicates that.
  • the element variable corresponding to the path information is the array element of the first variable which is an array type variable, and "1" is selected from the other array elements of the first variable. Indicates that it is identified by.
  • the element variable corresponding to the path information is the array element of the first variable which is an array type variable, and by "2" from the other array elements of the first variable. Indicates that it will be identified.
  • the output unit 120 (particularly, the character string generation unit 124) generates one character string including the name of the first variable (startCondition) and the identification information of each of the plurality of second variables.
  • the character string generation unit 124 has one character string (that is, "startCondition [0]”) including “startCondition” and identification information ([0]) of the array element [0] for the array element [0]. To generate. Similarly, the character string generation unit 124 generates "startCondition [1]” for the array element [1] and “startCondition [2]” for the array element [2].
  • the output unit 120 (particularly, the third acquisition unit 123) refers to the second variable definition table 131B and has a plurality of second variables (for example, array elements) corresponding to the descendant nodes of the tree having the first variable as the ancestor node. Get element comments for each of [0], [1], [2]). Specifically, the third acquisition unit 123 refers to the second variable definition table 131B and acquires the element comment: container start condition for the array element [0]. Similarly, the third acquisition unit 123 acquires the element comment for the array element [1]: the robot activation condition with reference to the second variable definition table 131B, and the element comment for the array element [2]: XXX activation. Get the condition.
  • the third acquisition unit 123 acquires the element comment for the array element [1]: the robot activation condition with reference to the second variable definition table 131B, and the element comment for the array element [2]: XXX activation.
  • the output unit 120 sets each element comment of the plurality of second variables into one character string including the "name of the first variable corresponding to the ancestor node and the identification information" of each of the plurality of second variables. ], And output to the output list L1.
  • the output unit 120 associates the element comment for the array element [0]: the container start condition with the comment name of "startCondition [0]” and puts it in the output list L1.
  • the output unit 120 outputs the element comment for the array element [1]: the robot activation condition to the output list L1 in association with the comment name of "startCondition [1]”.
  • the output unit 120 outputs the element comment: XXX start condition for the array element [2] to the output list L1 in association with the comment name of "startCondition [2]".
  • FIG. 7 shows an example of element variables stored in the second variable definition table 131B ((A) of FIG. 7) and an example of element comments about the element variables in the output list L1 (FIG. 7), as in FIG. (B)) is shown.
  • FIG. 7A for each structure member of the structure type variable named “startCondition”, element comments of each structure member and the like are stored in the second variable definition table 131B. An example is shown.
  • the structure members of the structure type variable named "startCondition" are Member1 and Member2.
  • the development support device 10 manages the structure members Member1 and Member2 of the structure type variable: startCondition as child nodes of the tree having the structure type variable: startCondition as the parent node.
  • the structure members Member1 and Member2 corresponding to the sibling nodes are distinguished from other array elements corresponding to the sibling nodes by "Member1" or "Member2", respectively, in the hierarchy indicating the child nodes.
  • the structure member: Member1 of the structure type variable: startCondition is stored as a child node of the tree having the structure type variable: startCondition as a parent node.
  • the element comment for the structure member: Member1 of the structure type variable: startCondition: "container start condition" is associated with the child node indicating the structure member: Member1 in the above tree.
  • the structure member: Member1 corresponds to the child node in the tree having the structure type variable: startCondition as the parent node.
  • the structure member of the structure type variable: startCondition: Member2 is stored as a child node of the tree having the structure type variable: startCondition as the parent node. .. Then, the element comment for the structure member: Member2 of the structure type variable: startCondition: "robot activation condition" is associated with the child node indicating the structure member: Member2 in the above tree. Further, in the "description of node” column, it is shown that the structure member: Member2 corresponds to the child node in the tree having the structure type variable: startCondition as the parent node.
  • FIG. 7B shows an example in which element comments for each structure member of the structure type variable: startCondition illustrated in FIG. 7A are output to the output list L1.
  • the development support device 10 executes the following process.
  • the first acquisition unit 121 specifies "startCondition" which is the name of the structure type variable: startCondition.
  • the second acquisition unit 122 refers to the second variable definition table 131B, traces the tree whose ancestor node is the first variable, and has a plurality of second variables corresponding to the descendant nodes of the tree whose ancestor node is the first variable. (For example, each of the structure members Member1 and Member2) is specified.
  • the output unit 120 acquires identification information (that is, Member1 or Member2) for identifying each of the plurality of second variables (for example, the structure members Member1 and Member2) with respect to the first variable.
  • the identification information includes path information.
  • the variable whose variable name is "startCondition" is a structure type variable
  • the structure members of the structure type variable: startCondition are the structure members Member1 and Member2.
  • the second acquisition unit 122 indicates the parent-child relationship between the structure type variable and the structure member in the identification information (particularly, the path information) by using a period (.).
  • the second acquisition unit 122 refers to the second variable definition table 131B, and there is one parent-child relationship between the structure variable: startCondition and the structure member Member1, and the parent-child relationship is the structure type variable. Identifies that there is a parent-child relationship between and the structure member. Further, the second acquisition unit 122 uses "Member1" as information for identifying the structure member Member1 from other structure members (Member2) corresponding to sibling nodes in a tree having a structure type variable: startCondition as a parent node. To identify. Therefore, the second acquisition unit 122 generates ".Member1" as the identification information including the path information for the structure member Member1. Similarly, the second acquisition unit 122 generates ".Member2" as the identification information including the path information for the structure member Member2.
  • the element variable corresponding to the path information is a structure member of the first variable which is a structure type variable, and is identified by “Member1” from other structure members of the first variable. It shows that it will be done.
  • the element variable corresponding to the path information is a structure member of the first variable which is a structure type variable, and the other structure members of the first variable are "Member2". Is identified by.
  • the character string generation unit 124 generates the following one character string for the structure member Member1 including the name of the first variable (startCondition) and the identification information (.Member1) of the structure member Member1. That is, the character string generation unit 124 generates one character string "startCondition.Member1" for the structure member Member1. Similarly, the character string generation unit 124 generates one character string "startCondition.Member2" for the structure member Member2.
  • the output unit 120 (particularly, the third acquisition unit 123) refers to the second variable definition table 131B to acquire the element comment for the structure member Member1: the container start condition, and the element comment for the structure member Member2: Get the robot start condition.
  • the output unit 120 associates the element comment for the structure member Member1: the container start condition with the comment name of "startCondition.Member1" in the output list L1. Output. Similarly, the output unit 120 outputs the element comment for the structure member Member2: the robot activation condition to the output list L1 in association with the comment name of "startCondition.Member2".
  • FIG. 8 shows an example of the element variables stored in the second variable definition table 131B, as in FIGS. 6 and 7. Specifically, in FIG. 8, for an array type variable having a structure type variable as an array element, which is named “startCondition”, element comments for each array element and each structure member are shown in the second variable definition table 131B. An example stored in is shown. In the example shown in FIG. 8, each array element (that is, [0], [1]) of the array type variable: startCondition is a structure type variable, and the structure members of each array element which is a structure type variable are Member1 and It is Member2.
  • the development support device 10 is layered with respect to the array type variable: startCondition corresponding to the ancestor node, with the structure type variables [0] and [1] as child nodes and the structure members Member1 and Member2 as grandchild nodes. Make up the tree.
  • the development support device 10 uses at least one of "0, 1, Member1, and Member2" as identification information, and each of the plurality of element variables corresponds to a sibling node of the same hierarchy in the above tree. Identify from the element variables of. For example, the development support device 10 distinguishes each of the array elements [0] and [1] of the array type variable: startCondition by using "0" or "1” as identification information. Further, the development support device 10 distinguishes each of the structure members Member1 and Member2 of the structure type variable [0] by using "Member1" or “Member2" as identification information. Further, the development support device 10 provides identification information in which each of the element variables corresponding to each of the four grandchild nodes of the above tree is a combination of "0" or "1” and "Member 1" or “Member 2". Use to distinguish.
  • each array element (that is, [0], [1]) of the array type variable: startCondition is a second variable as a child node of the tree having the array type variable: startCondition as a parent node. It is stored in the definition table 131B.
  • each array element of the array type variable: startCondition uses the information (“0”, “1” in the example shown in FIG. 8) that identifies each array element with respect to the array type variable. Has been identified.
  • each of the array elements [0] and [1] which are the array elements of the array type variable: startCondition having the structure type variable as the array element, is referred to as the structure type variable [0] and [1].
  • each structure member of the structure type variable [0] is stored in the second variable definition table 131B as child nodes of the tree having the structure type variable [0] as the parent node.
  • each structure member of the structure type variable [0] is stored in the second variable definition table 131B as a grandchild node of a tree having an array type variable: startCondition as an ancestor node.
  • each structure member of the structure type variable [0] is information that identifies each structure member with respect to the structure type variable [0] (in the example of FIG. 8, "Member 1" or "Member 1" or " It has been identified using "Member 2").
  • each structure member of the structure type variable [1] is stored in the second variable definition table 131B as child nodes of the tree having the structure type variable [1] as the parent node. ..
  • each structure member of the structure type variable [1] is stored in the second variable definition table 131B as a grandchild node of a tree having an array type variable: startCondition as an ancestor node.
  • each structure member of the structure type variable [1] is information that identifies each structure member with respect to the structure type variable [1] (in the example of FIG. 8, "Member 1" or "Member 1" or " It has been identified using "Member 2").
  • Array type variable Array element of startCondition: Element for [0] Comment: "Starting condition of process A" is associated with a child node indicating array element: [0] in the above tree. Further, in the "description of node” column, it is shown that the array element: [0] corresponds to the child node 0 in the tree having the array type variable: startCondition as the parent node.
  • the structure member: Member1 of the structure type variable [0] is stored as a child node of the tree having the structure type variable [0] as the parent node. That is, in the second variable definition table 131B of FIG. 8, the structure member: Member1 of the structure type variable [0] is stored as a grandchild node of the tree having the array type variable: startCondition as the ancestor node. Then, the element comment for the structure member: Member1 of the structure type variable [0]: "Container start condition (step A)" is associated with the node indicating the structure member: Member1 of the structure type variable [0] in the above tree. Has been done. Further, in the "description of node” column, the structure member: Member1 of the structure type variable [0] corresponds to a child node in the tree whose parent node is the structure type variable whose array element: [0]. It is shown.
  • FIG. 9 shows an example of element comments about element variables in the output list L1.
  • element comments for each of a plurality of element variables included in the “array type variable (first variable) named“ startCondition ”with the structure type variable as the array element” illustrated in FIG. 8 are output.
  • An example output in the list L1 is shown.
  • the development support device 10 sets the development support device 10. Execute the following processing.
  • the first acquisition unit 121 specifies "startCondition" as the name of the first variable.
  • the second acquisition unit 122 refers to the second variable definition table 131B, traces the tree whose ancestor node is the first variable, and has a plurality of second variables corresponding to the descendant nodes of the tree whose ancestor node is the first variable. Identify each of.
  • the second acquisition unit 122 includes array elements [0] and [1], structure members Member1 and Member2 of the structure type variable [0], and structure members Member1 and Member2 of the structure type variable [1], respectively. To identify.
  • the second acquisition unit 122 acquires identification information (including path information of each of the plurality of second variables) for identifying each of the plurality of second variables.
  • the second acquisition unit 122 refers to the second variable definition table 131B, and there is one parent-child relationship between the array type variable: startCondition and the array element [0], and the parent-child relationship is Identify the parent-child relationship between array variables and array elements.
  • the second acquisition unit 122 uses the array type variable: startCondition as a parent node as information for identifying the array element [0] from other array elements ([1]) corresponding to sibling nodes. 1 ”is specified. Therefore, the second acquisition unit 122 generates "[0]" as the identification information including the path information for the array element [0]. Similarly, the second acquisition unit 122 generates "[1]" as identification information including path information for the array element [1].
  • the second acquisition unit 122 uses the array type variable: startCondition as a parent node as information for identifying the array element [0] from other array elements ([1]) corresponding to sibling nodes. 1 ”is specified. Therefore, the second acquisition unit 122 generates "[0]" as the identification information including the path information for the array element [0].
  • the element variable corresponding to the path information is an array element of the first variable which is an array type variable, and is identified by "0" from other array elements of the first variable. Indicates that.
  • the second acquisition unit 122 refers to the second variable definition table 131B, and has two parent-child relationships between the array type variable: startCondition and the structure member of the structure type variable [0]: Member1. Identify the existence of.
  • the second acquisition unit 122 has a first parent-child relationship in which the array type variable: startCondition is the parent node and the structure type variable [0] is the child node, and the first parent-child relationship is the array type variable. Identify a parent-child relationship with an array element. Then, the second acquisition unit 122 receives "as information for identifying the array element [0] from other array elements ([1]) corresponding to sibling nodes in the tree having the array type variable: startCondition as the parent node. 1 ”is specified. Therefore, the second acquisition unit 122 generates "[0]" as the identification information including the path information for the array element [0].
  • the second acquisition unit 122 has a second parent-child relationship in which the structure type variable [0] is a parent node and the structure member: Member1 of the structure type variable [0] is a child node, and the second parent-child relationship exists.
  • the relationship identifies that it is a parent-child relationship between a structure type variable and a structure member.
  • the second acquisition unit 122 identifies "Member 1" as information for identifying the Member 1 from other structure members (Member 2) corresponding to the sibling nodes in the tree having the structure type variable [0] as the parent node. To do. Therefore, the second acquisition unit 122 generates ".Member1" as the identification information including the path information for the array element [0].
  • the second acquisition unit 122 uses the following character string as identification information for identifying the structure member: Member1 of the structure type variable [0] from other sibling nodes with respect to the array type variable: startCondition as the ancestor node. To generate. That is, the second acquisition unit 122 generates "[0] .Member1" as the identification information of the structure member: Member1 of the structure type variable [0].
  • the path information with "[0] .Member1" is the array element [0] in which the element variable corresponding to the path information is the array element of the "first variable having the structure type variable as the array element", that is, Indicates that the array element [0], which is a structure type variable, is a structure member. Further, the path information with "[0] .Member1” is such that the element variables corresponding to the path information are "0” and "Member1" from other sibling nodes of the tree having the first variable as the ancestor node. Is identified by the identification information arranged in this order.
  • the character string generation unit 124 includes one character string (that is, a character string including "startCondition” which is the name of the first variable and the identification information ([0]) of the array element [0]. "StartCondition [0]”) is generated. Further, the character string generation unit 124 has an identification information ([0] .Member1) of the structure member: Member1 of the structure type variable [0] and the structure member: Member1 of the structure type variable [0]. And, the following character string including is generated. That is, the character string generation unit 124 generates "startCondition [0] .Member1" for the structure member: Member1 of the structure type variable [0].
  • the third acquisition unit 123 refers to the second variable definition table 131B and acquires the element comment for the array element [0]: the start condition of the process A. Similarly, the third acquisition unit 123 acquires the element comment: container start condition (process A) for the structure member: Member1 of the structure type variable [0] with reference to the second variable definition table 131B.
  • the output unit 120 associates the element comment for the array element [0]: the start condition of the step A with the comment name of “startCondition [0]” in the output list L1. Output. Similarly, the output unit 120 associates the element comment for the structure member: Member1 of the structure type variable [0]: the container start condition (step A) with the comment name of "startCondition [0] .Member1". Output to the output list L1.
  • the development support device 10 (particularly, the output unit 120) limits the number of element comments to be output to one output list L1 (that is, the number of element variables to output element comments), thereby limiting the data size of the output list L1. Avoid getting too big.
  • the output unit 120 sets a maximum number (predetermined value) in advance for the number of element comments to be output to one output list L1.
  • the output unit 120 determines that the number of element comments to be output exceeds the maximum number, the element comments to be output are subjected to a plurality of output lists L1 (for example, output lists L1 (1), L1 (2), L1 (for example). 3), ... L1 (n)) is output separately.
  • the output unit 120 may divide the file (output list L1) into two or more and output the file (output list L1).
  • the development support device 10 divides the file into two or more and outputs the file. That is, when the development support device 10 determines that the total number of the second variables becomes larger than the predetermined value and the data size of the file becomes too large, the development support device 10 divides the file into two or more and outputs the file.
  • the development support device 10 makes two element comments attached to each of the plurality of second variables.
  • the above files are divided and output.
  • the development support device 10 when the total number of the plurality of second variables having each of the plurality of first variables as an ancestor node is larger than the predetermined value, the development support device 10 is attached to each of the plurality of second variables.
  • the element comment is divided into two or more files and output.
  • the data size of the file naturally increases, and if the data size becomes too large, the file is opened to check the contents or the file is edited. Can be difficult.
  • the development support device 10 can avoid a situation in which the data size of the file becomes too large and the user convenience of the file deteriorates by dividing the file into two or more. It has the effect of.
  • the output unit 120 may output all the element comments for each of the plurality of second variables in which the first variable is common to one file.
  • the development support device 10 outputs all the element comments for each of the plurality of second variables in which the first variable is common to one file. Therefore, the development support device 10 avoids that the element comments for each of the plurality of second variables having the same first variable are divided into a plurality of files, which deteriorates the visibility and convenience for the user. It has the effect of being able to.
  • the output unit 120 When the number of element comments for each of a plurality of element variables having a common variable (first variable) corresponding to the ancestor node is less than or equal to the maximum number of lines, the output unit 120 has "a plurality of common first variables". "Element comments for each of the element variables of" is output to one output list L1. That is, the output unit 120 makes sure that all the element comments for each of the plurality of element variables having the common variable corresponding to the ancestor node fit in one output list L1 and are not divided into the plurality of output lists L1. ..
  • the output unit 120 outputs the "each of the plurality of element variables having the common first variable". "Element comment for" is output separately in a plurality of output lists L1.
  • the output unit 120 when the output unit 120 outputs element comments for each of a plurality of element variables to L1 (m), the "remaining number” obtained by subtracting "the number of element comments output to the output list L1 (m)” from the maximum number. "Number” is calculated for the output list L1 (m). "M” is a natural number of "1” or more. The output unit 120 compares "the number of element comments scheduled to be output in the output list L1 (m)" with the "remaining number” calculated for the output list L1 (m).
  • the output unit 120 determines that the "remaining number" is smaller than the "number of element comments to be output to the output list L1 (m)"
  • the output destination file of the element comments to be output is output to the output list L1.
  • the development support device 10 previously stores map information 132 in which the contents of each “comment name” in the input list L2 and information indicating each instance (node instance) of the plurality of element variables are associated with each other in the storage unit 130. It is stored.
  • the "comment name” in the output list L1 includes the path information of each of the plurality of element variables corresponding to the descendant nodes (the name of the first variable corresponding to the ancestor node). ) Is described.
  • the description rule of each "comment name" in the input list L2 is the same as the description rule of the "comment name” in the output list L1. That is, the "comment name” includes the name of the variable (first variable) corresponding to the ancestor node and the identification information for identifying each of the plurality of second variables with respect to the first variable.
  • the identification information includes "path information indicating a path from the first variable to each of the plurality of second variables in a tree having the first variable as an ancestor node".
  • the path information is information that identifies each of one or more parent-child relationships that exist between the first variable and each of the plurality of second variables in a tree having the first variable as an ancestor node.
  • the parent-child relationship is shown using parentheses ([]). Further, in the path information, when the variable corresponding to the parent node is a structure type variable and the variable corresponding to the child node is a member of the structure type variable, the parent-child relationship is indicated by using a period (.). ..
  • the "information indicating each instance of a plurality of element variables" in the input list L2 is information indicating "each instance of a plurality of descendant nodes in a tree in which each of the plurality of element variables is a descendant node".
  • “Information indicating each instance of a plurality of element variables” is "information indicating the relationship between a plurality of element variables (second variable) corresponding to descendant nodes and a variable (first variable) corresponding to an ancestor node”. You can also say that.
  • the development support device 10 may further include an input unit 140 and a comment update unit 150.
  • the input unit 140 is a data format that can be edited by at least one of a text editor and a table calculation software in which element comments for each of the second variables are described in association with the name of the first variable and the identification information.
  • the operation reception unit 110 particularly, the input instruction reception unit 112
  • the comment update unit 150 updates the element comments for each of the second variables stored in the storage unit 130 according to the file imported by the input unit 140.
  • the development support device 10 is an input list in which element comments for each of the second variables are described in association with the name of the first variable and the identification information according to the user operation. Import L2. Then, the development support device 10 updates the element comments for each of the second variables stored in the storage unit 130 according to the imported input list L2. In particular, the development support device 10 imports element comments for each of the plurality of second variables described in the input list L2 in a format in which the user can easily check the contents and easily edit the contents. , The element comment for each of the second variables stored in the storage unit 130 is updated.
  • the development support device 10 can allow the user to easily manage and easily edit the element comments for each of the second variables used by the own device by using the input list L2. It has the effect of.
  • the development support device 10 changes the input list L2 to be imported, so that the second variable used by the own device can be used.
  • the language of the element comment for each can be easily switched.
  • the user describes the element comment for a certain second variable in the input list L2 (1) described in English, the input list L2 (2) described in Japanese, the input list L2 (3) described in Chinese, and the like.
  • the input list L2 (4) written in Spanish is prepared in advance.
  • the development support device 10 can use the English element comment for the second variable by importing the input list L2 (1) described in English, and the input list L2 (2) described in Japanese. By importing, Japanese element comments for the second variable can be used.
  • the development support device 10 can use the Chinese element comment for the second variable by importing the input list L2 (3) described in Chinese, and the input described in Spanish. By importing the list L2 (4), the element comment in Spanish for the second variable can be used.
  • FIG. 10 is a diagram showing an overall outline of input processing (import) executed by the development support device.
  • the input instruction receiving unit 112 accepts a user operation instructing the execution of the import process, that is, accepts a user operation instructing the execution of the input process of the input list L2 (input instruction acquisition process, S210).
  • the comment (element comment) for the target variable which is an element variable is associated with the comment name.
  • the comment names are (i) the name of the variable (first variable) corresponding to the ancestor node of the target variable, and (ii) the target from the element variables corresponding to other descendant nodes in the tree having the first variable as the ancestor node. Includes identification information for identifying variables.
  • the comment update unit 150 extracts the name of the first variable from the comment name of the input list L2. Notify the first specific unit 152 of the name of the extracted first variable.
  • the first specifying unit 152 identifies the first variable from the "name of the first variable” extracted from the comment name of the input list L2 (first variable specifying process, S230).
  • the second specific unit 153 specifies which of the variables corresponding to the descendant nodes of the first variable is the target variable from the "identification information" extracted from the comment name of the input list L2 (the first). Two-variable identification process, S240).
  • the second specific unit 153 acquires the "node instance" corresponding to the "comment name" of the input list L2 with reference to the map information 132, and uses the acquired "node instance” to set the target variable. 2 Specify in the variable definition table 131B. Further, the third specific unit 154 specifies the comment (element comment) associated with the comment name in the input list L2, that is, acquires the element comment corresponding to the comment name from the input list L2.
  • the comment update unit 150 updates the comment in the second variable definition table 131B of the target variable specified in the second variable identification process by the comment for the target variable in the input list L2 (comment update procedure, S250). That is, the comment updating unit 150 updates the element comment in the second variable definition table 131B of the target variable specified in the second variable specifying process by the element comment acquired from the input list L2 by the third specific unit 154.
  • FIG. 11 is a diagram showing an example of map information 132. As described above, the map information 132 associates the "comment name" with the "instance".
  • the comment name "startCondition [0]” is used to identify each of the plurality of second variables with respect to the first variable and the "startCondition” which is the name of the variable (first variable) corresponding to the ancestor node.
  • Includes “[0]” which is the identification information of. "[0]” immediately after "startCondition” indicates the following information.
  • the element variable corresponding to the comment name indicates that it corresponds to a child node of a tree having a variable (first variable) whose variable name is "startCondition" as an ancestor node.
  • the element variable corresponding to the comment name indicates that it is an array element of the first variable (that is, the first variable is an array type variable).
  • the identification information is set to "0" in order to identify the element variable corresponding to the comment name from the variable (other array element) corresponding to the other child node of the tree having the first variable as the parent node. It shows that there is.
  • the comment name "startCondition [1] .Member2" includes “startCondition” which is the name of the variable (first variable) corresponding to the ancestor node. Further, the comment name “startCondition [1] .Member2” is used as identification information for identifying the element variable corresponding to the comment name from the variables corresponding to other descendant nodes having the first variable as the ancestor node. [1] .Member2 ”is included.
  • the element variable corresponding to the comment name corresponds to the grandchild node of the tree whose ancestor node is the variable (first variable) whose variable name is "startCondition”.
  • the element variable corresponding to the comment name is a structure member of the structure type variable which is the array element [1] of the first variable (that is, the first variable uses the structure type variable as an array element. It is an array type variable).
  • the identification information is "1" and "Member2". It shows that.
  • the element variable corresponding to the comment name is "a structure member of a structure type variable which is an array element [1] of the first variable", and "an array element [0] of the first variable”. ] Is identified from the "structure member" of the structure type variable. That is, the element variable corresponding to the comment name is a child node of the tree having the array element [0] of the first variable as the parent node in that the array element [1] of the first variable is the parent node. It is identified from the "corresponding variable”.
  • element variable corresponding to the comment name is "Member2 of the structure type variable which is the array element [1] of the first variable", and "the structure type which is the array element [1] of the first variable”. It is identified from other structure members of the variable (eg, Member1).
  • the node instance "[1] -Member2 node” shows the following information. That is, in the node instance "[1] -Node of Member2", a certain element variable corresponds to a grandchild node of a certain first variable, and in particular, an array element [1] of the certain first variable. Indicates that the structure type variable is a structure member.
  • a certain element variable is "1" from "variable corresponding to another grandchild node of the tree whose ancestor node is the first variable". It shows that it is identified by the identification information "Member2".
  • the second specifying unit 153 is an element variable in which an element comment is stored in the input list L2 in a tree having the first variable as an ancestor node directly from the "comment name" of the input list L2 without referring to the map information 132. Identification information for identifying is may be acquired.
  • the "node instance" in the map information 132 may be associated with the "description of the node” in the second variable definition table 131B.
  • first variable is an array type variable or a structure type variable and the second variable is an array element or a structure member.
  • the first variable is an array type variable or a structure type variable and the second variable is an array element or a structure member.
  • the second variable may be any variable that can be represented as a descendant node of a tree whose ancestor node is the first variable.
  • the functional blocks of the development support device 10 are realized by a logic circuit (hardware) formed in an integrated circuit (IC chip) or the like. It may be realized by software using a CPU (Central Processing Unit).
  • the development support device 10 is a CPU that executes instructions of a program that is software that realizes each function, and a ROM (Read Only Memory) in which the above program and various data are readablely recorded by a computer (or CPU).
  • a computer or CPU
  • it is equipped with a storage device (referred to as a "recording medium"), a RAM (RandomAccessMemory) for developing the above program, and the like.
  • the object of the present invention is achieved by the computer (or CPU) reading the program from the recording medium and executing the program.
  • the recording medium a "non-temporary tangible medium", for example, a tape, a disk, a card, a semiconductor memory, a programmable logic circuit, or the like can be used.
  • the program may be supplied to the computer via an arbitrary transmission medium (communication network, broadcast wave, etc.) capable of transmitting the program.
  • the present invention can also be realized in the form of a data signal embedded in a carrier wave, in which the above program is embodied by electronic transmission.
  • the development support device is a development support device that assists the user in creating a program executed by the control device, and defines the variables for the variables used in the program.
  • an operation reception unit that accepts a user operation instructing the user to output a comment that can be arbitrarily added to the outside, and when the operation reception unit accepts the user operation, the first variable of the variables is assigned.
  • a comment for each of a plurality of second variables that can be represented as a descendant node in a tree structure as an ancestor node identifies the name of the first variable and each of the plurality of second variables for the first variable. It is provided with identification information for the purpose of processing, and an output unit that outputs as a file in a data format that can be edited by at least one of a text editor and a table calculation software.
  • the development support device associates comments for each of the plurality of second variables with the name of the first variable and the identification information, and at least one of the text editor and the spreadsheet software. Output as an editable data format file in.
  • the development support device has the effect of being able to output a list of comments for each of the plurality of second variables in a format that is easy for the user to check and edit. That is, the development support device has an effect that the user can easily confirm the comment for each of the plurality of second variables and easily edit the comment.
  • the development support device outputs the comment as a file in a format that can be edited by the user using spreadsheet software or the like, the user can use the file, for example, to make the comment in each of a plurality of languages. It has the effect of being able to create and manage files. That is, the development support device has an effect of enabling the user to easily generate and manage comments described in each of the plurality of languages for each of the plurality of second variables.
  • the first variable is an array type variable or a structure type variable
  • each of the plurality of second variables is a member of an array element or a structure type variable of the array type variable. It may be.
  • the development support device makes a comment for each of the plurality of second variables that are members of the array element or the structure type variable of the array type variable, and the first said that is the array type variable or the structure type variable. Output in association with the name of one variable and the identification information.
  • the development support device outputs a list of comments for each of the plurality of second variables that are members of the array element of the array type variable or the structure type variable in a format that is easy for the user to check and edit. It has the effect of being able to.
  • the output unit associates comments for each of the plurality of second variables with one character string including the name of the first variable and the identification information. , May be output.
  • the development support device associates comments for each of the plurality of second variables with one character string including the name of the first variable and the identification information, and spreadsheet software. Output as an editable file with etc.
  • the development support device uses spreadsheet software or the like to display a list in which (A) one character string including the name of the first variable and the identification information and (B) the comment are displayed side by side. Output in an editable data format.
  • the development support device includes, for example, a file in a data format editable by spreadsheet software, a comment for each of the plurality of second variables, a name of the first variable, and the identification information. It is output in association with one character string.
  • one character string including the name of the first variable and the identification information is stored in one cell, and comments for each of the plurality of second variables are also stored in one cell.
  • the development support device has the effect of being able to output a list of comments for each of the plurality of second variables in a format that is extremely visible to the user and easy to edit.
  • the identification information includes path information indicating a path from the first variable to each of the plurality of second variables in the tree structure, and the path information includes the path information.
  • Each of one or more parent-child relationships from the first variable to each of the plurality of second variables in the tree structure is (1) the variable corresponding to the parent node is an array type variable and corresponds to the child node.
  • the variable to be used is an array element of the array type variable, it is indicated by using parentheses ([]).
  • the variable corresponding to the parent node is the structure type variable, and the variable corresponding to the child node is the structure. If it is a member of a body type variable, it may be indicated by using a period (.).
  • the development support device outputs a comment for each of the plurality of second variables in association with the identification information including the path information and the name of the first variable. Then, in the path information, each of the one or more parent-child relationships from the first variable to each of the plurality of second variables has a parent and a child as an array type variable and an array element of the array type variable. Or whether the parent and child are a structure type variable and a member of the structure type variable.
  • the development support device has the effect of being able to output the file by allowing the user to confirm the relationship between the first variable and the plurality of second variables. For example, in the development support device, whether the second variable is an array element of the first variable which is an array type variable, whether the second variable is a member of the first variable which is a structure type variable, or the first The user asks whether the two variables are members of the predetermined structure type variable of the first variable, which is an array type variable (structure type array) having each of the plurality of structure type variables as an array element. The effect is that the file can be output so that can be confirmed.
  • the output unit may divide the file into two or more and output the file.
  • the development support device when the total number of the second variables is larger than the predetermined value, the development support device divides the file into two or more and outputs the file. That is, when the development support device determines that the total number of the second variables becomes larger than the predetermined value and the data size of the file becomes too large, the development support device divides the file into two or more and outputs the file.
  • the development support device makes two or more comments attached to each of the plurality of second variables. It is divided into the above files and output. Further, for example, when the total number of the plurality of second variables having each of the plurality of the first variables as an ancestor node is larger than the predetermined value, the development support device is attached to each of the plurality of second variables. The comment is divided into two or more files and output.
  • the data size of the file naturally increases, and if the data size becomes too large, the file is opened to check the contents or the file is edited. Can be difficult.
  • the development support device can avoid a situation in which the data size of the file becomes too large and the user convenience of the file deteriorates by dividing the file into two or more. It has the effect of.
  • the output unit may output all comments for each of the plurality of second variables in which the first variable is common to one file.
  • the development support device outputs all the comments for each of the plurality of second variables in which the first variable is common to one file. Therefore, the development support device avoids that the comment for each of the plurality of second variables having the same first variable is divided into a plurality of files, which deteriorates the visibility and convenience for the user. It has the effect of being able to.
  • the development support device is at least one of a text editor and a table calculation software in which a comment for each of the second variables is described in association with the name of the first variable and the identification information.
  • the input unit for importing the file instructed to import and the file imported by the input unit are used.
  • a comment updating unit for updating a comment for each of the second variables stored in the storage unit may be further provided.
  • the development support device imports a file in which a comment for each of the second variables is described in association with the name of the first variable and the identification information according to the user operation. To do. Then, the development support device updates the comment for each of the second variables stored in the storage unit according to the imported file.
  • the development support device imports comments for each of the plurality of second variables described in a file in a format in which the user can easily check the contents and easily edit the contents, and stores the storage unit. The comment for each of the second variables stored in is updated.
  • the development support device can allow the user to easily manage and easily edit the comments for each of the second variables used by the own device by using the file. It works.
  • the development support device can change the file to be imported to comment on each of the second variables used by the device. Languages can be easily switched.
  • the user prepares in advance a file in which a comment for a certain second variable is described in English, a file in Japanese, a file in Chinese, and a file in Spanish. ..
  • the development support device can use an English comment on the second variable by importing a file described in English, and can use an English comment on the second variable by importing a file described in Japanese. Japanese comments can be used.
  • the development support device can use the Chinese comment on the second variable by importing the file described in Chinese, and by importing the file described in Spanish. Spanish comments on the second variable can be used.
  • the control method is a control method of a development support device that assists a user in creating a program executed by the control device, and is a variable of the variable used in the program.
  • An operation reception step that accepts a user operation instructing to externally output a comment that can be arbitrarily added by the user according to the definition, and when the user operation is accepted in the operation reception step, the first of the variables.
  • Comments for each of the plurality of second variables that can be represented as descendant nodes in a tree structure in which one variable is an ancestor node, the name of the first variable and the plurality of second variables with respect to the first variable. It includes identification information for identifying each, and an output step of outputting as a file in a data format editable by at least one of a text editor and a table calculation software in association with.
  • control method associates a comment for each of the plurality of second variables with the name of the first variable and the identification information in at least one of a text editor and spreadsheet software. Output as an editable data format file.
  • control method has the effect of being able to output a list of comments for each of the plurality of second variables in a format that is easy for the user to check and edit. That is, the control method has an effect that the user can easily confirm the comment for each of the plurality of second variables and easily edit the comment.
  • control method outputs the comment as a file in a format that can be edited by the user using spreadsheet software or the like, the user can use the file to make the comment in each of a plurality of languages, for example. It has the effect of being able to create and manage. That is, the control method has an effect of enabling the user to easily generate and manage comments described in each of the plurality of languages for each of the plurality of second variables.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Library & Information Science (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

配列型変数の各要素などに対するコメントを、ユーザが容易に確認し、かつ、容易に編集できるようにする。開発支援装置(10)は、各配列要素に対するコメントを、配列型変数の名称と、その配列型変数に対して各配列要素を識別するための識別情報と、に対応付けて、表計算ソフトにおいて編集可能なデータ形式のファイルとして出力する。

Description

開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
 本発明は、制御装置で実行されるプログラムをユーザが作成するのを支援する開発支援装置等に関する。
 従来、プログラマブルコントローラ(Programmable Logic Controller、以下「PLC」と略記する)等の産業用制御装置を使用した制御システムの開発を支援するための開発支援装置が知られている。例えば、下掲の特許文献1には、変数名、内部メモリアドレス、I/Oコメントからなる変数テーブルを備えた開発支援装置が開示されている。
日本国公開特許公報「特開2005-352612号公報」
 しかしながら、上述のような従来までの開発支援装置には、「或る変数を先祖ノードとする木構造における子孫ノードとして表すことのできる変数」についてのコメントをユーザが確認するためには、複数のユーザ操作が必要となり、利便性が低いという問題がある。「或る変数を先祖ノードとする木構造における子孫ノードとして表すことのできる変数」とは、例えば、配列型変数を親ノードとする木構造において、子ノードとして表すことのできる「その配列型変数の配列要素」である。また、例えば、構造体型変数を親ノードとする木構造において、子ノードとして表すことのできる「その構造体型変数のメンバ」も、「或る変数を先祖ノードとする木構造における子孫ノードとして表すことのできる変数」の一例である。以下、図12を参照して、ユーザが、従来までの開発支援装置を用いて、配列型変数の配列要素についてのコメントを確認しようとする場合に、ユーザが行う操作について、説明する。
 図12は、従来までの開発支援装置を用いて、配列型変数の配列要素についてのコメントを確認しようとする場合に、ユーザが行う操作を説明する図である。図12に例示する、従来までの開発支援装置が表示する「変数テーブル画面」において、「startCondition」という名称の配列型変数自体については、「起動条件全体」とのコメントが表示されている。同様に、「errorStatus」という名称の配列型変数自体については、「エラー全体」とのコメントが表示されている。
 しかしながら、「startCondition」という名称の配列型変数の配列要素 [0]、[1]、[2]の各々についてのコメントは、「変数テーブル画面」に表示されていない。同様に、「errorStatus」という名称の配列型変数の配列要素[0]、[1]、[2]の各々についてのコメントは、「変数テーブル画面」に表示されていない。
 図12に示すように、ユーザは、「startCondition」という名称の配列型変数の各配列要素についてのコメントを確認しようとする場合、以下の操作を行う必要がある。すなわち、ユーザは、「startCondition」という名称の配列型変数のコメント欄に表示されたソフトボタンを押下して、「startCondition」という名称の配列型変数の各配列要素の「コメント設定」ダイアログを表示させなければならない。「コメント設定」ダイアログには、「errorStatus」という名称の配列型変数の配列要素[0]、[1]、[2]の各々についてのコメント(コンテナ起動条件、ロボット起動条件、xxx起動条件)が表示されている。
 同様に、「errorStatus」変数の各配列要素のコメントを確認しようとする場合、ユーザは、「errorStatus」変数のコメント欄のソフトボタンを押下し、「errorStatus」変数の各配列要素の「コメント設定」ダイアログを表示させなければならない。
 上述の通り、従来までの開発支援装置は、配列型変数の配列要素および構造体型変数のメンバなどの「或る変数を先祖ノードとする木構造における子孫ノードとして表すことのできる変数」についてのコメントを一覧形式でユーザに示すことができない。例えば、従来までの開発支援装置は、配列型変数である「startCondition」の各配列要素についてのコメントと、配列型変数である「errorStatus」変数の各配列要素についてのコメントとを、一覧形式でユーザに示すことができない。そのため、ユーザが「或る変数を先祖ノードとする木構造における子孫ノードとして表すことのできる変数」のコメントについて、確認、編集を行おうとする場合、従来までの開発支援装置は、ユーザ利便性、操作性が低いという問題がある。
 本発明の一態様は、前記の問題点に鑑みてなされたものであり、配列型変数の配列要素および構造体型変数のメンバなどの「或る変数を先祖ノードとする木構造における子孫ノードとして表すことのできる変数」に対するコメントを、ユーザが容易に確認し、かつ、容易に編集できるようにする開発支援装置等を実現することを目的としている。
 上記の課題を解決するために、本発明の一態様に係る開発支援装置は、制御装置で実行されるプログラムをユーザが作成するのを支援する開発支援装置であって、前記プログラムで用いられる変数に対して、当該変数の定義に併せてユーザが任意で付すことのできるコメントを、外部出力するよう指示するユーザ操作を受け付ける操作受付部と、前記操作受付部によって前記ユーザ操作が受け付けられると、前記変数のうち、第1変数を先祖ノードとする木構造における子孫ノードとして表すことのできる複数の第2変数の各々に対するコメントを、前記第1変数の名称と、前記第1変数に対して前記複数の第2変数の各々を識別するための識別情報と、に対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する出力部と、を備えている。
 上記の課題を解決するために、本発明の一態様に係る制御方法は、制御装置で実行されるプログラムをユーザが作成するのを支援する開発支援装置の制御方法であって、前記プログラムで用いられる変数に対して、当該変数の定義に併せてユーザが任意で付すことのできるコメントを、外部出力するよう指示するユーザ操作を受け付ける操作受付ステップと、前記操作受付ステップにて前記ユーザ操作が受け付けられると、前記変数のうち、第1変数を先祖ノードとする木構造における子孫ノードとして表すことのできる複数の第2変数の各々に対するコメントを、前記第1変数の名称と、前記第1変数に対して前記複数の第2変数の各々を識別するための識別情報と、に対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する出力ステップと、を含んでいる。
 本発明の一態様によれば、開発支援装置は、配列型変数の配列要素および構造体型変数のメンバなどの「或る変数を先祖ノードとする木構造における子孫ノードとして表すことのできる変数」に対するコメントを、ユーザが容易に確認し、かつ、容易に編集できるようにするとの効果を奏する。
本発明の実施形態1に係る開発支援装置の要部構成を示すブロック図である。 図1の開発支援装置を含む制御システムの全体概要を示す図である。 図1の開発支援装置が実行する処理の全体概要を示す図である。 図1の開発支援装置が実行するエキスポート処理の一例を示すフロー図である。 第1変数定義テーブルに格納されている、要素変数以外の変数の一例を示す図である。 第2変数定義テーブルに格納されている配列型変数の各配列要素の一例と、出力リストL1における、配列型変数の各配列要素に対する要素コメントの一例と、を示す図である。 第2変数定義テーブルに格納されている構造体型変数の各構造体メンバの一例と、出力リストL1における、構造体型変数の各構造体メンバに対する要素コメントの一例と、を示す図である。 第2変数定義テーブルに格納されている、配列型変数の配列要素である構造体型変数の各構造体メンバの一例を示す図である。 出力リストL1における、配列型変数の配列要素である構造体型変数の各構造体メンバに対する要素コメントの一例を示す図である。 図1の開発支援装置が実行するインポート処理の一例を示すフロー図である。 マップ情報の一例を示す図である。 従来までの開発支援装置を用いて、配列型変数の配列要素についてのコメントを確認しようとする場合に、ユーザが行う操作を説明する図である。
 〔実施形態1〕
 以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図1から図12に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。本実施の形態においては、例えば開発支援装置10を開発支援装置の典型例として説明を行う。本発明の一態様に係る開発支援装置10についての理解を容易にするため、先ず、開発支援装置10を含む制御システム1の概要を、図2を用いて説明する。
 §1.適用例
 (制御システムの全体概要)
 図2は、開発支援装置10を含む制御システム1の全体概要を示す図である。制御システム1は、マスタ装置としてのPLC(Programmable Logic Controller)20と、マスタ装置にネットワーク(フィールドネットワーク60)を介して接続される1つ以上のスレーブ装置40と、を含むマスタスレーブ制御システムである。PLC20は、フィールドネットワーク60を介したデータ伝送を管理しているという意味で「マスタ装置」と呼ばれる。
 フィールドネットワーク60に複数のPLC20が接続される場合には、いずれか1つのPLC20がマスタ装置となり、残りのPLC20がスレーブ装置になる場合もある。また、PLC20およびスレーブ装置40のいずれとも異なる制御主体がマスタ装置になってもよい。すなわち、「マスタ装置」および「スレーブ装置」は、フィールドネットワーク60上のデータ伝送の制御機能に着目して定義されるものであり、各装置間でどのような情報が送受信されるかについては、特に限定されない。
 PLC20は、制御システム1の全体の制御を行う。具体的には、PLC20は、スレーブ装置40を介して、センサなどの入力機器であるデバイス50からの情報を入力データとして取得する。PLC20は、予め組み込まれたユーザプログラムに従って、取得した入力データを用いた演算処理を実行する。PLC20は、前記演算処理を実行して、アクチュエータなどの出力機器であるデバイス50への制御内容を決定し、その制御内容に対応する制御データを、スレーブ装置40を介して、デバイス50へと出力する。
 フィールドネットワーク60は、PLC20が受信し、またはPLC20が送信する各種データを伝送し、例えば、EtherCAT(登録商標)、PROFINET(登録商標)、MECHATROLINK(登録商標)-III、Powerlink、SERCOS(登録商標)-III、CIP Motionである。また、フィールドネットワーク60は、例えば、EtherNet/IP(登録商標)、DeviceNet、CompoNet(登録商標)などであってもよい。なお、以下では、フィールドネットワーク60上をデータフレームが順次転送されることで、PLC20とスレーブ装置40との間、または、複数のスレーブ装置40の間でデータが送受信される制御システム1について説明を行う。
 スレーブ装置40は、PLC20をマスタ装置とするネットワーク(フィールドネットワーク60)におけるスレーブ装置であり、例えば、デバイス50との通信を管理する通信カプラ等のデバイス通信管理ユニットである。スレーブ装置40は、フィールドネットワーク60に直接接続される、サーボドライバであってもよい。デバイス50は、例えばセンサなどの入力機器であり、また、例えばアクチュエータなどの出力機器である。1つ以上のデバイス50が、通信ケーブルを介して、スレーブ装置40に接続される。
 開発支援装置10は、例えばUSB(Universal Serial Bus)ケーブルである通信ケーブルを介して、PLC20に接続する。開発支援装置10は、PLC20で実行されるユーザプログラム、および、制御システム1に対する各種の設定情報などを生成するための情報処理装置である。
 開発支援装置10は、例えば、PLC20の開発環境を提供し、ユーザが、制御目的(たとえば、対象のラインおよびプロセス)に応じてユーザプログラム等のプログラムを作成する(作成・編集する)ための環境を提供する。ユーザは、開発支援装置10の提供する開発環境(プログラミングツール)を用いて、PLC20で実行させる制御プログラム(ユーザプログラム)のプログラムコードを作成する。開発支援装置10は、PLC20で実行させる制御プログラムをユーザが作成・編集するのを支援するため、デバック機能およびシミュレーション機能を有していてもよい。
 また、開発支援装置10は、例えば、PLC20による状態値の取得(入力リフレッシュ)のタイミング、および、PLC20による出力値の更新(出力リフレッシュ)のタイミングの算出および設定を実行してもよい。開発支援装置10は、PLC20の運転状態、および各種データの値などを監視してもよい。
 つまり、開発支援装置10は、PLC20のプログラミング、コンフィグレーション(構成設定)、デバッグ、メンテナンス、モニタリング機能の他、3Dモーションシミュレーションにも対応した統合開発環境を提供する装置であってもよい。また、開発支援装置10は、スレーブ装置40のための各種のパラメータの設定および調整を行ってもよい。
 開発支援装置10は、典型的には、汎用のコンピュータで構成される。例えば、開発支援装置10で実行される情報処理プログラムは、不図示のCD-ROM(Compact Disk-Read Only Memory)に格納されて流通してもよい。このCD-RO Mに格納されたプログラムは、図示しないCD-ROM駆動装置によって読取られ、開発支援装置10のハードディスクなどへ格納される。あるいは、開発支援装置10は、上位のホストコンピュータなどから、ネットワークを通じて、前記DVD-ROMに格納されたプログラムと同様のプログラムをダウンロードするように構成してもよい。
 図2に示すように、HMI(Human Machine Interface)30が、通信ケーブルを介して、PLC20に接続されてもよい。HMI30は、人間と機械とが情報をやり取りするための手段であり、具体的には、人間が機械を操作したり(機械に指示を与えたり)、機械が現在の状態・結果を人間に知らせたりする手段である。HMI30について、人間が機械に指示を与える手段としてはスイッチ、ボタン、ハンドル、ダイヤル、ペダル、リモコン、マイク、キーボード、マウスなどが含まれ、機械が現在の状態・結果等に係る情報を人間に伝える手段としては液晶画面、メーター、ランプ、スピーカーなどが含まれる。
 HMI30は、表示部と、操作部と、PLC20と通信する通信部と、各部を制御する制御部と、を備える。HMI30は、操作部へのユーザ操作に応じて、制御システム1(例えば、PLC20)の各種の設定を変更することができる。また、HMI30の表示部は、制御システム1についての所定の情報を表示する。
 開発支援装置10の提供する開発環境を利用してユーザが作成・編集するプログラムは、ユーザプログラム、モーション演算プログラム、およびシーケンス命令演算プログラム等を含む。「ユーザプログラム」は、ユーザの制御対象(例えば、対象のラインおよびプロセス)に応じて作成される。開発支援装置10は、ラダーロジック(ラダー言語)などによって記述されたラダープログラム(ソースプログラム)をコンパイルすることにより、ユーザプログラムを生成する。ラダーロジックは、論理回路を記述するための手法で、多くのPLCで採用されているプログラム言語である。ユーザプログラムは、例えば、PLC20に含まれるマイクロプロセッサで実行可能なオブジェクトプログラム形式で生成される。「モーション演算プログラム」は、ユーザプログラムによる指示に従って実行され、サーボモータドライバおよびパルスモータドライバなどのモータドライバに対して出力する指令値を実行されるごとに算出するプログラムである。「シーケンス命令演算プログラム」は、ユーザプログラムで使用される所定のシーケンス命令が実行されるときに呼び出され、該命令の内容を実現するために実行されるプログラムである。
 開発支援装置10は、或る変数(第1変数)の各要素(要素変数、第2変数)に対してユーザが設定したコメントを、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイル(後述する出力リストL1)として出力する。変数の各要素とは、例えば配列型変数の各配列要素(各配列メンバ)であり、また、例えば構造体型変数の各構造体メンバである。
 例えば、開発支援装置10は、ユーザによって指定された変数について、その変数の各要素に対するコメントを、Microsoft(登録商標)Excel(登録商標)ファイル等の、表計算ソフトで編集可能なデータ形式のファイルとして出力する。
 したがって、ユーザは、Excel(登録商標)等の表計算ソフトを用いて、出力リストL1の内容を容易に確認し、また、出力リストL1の内容を容易に編集(更新)することができる。ユーザは、Excel(登録商標)等の表計算ソフトが有する、高い一覧性および操作性を享受して、変数の各要素に対して付されたコメントを閲覧し、編集することができる。
 また、ユーザは、開発支援装置10が出力した出力リストL1をコピー&ペーストして、1つ以上のリストL1(1)、L1(2)、L1(3)、・・・L1(n)を生成することができる(「n」は「1以上の自然数」とする)。ユーザは、複数のリストL1(1)、L1(2)、L1(3)、・・・L1(n)の各々において、変数の各要素に対するコメントを、複数の言語の各々で記載しておくことによって、変数の各要素に対するコメントを、複数の言語の各々で作成し、管理することができる。
 例えば、開発支援装置10は、ユーザに指定された配列型変数v1について、配列型変数v1の各配列要素についてのコメントを、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式の出力リストL1(v1)に出力する。ユーザは、出力リストL1(v1)をコピー&ペーストして、リストL1(v1)(1)、L1(v1)(2)、L1(v1)(3)、・・・L1(v1)(n)を生成する。例えば、ユーザは、リストL1(v1)(1)において、配列型変数v1の各配列要素についてのコメントを、英語で記載する。例えば、ユーザは、リストL1(v1)(2)において、配列型変数v1の各配列要素についてのコメントを、日本語で記載する。例えば、ユーザは、リストL1(v1)(3)において、配列型変数v1の各配列要素についてのコメントを、中国語で記載する。例えば、ユーザは、リストL1(v1)(n)において、配列型変数v1の各配列要素についてのコメントを、スペイン語で記載する。
 したがって、開発支援装置10は、「ユーザが、複数の言語の各々で、或る変数(第1変数)の各要素(要素変数、第2変数)に対するコメントを準備する」ことを容易にする。また、ユーザは、各々が複数の言語の各々で記載された複数のコメント(例えば、上述のリストL1(v1)(1)、L1(v1)(2)、L1(v1)(3)、・・・L1(v1)(n))を、容易に管理することができる。
 また、開発支援装置10は、ユーザがExcel(登録商標)等の表計算ソフトを用いて編集したファイル(後述する入力リストL2)をインポートすることができる。例えば、開発支援装置10は、ユーザが更新した出力リストL1を入力リストL2としてインポートする。開発支援装置10は、入力リストL2において変数(例、配列型変数または構造体型変数)の各要素(例、各配列要素または各構造体メンバ)に対して付されたコメントによって、自装置の記憶部に保存している、各要素に対するコメントを更新する。そして、開発支援装置10は、例えばプログラムで配列型変数を使用している箇所で、配列型変数の各配列要素の意味をユーザが把握できるように、各配列要素に対して付されたコメント(更新済の出力リストL1にしたがって更新されたコメント)を表示する。
 したがって、ユーザは、開発支援装置10にインポートする入力リストL2を切り替えることによって、容易に、開発支援装置10が表示するコメントについて、例えば、そのコメントを表記する言語を切り替えることができる。ユーザは、開発支援装置10に、コメントが英語で記載されたリストL1(1)に代えて、コメントが日本語で記載されたリストL1(2)をインポートさせることによって、英語表記のコメントから日本語表記のコメントに切り替えることができる。
 複数の言語の各々でコメントを記載した、複数のリストL1(1)~L1(n)を予め準備しておけば、ユーザは、開発支援装置10にインポートさせるリストを切り替えるだけで、開発支援装置10の表示するコメントの表記言語を、切り替えることができる。
 開発支援装置10が出力する出力リストL1がExcel(登録商標)によって編集可能なファイルであることは必須ではなく、開発支援装置10は、外部の装置、ソフトウェアによって編集、利用されるのに好適なデータ形式で、出力リストL1を出力する。
 (用語の説明)
 以下の説明において、「或る変数を先祖ノードとする木構造(ツリー)における子孫ノードとして表すことのできる変数」、例えば、配列要素であったり、構造体メンバであったりする変数を、「要素変数(第2変数)」と称することがある。
 同様に、「或る変数を先祖ノードとするツリーの子孫ノードとして表すことのできる変数」についてのコメントは、「要素コメント」と称することがある。すなわち、「要素変数」についてのコメントを「要素コメント」と称し、「要素変数以外の変数」についてのコメントである「コメント」と区別することがある。「要素コメント」は、例えば、開発支援装置10が提供するプログラム開発環境で使用する変数宣言において、或る変数の型が配列型および構造体型の少なくとも一方である場合に、配列要素または構造体メンバに対して設定できるコメントである。すなわち、「要素コメント」は、或る変数(第1変数)を先祖ノードとするツリーの子孫ノードとして表すことのできる変数(要素変数、第2変数)に対するコメントである。
 「変数テーブル画面」は、プログラムで使用する変数をテーブル形式で記述する編集画面であり、変数についての、変数名、変数のデータ型、およびコメントなどを確認、編集(更新)することができる。
 §2.構成例
 これまで、図2を用いて、制御システム1の概要を説明してきた。次に、開発支援装置10について、その詳細を説明する。図1等を用いて以下に詳細を説明する開発支援装置10について、最初に概要を整理しておけば、以下の通りである。
 すなわち、開発支援装置10は、PLC20(制御装置)で実行されるプログラムをユーザが作成するのを支援する開発支援装置である。開発支援装置10は、前記プログラムで用いられる変数に対して、当該変数の定義に併せてユーザが任意で付すことのできるコメントを、外部出力するよう指示するユーザ操作を受け付ける操作受付部110(特に、出力指示受付部111)と、操作受付部110によって前記ユーザ操作が受け付けられると、前記変数のうち、第1変数を先祖ノードとする木構造(ツリー)における子孫ノードとして表すことのできる複数の要素変数(第2変数)の各々に対する要素コメント(コメント)を、前記第1変数の名称と、前記第1変数に対して前記複数の第2変数の各々を識別するための識別情報と、に対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイル(出力リストL1)として出力する出力部120と、を備えている。
 前記の構成によれば、開発支援装置10は、前記複数の第2変数の各々に対する要素コメントを、前記第1変数の名称と前記識別情報とに対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する。
 したがって、開発支援装置10は、ユーザにとって確認しやすく、かつ、編集しやすい形式で、前記複数の第2変数の各々に対する要素コメントのリストを出力することができるとの効果を奏する。つまり、開発支援装置10は、ユーザが、前記複数の第2変数の各々に対する要素コメントを容易に確認し、かつ、容易に編集することを可能とするとの効果を奏する。
 また、開発支援装置10は、表計算ソフト等を用いてユーザが編集可能な形式のファイルとして要素コメントを出力するので、ユーザは、前記ファイルを用いて、例えば、複数の言語の各々で要素コメントを作成し、管理することができるという効果を奏する。例えば、ユーザは、開発支援装置10が出力した出力リストL1をコピー&ペーストして複数のリストL1(1)~L1(n)を生成し、複数のリストL1(1)~L1(n)の各々において、複数の言語の各々で要素コメントを作成し、管理することができる。すなわち、開発支援装置10は、前記複数の第2変数の各々に対する、複数の言語の各々で記載した要素コメントを、ユーザが容易に生成し、容易に管理することができるようにするという効果を奏する。
 開発支援装置10において、前記第1変数は、配列型変数または構造体型変数であり、前記複数の第2変数の各々は、配列型変数の配列要素または構造体型変数のメンバであってもよい。
 前記の構成によれば、開発支援装置10は、配列型変数の配列要素または構造体型変数のメンバである前記複数の第2変数の各々に対する要素コメントを、配列型変数または構造体型変数である前記第1変数の名称と、前記識別情報と、に対応付けて出力する。
 したがって、開発支援装置10は、ユーザにとって確認しやすく、かつ、編集しやすい形式で、配列型変数の配列要素または構造体型変数のメンバである前記複数の第2変数の各々に対する要素コメントのリストを出力することができるとの効果を奏する。
 開発支援装置10において、出力部120は、前記複数の第2変数の各々に対する要素コメントを、前記第1変数の名称と前記識別情報とを含む1つの文字列に対応付けて、出力してもよい。
 前記の構成によれば、開発支援装置10は、前記複数の第2変数の各々に対する要素コメントを、前記第1変数の名称と前記識別情報とを含む1つの文字列に対応付けて、表計算ソフト等で編集可能なファイルとして出力する。例えば、開発支援装置10は、(A)前記第1変数の名称と前記識別情報とを含む1つの文字列と、(B)前記要素コメントと、を隣り合わせに表示したリストを、表計算ソフト等で編集可能なデータ形式で出力する。
 具体的には、開発支援装置10は、例えば表計算ソフトにおいて編集可能なデータ形式のファイルとして、前記複数の第2変数の各々に対する要素コメントを、前記第1変数の名称と前記識別情報とを含む1つの文字列に対応付けて、出力する。この場合、前記第1変数の名称と前記識別情報とを含む1つの文字列は1つのセルに格納され、また、前記複数の第2変数の各々に対する要素コメントも1つのセルに格納されることになる。そのため、ユーザは、前記複数の第2変数の各々に対する要素コメントと、当該要素コメントが付された前記第2変数と、前記第2変数の先祖ノードである前記第1変数との関係を、一目で確認することができる。例えば、ユーザは、前記第1変数の名称と前記識別情報とを含む1つの文字列と、前記要素コメントを示す1つの文字列と、が隣り合う列で対応付けられたリストを、一目で確認することができるようになる。
 したがって、開発支援装置10は、ユーザにとって視認性が極めて高く、かつ、編集しやすい形式で、前記複数の第2変数の各々に対する要素コメントのリストを出力することができるとの効果を奏する。
 開発支援装置10において、前記識別情報は、前記木構造における前記第1変数から前記複数の第2変数の各々までのパスを示すパス情報を含む。前記パス情報は、前記木構造における前記第1変数から前記複数の第2変数の各々までの、1つ以上の親子関係の各々を、以下の規則にしたがって示す。すなわち、前記パス情報は、(1)親子関係が、親ノードに相当する変数が配列型変数であって、子ノードに相当する変数が前記配列型変数の配列要素である場合、その親子関係を、カッコ([])を用いて示す。また、前記パス情報は、(2)親子関係が、親ノードに相当する変数が構造体型変数であって、子ノードに相当する変数が前記構造体型変数のメンバである場合、その親子関係を、ピリオド(.)を用いて示す。或る要素変数のパス情報は、「その或る要素変数を子孫ノードとするツリーにおいて、その或る要素変数に相当する子孫ノードを特定する情報」であり、「そのツリーにおける、その或る要素変数に相当する子孫ノードの階層を示す情報」を含んでいる。
 前記の構成によれば、開発支援装置10は、前記複数の第2変数の各々に対する要素コメントを、前記パス情報を含む前記識別情報と前記第1変数の名称とに対応付けて出力する。そして、前記パス情報において、前記第1変数から前記複数の第2変数の各々までの、1つ以上の親子関係の各々は、親と子が配列型変数と配列型変数の配列要素とであるのか、または、親と子が構造体型変数と構造体型変数のメンバとであるのか、が区別される。
 したがって、開発支援装置10は、前記第1変数と前記複数の第2変数との関係をユーザが確認することができるようにして、前記ファイルを出力することができるとの効果を奏する。例えば、開発支援装置10は、第2変数が配列型変数である前記第1変数の配列要素であるのか、第2変数が構造体型変数である前記第1変数の構造体メンバであるのか、または、第2変数が、複数の構造体型変数の各々を配列要素とする配列型変数(構造体型配列)である前記第1変数の、所定の前記構造体型変数の構造体メンバであるのか・・・等を、ユーザが区別できるようにして、前記ファイルを出力することができるとの効果を奏する。
 これまでに概要を説明した開発支援装置10について、次に、その構成の詳細について図1を参照しながら説明し、その後、開発支援装置10が実行する処理の概要について、図3を参照しながら説明していく。
 (開発支援装置の詳細)
  (従来までの開発支援装置との主要な相違点)
 図12を用いて説明したように、従来までの開発支援装置は、「変数テーブル画面」において、要素コメントを、一覧形式でユーザに示すことができない。例えば、従来までの開発支援装置は、「変数テーブル画面」において、配列型変数の配列要素および構造体型変数の構造体メンバなどの「或る変数を先祖ノードとするツリーの子孫ノードとして表すことのできる変数(要素変数)」に対するコメント(要素コメント)を、一覧形式で表示できない。そのため、従来までの開発支援装置は、複数の要素変数の各々に対する要素コメントを確認したり、編集したりしようとするユーザにとって、利便性、操作性が低い。
 具体的には、「或る変数を先祖ノードとするツリーの子孫ノードとして表すことのできる変数」のコメントについて、確認等を行おうとするユーザは、先祖ノード(例、親ノード)に相当する変数を選択した上で、要素コメントのダイアログを開く必要があった。
 これに対して、開発支援装置10は、複数の要素変数の各々についての要素コメントを、一覧形式のリストとして、特に、表計算ソフト等で編集可能なデータ形式の、一覧形式のリスト(出力リストL1)として、出力する。
 ユーザは、例えば配列型変数の各配列要素について、開発支援装置10が出力した出力リストL1を利用して、各配列要素に付与している意味等を示す要素コメントを、容易に確認することができる。また、ユーザは、例えば、開発支援装置10が出力した出力リストL1をコピー&ペーストして生成した複数のリストL1(1)~L1(n)の各々において、要素コメントを複数の言語の各々で記載しておくことができる。複数の言語の各々で要素コメントを記載した複数のリストL1(1)~L1(n)を予め準備しておくことで、ユーザは、開発支援装置10にインポートするリストを切り替えるだけで、開発支援装置10が表示する要素コメントの表記言語を、容易に切り替えることができる。
  (開発支援装置の詳細構成)
 図1は、開発支援装置10の要部構成を示すブロック図である。図1に示すように、開発支援装置10は、機能ブロックとして、操作受付部110と、出力部120と、記憶部130と、入力部140と、コメント更新部150とを備えている。
 開発支援装置10は、上述の各機能ブロックに加え、ユーザが制御目的に応じてPLC20に実行させる制御プログラムとしてのユーザプログラムをプログラミングするための環境を提供する、不図示のプログラミング支援部などを備えていてもよい。しかしながら、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、開発支援装置10は、当該省略された構成を備えてもよい。
 操作受付部110、出力部120、入力部140、および、コメント更新部150は、例えば、CPU(central processing unit)等が、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部130)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。以下、操作受付部110、出力部120、入力部140、および、コメント更新部150の各々について説明する。
 操作受付部110は、出力リストL1の出力処理(エキスポート処理)の実行を指示するユーザ操作、または、入力リストL2の入力処理(インポート処理)の実行を指示するユーザ操作を受け付ける。操作受付部110は、出力指示受付部111と、入力指示受付部112と、を含む。
 出力指示受付部111は、エキスポート処理の実行を指示するユーザ操作を受け付け、受け付けたユーザ操作を出力部120に通知する。入力指示受付部112は、インポート処理の実行を指示するユーザ操作を受け付け、受け付けたユーザ操作を入力部140に通知する。
 出力部120は、出力指示受付部111が受け付けたユーザ操作に従って、「第1変数を先祖ノードとするツリーの子孫ノードとして表すことのできる変数(要素変数)」に対するコメント(要素コメント)を一覧形式で示すリスト(出力リストL1)を出力する。
 例えば、出力部120は、ユーザ操作において指定された第1変数について、第2変数定義テーブル131Bを参照して、「その第1変数を先祖ノードとするツリーにおける、子孫ノードとして表すことのできる」複数の要素変数(第2変数)を特定する。また、出力部120は、第2変数定義テーブル131Bを参照して、特定した複数の要素変数の各々に対する要素コメントを取得する。出力部120は、「特定した複数の要素変数の各々を、第1変数に対して識別する」識別情報に対応付けて、特定した複数の要素変数の各々に対する要素コメントを、表計算ソフト等で編集可能なデータ形式の出力リストL1に出力する。特に、出力部120は、複数の要素変数の各々に対する要素コメントを、「第1変数の名称」および「複数の要素変数の各々の識別情報」に対応付けて、出力リストL1に出力する。出力部120は、第1取得部121と、第2取得部122と、第3取得部123と、文字列生成部124と、を含む。
 第1取得部121は、「出力指示受付部111が受け付けたユーザ操作」においてユーザによって選択された第1変数の名称を特定する。第1取得部121は、ユーザによって選択された第1変数の名称を、第1変数定義テーブル131Aまたは第2変数定義テーブル131Bを参照して、特定してもよい。
 第2取得部122は、第2変数定義テーブル131Bを参照して、ユーザによって選択された第1変数を先祖ノードとするツリーを辿り、第1変数を先祖ノードとするツリーの子孫ノードに相当する複数の要素変数の各々を特定する。
 第2取得部122は、第2変数定義テーブル131Bを参照して、特定した複数の要素変数の各々を第1変数に対して識別するための識別情報を生成し、特に、特定した複数の要素変数の各々のパス情報を含む識別情報を生成する。第2取得部122は、複数の要素変数の各々の識別情報として、「第1変数を先祖ノードとするツリーにおいて、複数の子孫ノード(つまり、複数の要素変数の各々に相当する、複数の子孫ノード)の各々を識別する識別情報」を、生成する。
 パス情報は、「第1変数を先祖ノードとするツリーにおいて、第1変数から複数の要素変数の各々までのパス(1つ以上の親子関係)を示す情報」である。言い換えれば、パス情報は、「第1変数を先祖ノードとするツリー」において、「先祖ノードである第1変数」から「子孫ノードである複数の要素変数の各々」までの間に存在する、1つ以上の親子関係を示す情報である。パス情報は、「第1変数を先祖ノードとするツリーにおける、各要素変数に対応する子孫ノードのインスタンスを示す情報」に対応する。
 第2取得部122は、識別情報(特に、パス情報)において、親子関係(親ノードに相当する変数と、子ノードに相当する変数との関係)を、例えば以下の規則にしたがって示す。すなわち、親ノードに相当する変数が配列型変数であって、子ノードに相当する変数が前記配列型変数の配列要素である場合、第2取得部122は、親子関係を、カッコ([])を用いて示す。また、親ノードに相当する変数が構造体型変数であって、子ノードに相当する変数が前記構造体型変数のメンバである場合、第2取得部122は、親子関係を、ピリオド(.)を用いて示す。
 第3取得部123は、第2変数定義テーブル131Bを参照して、第2取得部122が特定した複数の要素変数の各々に対する要素コメントを取得する。
 文字列生成部124は、第2取得部122が特定した複数の要素変数の各々について、以下の文字列を生成する。すなわち、文字列生成部124は、第1取得部121が特定した第1変数の名称と、第2取得部122が生成した「複数の要素変数の各々の識別情報(複数の要素変数の各々のパス情報を含む)」と、を含む1つの文字列を生成する。複数の要素変数の各々について文字列生成部124が生成する1つの文字列は、「コメント名称」とも称される。
 出力部120は、第3取得部123が取得した「複数の要素変数の各々に対する要素コメント」を、複数の要素変数の各々のコメント名称に対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能な出力リストL1に出力する。
 入力部140は、操作受付部110が受け付けたユーザ操作(インポート処理の実行指示)に従って、入力リストL2を取り込む。入力リストL2は、「或る第1変数を先祖ノードとするツリーの子孫ノードとして表すことのできる要素変数」についての要素コメントが一覧形式で示されたリストであり、例えば、ユーザによって内容を更新された出力リストL1である。
 コメント更新部150は、入力部140が取り込んだ入力リストL2の内容にしたがって、記憶部130の第2変数定義テーブル131Bにおける要素コメントを更新する。コメント更新部150は、文字列解析部151と、第1特定部152と、第2特定部153と、第3特定部154と、を含む。
 文字列解析部151は、入力部140が取り込んだ入力リストL2のコメント名称から、第1変数の名称を抽出し、抽出した第1変数の名称を第1特定部152に通知する。第1特定部152は、入力リストL2のコメント名称から抽出された「第1変数の名称」から、第1変数を特定する。第1特定部152は、特定した第1変数を第2特定部153に通知する。
 第2特定部153は、マップ情報132を参照して、入力リストL2の「コメント名称」に対応する「ノードインスタンス」を取得する。そして、第2特定部153は、第1特定部152が特定した第1変数と、マップ情報132を参照して取得した「ノードインスタンス」と、から、入力リストL2に要素コメントが格納された要素変数を特定する。
 ここで、入力リストL2における各「コメント名称」の記載規則は、出力リストL1における「コメント名称」の記載規則と同様である。したがって、第2特定部153は、マップ情報132を参照せずに、入力リストL2の「コメント名称」から直接、第1変数を先祖ノードとするツリーにおいて、入力リストL2に要素コメントが格納された要素変数を識別するための識別情報を取得してもよい。言い換えれば、第2特定部153は、入力リストL2の「コメント名称」から、「入力リストL2に要素コメントが格納された要素変数のパス情報」を含む、「入力リストL2に要素コメントが格納された要素変数の識別情報」を抽出してもよい。
 第3特定部154は、入力部140が取り込んだ入力リストL2から、「入力リストL2において、コメント名称に対応付けられている要素コメント」を取得する。つまり、第3特定部154は、入力リストL2から、「入力リストL2のコメント名称によって一意に特定される要素変数」に対する「入力リストL2における要素コメント」を取得する。
 コメント更新部150は、第2特定部153によって特定された要素変数の、第2変数定義テーブル131Bにおける要素コメントを、第3特定部154が入力リストL2から取得した要素コメントによって、更新する。
 記憶部130は、開発支援装置10が使用する各種データを格納する記憶装置である。なお、記憶部130は、開発支援装置10が実行する(1)制御プログラム、(2)OSプログラム、(3)開発支援装置10が有する各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の(1)~(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。開発支援装置10は、図示しない一時記憶部を備えていてもよい。一時記憶部は、開発支援装置10が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、RAM(Random Access Memory)等の揮発性記憶装置で構成される。どのデータをどの記憶装置に記憶するのかについては、PLC20の使用目的、利便性、コスト、または、物理的な制約等から適宜決定される。記憶部130はさらに、変数定義テーブル131およびマップ情報132を格納している。
 変数定義テーブル131は、要素変数の以外の変数について、コメント等を格納した第1変数定義テーブル131Aと、要素変数について、要素コメント等を格納した第2変数定義テーブル131Bと、を含む。
 第1変数定義テーブル131Aは、要素変数以外の変数(例えば、第1変数)の「変数名、データ型、およびコメント」等のセットを格納している。第1変数定義テーブル131Aは、複数の「要素変数以外の変数」の各々の「変数名、データ型、およびコメント」等のセットを、複数の「要素変数以外の変数」の各々の属性として、一覧形式で格納している。第1変数定義テーブル131Aの詳細については、図5を用いて後述する。
 第2変数定義テーブル131Bは、複数の要素変数の各々について、複数の要素変数の各々を子孫ノードとするツリーの先祖ノードに相当する変数(第1変数)の名称、前記ツリーの階層構造、要素コメント等を格納している。第2変数定義テーブル131Bには、第1変数と複数の要素変数の各々との関係、第1変数に対して複数の要素変数の各々を識別するための識別情報、前記ツリーにおいて複数の要素変数の各々に相当する子孫ノードのインスタンス等が格納されていてもよい。第2変数定義テーブル131Bの詳細については、図6の(A)、図7の(A)、および、図8を用いて後述する。
 マップ情報132は、入力リストL2における各「コメント名称」の内容と、「複数の要素変数の各々のインスタンス(ノードインスタンス)を示す情報」と、を対応付けた情報であり、その詳細については、図11を用いて後述する。前述の通り、入力リストL2には、各要素変数のコメント名称に対応付けられて、各要素変数の要素コメントが示されている。
 入力リストL2における各「コメント名称」、つまり、各要素変数の「入力リストL2におけるコメント名称」は、各要素変数の第1変数の名称、および、各要素変数の識別情報(パス情報を含む)を示している。
 「要素変数のインスタンスを示す情報」は、「第1変数を先祖ノードとするツリーにおける、複数の要素変数の各々に相当する複数の子孫ノードの各々のインスタンス」を示す情報である。第2特定部153は、或る要素変数のインスタンスを示す情報を用いて、第1変数に対する、その或る要素変数の関係を把握することができ、したがって、その或る要素変数を、第2変数定義テーブル131Bにおいて特定することができる。
 §3.動作例
 図3は、開発支援装置10が実行する処理の全体概要を示す図である。すなわち、開発支援装置10は、エキスポート処理を実行して、第2変数定義テーブル131Bを参照して取得した各要素変数の要素コメントを、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式の出力リストL1に出力する。また、開発支援装置10は、インポート処理を実行して、取り込んだ入力リストL2にしたがって、第2変数定義テーブル131Bにおける各要素変数の要素コメントを更新する。
 (エキスポート処理の内容)
 図4は、開発支援装置が10実行する出力処理(エキスポート処理)の全体概要を示す図である。出力指示受付部111は、選択した第1変数の各要素(要素変数。以下、「対象変数」とも称する)についての要素コメントを、外部へと出力することを指示するユーザ操作を取得する(出力指示取得処理、S110)。すなわち、出力指示受付部111は、エキスポート処理の実行を指示するユーザ操作を受け付ける。
 第1取得部121は、対象変数の先祖ノードに相当する変数(つまり、ユーザが選択した第1変数)の名称を取得する(親ノード名取得処理、S120)。第2取得部122は、第2変数定義テーブル131Bを参照して、第1変数を先祖ノードとする他の子孫ノードに相当する変数から、対象変数を識別するための識別情報を取得(生成)する(識別情報取得処理、S130)。
 例えば、「startCondition」という名称の配列型変数の配列要素[0]は、「startCondition」という名称の配列型変数の他の配列要素(例、[1]および[2])から、「0」によって識別される。したがって、第2取得部122は、第2変数定義テーブル131Bを参照して、配列型変数:startConditionの配列要素[0]を、配列型変数:startConditionの他の配列要素から識別する「0」を、識別情報として取得する。
 第3取得部123は、第2変数定義テーブル131Bを参照して、対象変数に対する要素コメントを取得する(コメント取得処理、S140)。そして、文字列生成部124は、第1取得部121が取得した第1変数の名称と、第2取得部122が取得した識別情報とを組み合わせた、1つの文字列を生成する(パス文字列生成処理、S150)。
 出力部120は、第3取得部123が取得した対象変数に対するコメントを、文字列生成部124がパス文字列生成処理において生成した文字列へと対応付けたリスト(出力リストL1)を、外部へ出力する(エキスポート処理、S160)。出力部120は、出力リストL1を、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する。
 これまでに図4を参照しながら説明してきた開発支援装置10が実行する処理(特に、エキスポート処理)は、言い換えれば、開発支援装置10が実行する制御方法は、以下のように整理することができる。すなわち、開発支援装置10が実行する処理(制御方法)は、PLC20(制御装置)で実行されるプログラムをユーザが作成するのを支援する開発支援装置の制御方法であって、前記プログラムで用いられる変数に対して、当該変数の定義に併せてユーザが任意で付すことのできる要素コメントを、外部出力するよう指示するユーザ操作を受け付ける操作受付ステップ(出力指示取得処理S110)と、前記操作受付ステップにて前記ユーザ操作が受け付けられると、前記変数のうち、第1変数を先祖ノードとする木構造(ツリー)における子孫ノードとして表すことのできる複数の第2変数の各々に対する要素コメントを、前記第1変数の名称と、前記第1変数に対して前記複数の第2変数の各々を識別するための識別情報と、に対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する出力ステップ(エキスポート処理S160)と、を含んでいる。
 前記の構成によれば、前記制御方法は、前記複数の第2変数の各々に対する要素コメントを、前記第1変数の名称と前記識別情報とに対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する。
 したがって、前記制御方法は、ユーザにとって確認しやすく、かつ、編集しやすい形式で、前記複数の第2変数の各々に対する要素コメントのリストを出力することができるとの効果を奏する。つまり、前記制御方法は、ユーザが、前記複数の第2変数の各々に対する要素コメントを容易に確認し、かつ、容易に編集することを可能とするとの効果を奏する。
 また、前記制御方法は、表計算ソフト等を用いてユーザが編集可能な形式のファイルとして前記要素コメントを出力するので、ユーザは、前記ファイルを用いて、例えば、複数の言語の各々で前記要素コメントを作成し、管理することができるという効果を奏する。すなわち、前記制御方法は、前記複数の第2変数の各々に対する、複数の言語の各々で記載した要素コメントを、ユーザが容易に生成・管理することができるようにするという効果を奏する。
 (データ形式)
 (要素変数以外の変数のデータ形式例)
 開発支援装置10において、要素変数以外の変数は、つまり、「或る変数を先祖ノードとするツリーの子孫ノードとして表すことのできる変数」以外の変数は、例えば、以下のデータ形式で、第1変数定義テーブル131Aに格納されている。すなわち、要素変数以外の変数については、各変数の「変数名、データ型、およびコメント」等のセットが、各変数の属性として、一覧形式で、第1変数定義テーブル131Aに格納されている。
 図5は、第1変数定義テーブル131Aに格納されている、要素変数以外の変数の一例を示す図である。すなわち、図5には、第1変数定義テーブル131Aに格納されている、「或る変数を先祖ノードとするツリーの子孫ノードとして表すことのできる変数」以外の変数の一例が示されている。
 図5に例示するように、第1変数定義テーブル131Aにおいて、「startCondition」という名称の配列型変数と、「errorStatus」という名称の配列型変数とは、各変数の属性と共に、一覧形式で格納されている。すなわち、第1変数定義テーブル131Aにおいて、要素変数以外の変数について、各変数の変数名は、各変数のデータ型、および、各変数のコメントに対応付けられて、格納されている。
 「或る変数を先祖ノードとするツリーの子孫ノードとして表すことのできる変数」以外の変数について、開発支援装置10は、例えば第1変数定義テーブル131Aにおける格納内容をそのまま、「変数テーブル画面」に表示する(可視化する)。
 (要素変数のデータ形式例1:配列型変数の各配列要素)
 これに対して、「或る変数を先祖ノードとするツリーの子孫ノードとして表すことのできる変数」は、つまり、要素変数は、開発支援装置10において、例えば、以下のデータ形式で、第2変数定義テーブル131Bに格納されている。すなわち、第2変数定義テーブル131Bにおいて、複数の要素変数の各々は、或る変数を先祖ノードとするツリーの複数の子孫ノードの各々に相当するものとして管理されている。第2変数定義テーブル131Bには、前記ツリーの構造を示す情報、特に、複数の要素変数の各々に相当する複数の子孫ノードの各々を、前記ツリーにおいて特定する情報が格納されている。また、第2変数定義テーブル131Bにおいて、複数の要素変数の各々に対する要素コメントは、複数の要素変数の各々に相当する複数の子孫ノードの各々に対応付けられている。
 図6は、第2変数定義テーブル131Bに格納されている要素変数の一例(図6の(A))と、出力リストL1における要素変数についての要素コメントの一例(図6の(B))を示す図である。具体的には、図6の(A)には、「startCondition」という名称の配列型変数の各配列要素(すなわち、[0]、[1]、[2])について、各配列要素の要素コメント等が、第2変数定義テーブル131Bに格納されている例が示されている。
 開発支援装置10は、先祖ノードに相当する第1変数(例えば、配列型変数または構造体型変数である第1変数)に対して、配列要素または構造体メンバ(要素変数。つまり、第2変数)が子孫ノードとして階層化されたツリーを構成する。例えば、開発支援装置10は、配列型変数:startConditionの配列要素[0]、[1]、[2]を、配列型変数:startConditionを親ノードとするツリーの子ノードとして管理する。
 開発支援装置10は、第1変数(例えば、配列型変数:startCondition)を先祖ノードとするツリーの兄弟ノードに相当する複数の第2変数(例えば、配列要素[0]、[1]、[2])の各々を、以下のように識別する。すなわち、開発支援装置10は、第1変数に対して複数の第2変数の各々を識別するための識別情報(図6の(A)に示す例では、「0」、「1」、「2」)を、複数の第2変数の各々に付与することにより、兄弟ノードに相当する複数の第2変数の各々を識別する。配列型変数:startConditionを親ノードとするツリーの兄弟ノードに相当する配列要素[0]、[1]、[2]は、子ノードを示す階層において、各々、「0」、「1」、「2」によって、兄弟ノードに相当する他の配列要素から区別される。
 そして、開発支援装置10は、第2変数定義テーブル131Bにおいて、「各要素変数に相当する、上記ツリー内の各子孫ノード」に対応付けて、各要素変数の要素コメントを格納している。
 すなわち、図6の(A)の第2変数定義テーブル131Bにおいて、配列型変数:startConditionの配列要素:[0]は、配列型変数:startConditionを親ノードとするツリーの子ノードとして格納されている。配列型変数:startConditionの配列要素:[0]に対する要素コメント:「コンテナ起動条件」は、上記ツリーにおいて配列要素:[0]を示す子ノードに対応付けられている。
 また、第2変数定義テーブル131Bの「ノードの説明」欄の内容は、「上記ツリーにおける、各要素変数に相当する各子孫ノードのインスタンスを示す情報」と捉えることができる。特に、「ノードの説明」欄には、各要素変数を子ノードとするツリーにおける、各要素変数に相当する子ノードのインスタンスを示す情報が示されている。配列型変数:startConditionの配列要素:[0]の「ノードの説明」欄には、「配列要素:[0]は、配列型変数:startConditionを親ノードとするツリーにおいて、子ノード0に相当する」ことが示されている。
 また、図6の(A)の第2変数定義テーブル131Bにおいて、配列型変数:startConditionの配列要素:[1]は、配列型変数:startConditionを親ノードとするツリーの子ノードとして格納されている。そして、配列型変数:startConditionの配列要素:[1]に対する要素コメント:「ロボット起動条件」は、上記ツリーにおいて配列要素:[1]を示す子ノードに対応付けられている。また、「ノードの説明」欄には、配列要素:[1]が、配列型変数:startConditionを親ノードとするツリーにおいて、子ノード1に相当することが示されている。配列型変数:startConditionの配列要素:[2]についても同様である。
 (出力リストにおける要素コメント例1:配列要素に対する要素コメント)
 前述の通り、開発支援装置10は、エキスポート処理の実行を指示するユーザ操作を受け付けると、以下の処理を実行する。すなわち、開発支援装置10は、前述のユーザ操作において選択された或る変数(第1変数)について、第2変数定義テーブル131Bを参照して、その或る変数を先祖ノードとするツリーの子孫ノードに相当する複数の第2変数の各々を特定する。開発支援装置10は、第2変数定義テーブル131Bを参照して、特定した複数の第2変数の各々についての要素コメントを取得する。また、開発支援装置10は、第2変数定義テーブル131Bを参照して、複数の第2変数の各々を識別する識別情報を取得し、特に、第1変数を先祖ノードとするツリーの、第1変数から複数の第2変数の各々までのパス情報を取得する。開発支援装置10は、第1変数の名称と、複数の第2変数の各々を識別する識別情報(第1変数から複数の第2変数の各々までのパス情報を含む)とを含む1つの文字列に、複数の第2変数の各々についての要素コメントを対応付けた出力リストL1を出力する。
 図6の(B)には、図6の(A)に例示した配列型変数:startConditionの各配列要素に対する要素コメントが出力リストL1に出力された例が示されている。例えば、エキスポート処理の実行を指示するユーザ操作において、配列型変数:startConditionが選択されると、開発支援装置10は、以下の処理を実行する。
 すなわち、先ず、出力部120(特に、第1取得部121)は、ユーザによって選択された第1変数の名称を、つまり、配列型変数:startConditionの名称である「startCondition」を特定する。
 出力部120(特に、第2取得部122)は、第2変数定義テーブル131Bを参照して、配列型変数:startConditionを先祖ノードとするツリーを辿り、そのツリーにおける複数の子孫ノードに相当する複数の第2変数を特定する。すなわち、第2取得部122は、配列型変数:startConditionの配列要素[0]、[1]、[2]を特定する。そして、出力部120は、第1変数に対して、複数の第2変数(例えば、配列要素[0]、[1]、[2])の各々を識別するための識別情報(つまり、「0」、「1」、「2」)を取得する。
 出力部120(特に、第2取得部122)は、第2変数定義テーブル131Bを参照して、配列型変数:startConditionの配列要素[0]、[1]、[2]の各々のパス情報を生成する。第2取得部122は、配列型変数:startConditionを先祖ノードとするツリーにおいて、先祖ノードである配列型変数:startConditionから、子孫ノードである配列要素[0]、[1]、[2]の各々までのパスを特定する。言い換えれば、第2取得部122は、上記ツリーにおいて、先祖ノードである配列型変数:startConditionから、子孫ノードである配列要素[0]、[1]、[2]の各々までの間にある、1つ以上の親子関係を、特定する。第2取得部122は、特定したパス(1つ以上の親子関係)を示すパス情報を生成する。「第1変数に対して複数の第2変数の各々を識別するための識別情報」は、「第1変数を先祖ノードとするツリーにおける、第1変数から複数の第2変数の各々までのパスを示すパス情報」を含んでいる。
 図6に示す例では、変数名が「startCondition」である変数は配列型変数であり、配列型変数:startConditionの配列要素は、配列要素[0]、[1]、[2]である。前述の通り、第2取得部122は、識別情報(特に、パス情報)において、配列型変数と配列要素との間の親子関係を、カッコ([])を用いて示す。
 第2取得部122は、第2変数定義テーブル131Bを参照して、配列型変数:startConditionと、配列要素[0]との間には親子関係が1つ存在し、その親子関係は、配列型変数と配列要素との間の親子関係であることを特定する。また、第2取得部122は、配列型変数:startConditionを親ノードとするツリーにおいて、兄弟ノードに相当する他の配列要素([1]、[2])から、配列要素[0]を識別する情報として、「1」を特定する。したがって、第2取得部122は、配列要素[0]について、パス情報を含む識別情報として、「[0]」を生成する。同様に、第2取得部122は、配列要素[1]について、パス情報を含む識別情報として、「[1]」を生成し、また、配列要素[2]について、パス情報を含む識別情報として、「[2]」を生成する。
 「[0]」とのパス情報は、そのパス情報に対応する要素変数が、配列型変数である第1変数の配列要素であり、第1変数の他の配列要素から「0」によって識別されることを示す。同様に、「[1]」とのパス情報は、そのパス情報に対応する要素変数が、配列型変数である第1変数の配列要素であり、第1変数の他の配列要素から「1」によって識別されることを示す。また、「[2]」とのパス情報は、そのパス情報に対応する要素変数が、配列型変数である第1変数の配列要素であり、第1変数の他の配列要素から「2」によって識別されることを示す。
 出力部120(特に、文字列生成部124)は、第1変数の名称(startCondition)と、複数の第2変数の各々の識別情報と、を含む1つの文字列を生成する。文字列生成部124は、配列要素[0]について、「startCondition」と、配列要素[0]の識別情報([0])と、を含む1つの文字列(つまり、「startCondition[0]」)を生成する。同様に、文字列生成部124は、配列要素[1]について「startCondition[1]」を生成し、配列要素[2]について「startCondition[2]」を生成する。
 出力部120(特に、第3取得部123)は、第2変数定義テーブル131Bを参照して、第1変数を先祖ノードとするツリーの子孫ノードに相当する複数の第2変数(例えば、配列要素[0]、[1]、[2])の各々について、要素コメントを取得する。具体的には、第3取得部123は、第2変数定義テーブル131Bを参照して、配列要素[0]に対する要素コメント:コンテナ起動条件を取得する。同様に、第3取得部123は、第2変数定義テーブル131Bを参照して、配列要素[1]に対する要素コメント:ロボット起動条件を取得し、また、配列要素[2]に対する要素コメント:XXX起動条件を取得する。
 そして、出力部120は、複数の第2変数の各々の要素コメントを、複数の第2変数の各々の「先祖ノードに相当する第1変数の名称と、識別情報と、を含む1つの文字列」に対応付けて、出力リストL1に出力する。図6の(B)に例示するように、出力部120は、配列要素[0]に対する要素コメント:コンテナ起動条件を、「startCondition[0]」とのコメント名称に対応付けて、出力リストL1に出力する。同様に、出力部120は、配列要素[1]に対する要素コメント:ロボット起動条件を、「startCondition[1]」とのコメント名称に対応付けて、出力リストL1に出力する。また、出力部120は、配列要素[2]に対する要素コメント:XXX起動条件を、「startCondition[2]」とのコメント名称に対応付けて、出力リストL1に出力する。
 (要素変数のデータ形式例2:構造体型変数の各構造体メンバ)
 図7は、図6と同様に、第2変数定義テーブル131Bに格納されている要素変数の一例(図7の(A))と、出力リストL1における要素変数についての要素コメントの一例(図7の(B))を示している。具体的には、図7の(A)には、「startCondition」という名称の構造体型変数の各構造体メンバについて、各構造体メンバの要素コメント等が、第2変数定義テーブル131Bに格納されている例が示されている。図7の(A)に示す例において、「startCondition」という名称の構造体型変数の構造体メンバは、Member1およびMember2である。
 開発支援装置10は、構造体型変数:startConditionの構造体メンバMember1およびMember2を、構造体型変数:startConditionを親ノードとするツリーの子ノードとして管理する。上記ツリーにおいて兄弟ノードに相当する構造体メンバMember1およびMember2は、子ノードを示す階層において、各々、「Member1」または「Member2」によって、兄弟ノードに相当する他の配列要素から区別される。
 すなわち、図7の(A)の第2変数定義テーブル131Bにおいて、構造体型変数:startConditionの構造体メンバ:Member1は、構造体型変数:startConditionを親ノードとするツリーの子ノードとして格納されている。そして、構造体型変数:startConditionの構造体メンバ:Member1に対する要素コメント:「コンテナ起動条件」は、上記ツリーにおいて構造体メンバ:Member1を示す子ノードに対応付けられている。また、「ノードの説明」欄には、構造体メンバ:Member1が、構造体型変数:startConditionを親ノードとするツリーにおいて、子ノードに相当することが示されている。
 同様に、図7の(A)の第2変数定義テーブル131Bにおいて、構造体型変数:startConditionの構造体メンバ:Member2は、構造体型変数:startConditionを親ノードとするツリーの子ノードとして格納されている。そして、構造体型変数:startConditionの構造体メンバ:Member2に対する要素コメント:「ロボット起動条件」は、上記ツリーにおいて構造体メンバ:Member2を示す子ノードに対応付けられている。また、「ノードの説明」欄には、構造体メンバ:Member2が、構造体型変数:startConditionを親ノードとするツリーにおいて、子ノードに相当することが示されている。
 (出力リストにおける要素コメント例2:構造体メンバに対する要素コメント)
 図7の(B)には、図7の(A)に例示した構造体型変数:startConditionの各構造体メンバに対する要素コメントが出力リストL1に出力された例が示されている。例えば、エキスポート処理の実行を指示するユーザ操作において、構造体型変数:startConditionが選択されると、開発支援装置10は、以下の処理を実行する。
 すなわち、第1取得部121は、構造体型変数:startConditionの名称である「startCondition」を特定する。第2取得部122は、第2変数定義テーブル131Bを参照して、第1変数を先祖ノードとするツリーを辿り、第1変数を先祖ノードとするツリーの子孫ノードに相当する複数の第2変数(例えば、構造体メンバMember1、Member2)の各々を特定する。そして、出力部120は、第1変数に対して、複数の第2変数(例えば、構造体メンバMember1、Member2)の各々を識別するための識別情報(つまり、Member1またはMember2)を取得する。識別情報は、パス情報を含んでいる。
 図7に示す例では、変数名が「startCondition」である変数は構造体型変数であり、構造体型変数:startConditionの構造体メンバは、構造体メンバMember1およびMember2である。前述の通り、第2取得部122は、識別情報(特に、パス情報)において、構造体型変数と構造体メンバとの間の親子関係を、ピリオド(.)を用いて示す。
 第2取得部122は、第2変数定義テーブル131Bを参照して、構造体変数:startConditionと、構造体メンバMember1との間には親子関係が1つ存在し、その親子関係は、構造体型変数と構造体メンバとの間の親子関係であることを特定する。また、第2取得部122は、構造体型変数:startConditionを親ノードとするツリーにおいて、兄弟ノードに相当する他の構造体メンバ(Member2)から、構造体メンバMember1を識別する情報として、「Member1」を特定する。したがって、第2取得部122は、構造体メンバMember1について、パス情報を含む識別情報として、「.Member1」を生成する。同様に、第2取得部122は、構造体メンバMember2について、パス情報を含む識別情報として、「.Member2」を生成する。
 「.Member1」とのパス情報は、そのパス情報に対応する要素変数が、構造体型変数である第1変数の構造体メンバであり、第1変数の他の構造体メンバから「Member1」によって識別されることを示している。同様に、「.Member2」とのパス情報は、そのパス情報に対応する要素変数が、構造体型変数である第1変数の構造体メンバであり、第1変数の他の構造体メンバから「Member2」によって識別されることを示している。
 文字列生成部124は、構造体メンバMember1について、第1変数の名称(startCondition)と、構造体メンバMember1の識別情報(.Member1)と、を含む、以下の1つの文字列を生成する。すなわち、文字列生成部124は、構造体メンバMember1について、「startCondition.Member1」という1つの文字列を生成する。同様に、文字列生成部124は、構造体メンバMember2について、「startCondition.Member2」という1つの文字列を生成する。
 出力部120(特に、第3取得部123)は、第2変数定義テーブル131Bを参照して、構造体メンバMember1に対する要素コメント:コンテナ起動条件を取得し、また、構造体メンバMember2に対する要素コメント:ロボット起動条件を取得する。
 そして、出力部120は、図7の(B)に例示するように、構造体メンバMember1に対する要素コメント:コンテナ起動条件を、「startCondition.Member1」とのコメント名称に対応付けて、出力リストL1に出力する。同様に、出力部120は、構造体メンバMember2に対する要素コメント:ロボット起動条件を、「startCondition.Member2」とのコメント名称に対応付けて、出力リストL1に出力する。
 (要素変数のデータ形式例3:配列型変数の配列要素である構造体変数のメンバ)
 図8は、図6および図7と同様に、第2変数定義テーブル131Bに格納されている要素変数の一例を示している。具体的には、図8には、「startCondition」という名称の、構造体型変数を配列要素とする配列型変数について、各配列要素および各構造体メンバに対する要素コメント等が、第2変数定義テーブル131Bに格納されている例が示されている。図8に示す例において、配列型変数:startConditionの各配列要素(すなわち、[0]、[1])は構造体型変数であり、構造体型変数である各配列要素の構造体メンバは、Member1およびMember2である。
 開発支援装置10は、先祖ノードに相当する配列型変数:startConditionに対して、構造体型変数[0]および[1]が子ノードとして、構造体メンバMember1およびMember2が孫ノードとして、階層化されたツリーを構成する。
 また、開発支援装置10は、「0、1、Member1、および、Member2」の少なくとも1つを識別情報として用いて、複数の要素変数の各々を、上記ツリーの同階層の兄弟ノードに相当する他の要素変数から識別する。例えば、開発支援装置10は、配列型変数:startConditionの配列要素[0]および[1]の各々を、「0」または「1」を識別情報として用いて、区別する。また、開発支援装置10は、構造体型変数[0]の構造体メンバMember1およびMember2の各々を、「Member1」または「Member2」を識別情報として用いて、区別する。さらに、開発支援装置10は、上記ツリーの4つの孫ノードの各々に相当する要素変数の各々を、「0」または「1」と、「Member1」または「Member2」と、を組み合わせた識別情報を用いて、区別する。
 すなわち、図8に示すように、配列型変数:startConditionの各配列要素(すなわち、[0]、[1])は、配列型変数:startConditionを親ノードとするツリーの子ノードとして、第2変数定義テーブル131Bに格納されている。第2変数定義テーブル131Bにおいて、配列型変数:startConditionの各配列要素は、配列型変数に対して各配列要素を識別する情報(図8に示す例では、「0」、「1」)を用いて識別されている。以下の説明においては、構造体型変数を配列要素とする配列型変数:startConditionの配列要素である、配列要素[0]および[1]の各々を、構造体型変数[0]および[1]と称することがある。
 構造体型変数[0]の構造体メンバ(すなわち、Member1およびMember2)は、構造体型変数[0]を親ノードとするツリーの子ノードとして、第2変数定義テーブル131Bに格納されている。言い換えれば、構造体型変数[0]の各構造体メンバは、配列型変数:startConditionを先祖ノードとするツリーの孫ノードとして、第2変数定義テーブル131Bに格納されている。第2変数定義テーブル131Bにおいて、構造体型変数[0]の各構造体メンバは、構造体型変数[0]に対して各構造体メンバを識別する情報(図8の例では、「Member1」または「Member2」)を用いて、識別されている。
 同様に、構造体型変数[1]の構造体メンバ(すなわち、Member1およびMember2)は、構造体型変数[1]を親ノードとするツリーの子ノードとして、第2変数定義テーブル131Bに格納されている。言い換えれば、構造体型変数[1]の各構造体メンバは、配列型変数:startConditionを先祖ノードとするツリーの孫ノードとして、第2変数定義テーブル131Bに格納されている。第2変数定義テーブル131Bにおいて、構造体型変数[1]の各構造体メンバは、構造体型変数[1]に対して各構造体メンバを識別する情報(図8の例では、「Member1」または「Member2」)を用いて、識別されている。
 配列型変数:startConditionの配列要素:[0]に対する要素コメント:「工程Aの起動条件」は、上記ツリーにおいて配列要素:[0]を示す子ノードに対応付けられている。また、「ノードの説明」欄には、配列要素:[0]が、配列型変数:startConditionを親ノードとするツリーにおいて、子ノード0に相当することが示されている。
 同様に、図8の第2変数定義テーブル131Bにおいて、構造体型変数[0]の構造体メンバ:Member1は、構造体型変数[0]を親ノードとするツリーの子ノードとして格納されている。つまり、図8の第2変数定義テーブル131Bにおいて、構造体型変数[0]の構造体メンバ:Member1は、配列型変数:startConditionを先祖ノードとするツリーの孫ノードとして格納されている。そして、構造体型変数[0]の構造体メンバ:Member1に対する要素コメント:「コンテナ起動条件(工程A)」は、上記ツリーにおいて構造体型変数[0]の構造体メンバ:Member1を示すノードに対応付けられている。また、「ノードの説明」欄には、構造体型変数[0]の構造体メンバ:Member1が、配列要素:[0]である構造体型変数を親ノードとするツリーにおいて、子ノードに相当することが示されている。
 (出力リストにおける要素コメント例3:配列型変数の配列要素である構造体変数のメンバ等)
 図9は、出力リストL1における要素変数についての要素コメントの一例を示している。特に、図9には、図8に例示した「構造体型変数を配列要素とする、『startCondition』という名称の配列型変数(第1変数)」が含む複数の要素変数の各々に対する要素コメントが出力リストL1に出力された例が示されている。例えば、エキスポート処理の実行を指示するユーザ操作において「構造体型変数を配列要素とする、『startCondition』という名称の配列型変数(第1変数)」が選択されると、開発支援装置10は、以下の処理を実行する。
 すなわち、第1取得部121は、第1変数の名称として、「startCondition」を特定する。第2取得部122は、第2変数定義テーブル131Bを参照して、第1変数を先祖ノードとするツリーを辿り、第1変数を先祖ノードとするツリーの子孫ノードに相当する複数の第2変数の各々を特定する。例えば、第2取得部122は、配列要素[0]および[1]、構造体型変数[0]の構造体メンバMember1およびMember2、さらに、構造体型変数[1]の構造体メンバMember1およびMember2の各々を特定する。第2取得部122は、それら複数の第2変数の各々を識別するための識別情報(それら複数の第2変数の各々のパス情報を含む)を取得する。
 例えば、第2取得部122は、第2変数定義テーブル131Bを参照して、配列型変数:startConditionと、配列要素[0]との間には親子関係が1つ存在し、その親子関係は、配列型変数と配列要素との間の親子関係であることを特定する。また、第2取得部122は、配列型変数:startConditionを親ノードとするツリーにおいて、兄弟ノードに相当する他の配列要素([1])から、配列要素[0]を識別する情報として、「1」を特定する。したがって、第2取得部122は、配列要素[0]について、パス情報を含む識別情報として、「[0]」を生成する。同様に、第2取得部122は、配列要素[1]について、パス情報を含む識別情報として、「[1]」を生成する。また、第2取得部122は、配列型変数:startConditionを親ノードとするツリーにおいて、兄弟ノードに相当する他の配列要素([1])から、配列要素[0]を識別する情報として、「1」を特定する。したがって、第2取得部122は、配列要素[0]について、パス情報を含む識別情報として、「[0]」を生成する。「[0]」とのパス情報は、そのパス情報に対応する要素変数が、配列型変数である第1変数の配列要素であり、第1変数の他の配列要素から「0」によって識別されることを示す。
 同様に、第2取得部122は、第2変数定義テーブル131Bを参照して、配列型変数:startConditionと、構造体型変数[0]の構造体メンバ:Member1との間には、2つの親子関係が存在することを特定する。
 すなわち、第2取得部122は、配列型変数:startConditionを親ノードとし、構造体型変数[0]を子ノードとする第1の親子関係が存在し、第1の親子関係は、配列型変数と配列要素との間の親子関係であることを特定する。そして、第2取得部122は、配列型変数:startConditionを親ノードとするツリーにおいて、兄弟ノードに相当する他の配列要素([1])から、配列要素[0]を識別する情報として、「1」を特定する。したがって、第2取得部122は、配列要素[0]について、パス情報を含む識別情報として、「[0]」を生成する。
 また、第2取得部122は、構造体型変数[0]を親ノードとし、構造体型変数[0]の構造体メンバ:Member1を子ノードとする第2の親子関係が存在し、第2の親子関係は、構造体型変数と構造体メンバとの間の親子関係であることを特定する。そして、第2取得部122は、構造体型変数[0]を親ノードとするツリーにおいて、兄弟ノードに相当する他の構造体メンバ(Member2)から、Member1を識別する情報として、「Member1」を特定する。したがって、第2取得部122は、配列要素[0]について、パス情報を含む識別情報として、「.Member1」を生成する。
 したがって、第2取得部122は、先祖ノードとしての配列型変数:startConditionに対して、構造体型変数[0]の構造体メンバ:Member1を他の兄弟ノードから識別する識別情報として、以下の文字列を生成する。すなわち、第2取得部122は、構造体型変数[0]の構造体メンバ:Member1の識別情報として、「[0].Member1」を生成する。
 「[0].Member1」とのパス情報は、そのパス情報に対応する要素変数が、「構造体型変数を配列要素とする第1変数」の配列要素である配列要素[0]の、つまり、構造体型変数である配列要素[0]の、構造体メンバであることを示す。また、「[0].Member1」とのパス情報は、そのパス情報に対応する要素変数が、第1変数を先祖ノードとするツリーの、他の兄弟ノードから、「0」と「Member1」とをこの順に並べた識別情報によって識別されることを示す。
 文字列生成部124は、配列要素[0]について、第1変数の名称である「startCondition」と、配列要素[0]の識別情報([0])と、を含む1つの文字列(つまり、「startCondition[0]」)を生成する。また、文字列生成部124は、構造体型変数[0]の構造体メンバ:Member1について、「startCondition」と、構造体型変数[0]の構造体メンバ:Member1の識別情報([0].Member1)と、を含む以下の文字列を生成する。すなわち、文字列生成部124は、構造体型変数[0]の構造体メンバ:Member1について、「startCondition[0].Member1」を生成する。
 第3取得部123は、第2変数定義テーブル131Bを参照して、配列要素[0]に対する要素コメント:工程Aの起動条件を取得する。同様に、第3取得部123は、第2変数定義テーブル131Bを参照して、構造体型変数[0]の構造体メンバ:Member1に対する要素コメント:コンテナ起動条件(工程A)を取得する。
 そして、出力部120は、図9に例示するように、配列要素[0]に対する要素コメント:工程Aの起動条件を、「startCondition[0]」とのコメント名称に対応付けて、出力リストL1に出力する。同様に、出力部120は、構造体型変数[0]の構造体メンバ:Member1に対する要素コメント:コンテナ起動条件(工程A)を、「startCondition[0].Member1」とのコメント名称に対応付けて、出力リストL1に出力する。
 (1つの出力リストに納める要素コメント数の制限)
 開発支援装置10(特に、出力部120)は、1つの出力リストL1に出力する要素コメントの数(つまり、要素コメントを出力する要素変数の数)を制約することによって、出力リストL1のデータサイズが大きくなりすぎるのを回避する。
 例えば、出力部120は、1つの出力リストL1に出力する要素コメントの数について、予め最大数(所定値)を設定しておく。出力部120は、出力予定の要素コメントの数が最大数を超えると判定すると、出力予定の要素コメントを、複数の出力リストL1(例えば、出力リストL1(1)、L1(2)、L1(3)、・・・L1(n))に分けて出力する。
 すなわち、開発支援装置10において、前記第2変数の総数が所定値(最大値)より大きいと、出力部120は、前記ファイル(出力リストL1)を2以上に分割して出力してもよい。
 前記の構成によれば、開発支援装置10は、前記第2変数の総数が前記所定値より大きいと、前記ファイルを2以上に分割して出力する。つまり、開発支援装置10は、前記第2変数の総数が前記所定値より大きくなって、前記ファイルのデータサイズが大きくなり過ぎると判断すると、前記ファイルを2以上に分割して出力する。
 例えば、開発支援装置10は、前記第1変数が共通である前記複数の第2変数の総数が前記所定値より大きいと、前記複数の第2変数の各々に付された要素コメントを、2つ以上の前記ファイルに分けて出力する。また、例えば、開発支援装置10は、複数の前記第1変数の各々を先祖ノードとする前記複数の第2変数の総数が前記所定値より大きいと、前記複数の第2変数の各々に付された要素コメントを、2つ以上の前記ファイルに分けて出力する。
 ここで、前記第2変数の総数が増えれば、当然、前記ファイルのデータサイズも大きくなり、データサイズが大きくなり過ぎると、前記ファイルを開いて内容を確認したり、前記ファイルを編集したりするのが困難になることがある。
 したがって、開発支援装置10は、前記ファイルを2以上に分割することによって、前記ファイルのデータサイズが大きくなり過ぎて前記ファイルのユーザ利便性が低下するという事態が発生するのを回避することができるとの効果を奏する。
 さらに、出力部120は、前記第1変数が共通である前記複数の第2変数の各々に対する要素コメントを全て、1つの前記ファイルに出力してもよい。
 前記の構成によれば、開発支援装置10は、前記第1変数が共通である前記複数の第2変数の各々に対する要素コメントを全て、1つの前記ファイルに出力する。したがって、開発支援装置10は、前記第1変数が共通である前記複数の第2変数の各々に対する要素コメントが複数のファイルに分かれてしまい、ユーザにとって視認性および利便性が低下するのを回避することができるとの効果を奏する。
 出力部120は、先祖ノードに相当する変数(第1変数)が共通である複数の要素変数の各々に対する要素コメントの数が最大行数以下である場合、それら「第1変数が共通である複数の要素変数の各々に対する要素コメント」を、1つの出力リストL1に出力する。つまり、出力部120は、先祖ノードに相当する変数が共通である複数の要素変数の各々に対する要素コメントは全て、1つの出力リストL1に収まるようにし、複数の出力リストL1に分割されないようにする。ただし、先祖ノードに相当する変数が共通である複数の要素変数の各々に対する要素コメントの数が最大数を超える場合、出力部120は、それら「第1変数が共通である複数の要素変数の各々に対する要素コメント」を、複数の出力リストL1に分けて出力する。
 例えば、出力部120は、複数の要素変数の各々に対する要素コメントをL1(m)に出力する際、最大数から「出力リストL1(m)に出力済の要素コメントの数」を減じた「残り数」を、出力リストL1(m)について算出する。「m」は「1」以上の自然数である。出力部120は、「出力リストL1(m)に出力予定の要素コメントの数」と、出力リストL1(m)について算出した「残り数」とを比較する。出力部120は、「出力リストL1(m)に出力予定の要素コメントの数」よりも「残り数」の方が少ないと判定すると、出力予定の要素コメントの出力先のファイルを、出力リストL1(m)から出力リストL1(m+1)に切り替える。
 (インポート処理の概要)
 開発支援装置10は、入力リストL2における各「コメント名称」の内容と、複数の要素変数の各々のインスタンス(ノードインスタンス)を示す情報と、を対応付けたマップ情報132を、予め記憶部130に格納している。入力リストL2における「コメント名称」には、出力リストL1における「コメント名称」と同様に、子孫ノードに相当する複数の要素変数の各々のパス情報(先祖ノードに相当する第1変数の名称を含む)が記載されている。
 入力リストL2における各「コメント名称」の記載規則は、出力リストL1における「コメント名称」の記載規則と同様である。すなわち、「コメント名称」は、先祖ノードに相当する変数(第1変数)の名称と、第1変数に対して複数の第2変数の各々を識別するための識別情報とを含む。識別情報は、「第1変数を先祖ノードとするツリーにおける、第1変数から複数の第2変数の各々までのパスを示すパス情報」を含む。パス情報は、第1変数を先祖ノードとするツリーにおいて、第1変数から複数の第2変数の各々までの間に存在する、1つ以上の親子関係の各々を特定する情報である。パス情報において、親ノードに相当する変数が配列型変数であって、子ノードに相当する変数が前記配列型変数の要素である場合、親子関係はカッコ([])を用いて示される。また、パス情報において、親ノードに相当する変数が構造体型変数であって、子ノードに相当する変数が前記構造体型変数のメンバである場合、親子関係は、ピリオド(.)を用いて示される。
 入力リストL2における「複数の要素変数の各々のインスタンスを示す情報」とは、「複数の要素変数の各々を子孫ノードとするツリーにおいて、複数の子孫ノードの各々のインスタンス」を示す情報である。「複数の要素変数の各々のインスタンスを示す情報」は、「子孫ノードに相当する複数の要素変数(第2変数)と、先祖ノードに相当する変数(第1変数)との関係を示す情報」ということもできる。
 これまで説明したように、開発支援装置10は、入力部140と、コメント更新部150と、をさらに備えてもよい。入力部140は、前記第1変数の名称と前記識別情報とに対応付けられて前記第2変数の各々に対する要素コメントが記載された、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイル(入力リストL2)のインポートを指示するユーザ操作が操作受付部110(特に、入力指示受付部112)によって受け付けられると、インポートを指示された前記ファイルをインポートする。コメント更新部150は、入力部140によってインポートされた前記ファイルにしたがって、記憶部130に格納された前記第2変数の各々に対する要素コメントを更新する。
 前記の構成によれば、開発支援装置10は、前記ユーザ操作にしたがって、前記第1変数の名称と前記識別情報とに対応付けられて前記第2変数の各々に対する要素コメントが記載された入力リストL2をインポートする。そして、開発支援装置10は、インポートした入力リストL2にしたがって、記憶部130に格納された前記第2変数の各々に対する要素コメントを更新する。特に、開発支援装置10は、ユーザが容易に内容を確認し、かつ、容易に内容を編集できる形式の入力リストL2に記載された、前記複数の第2変数の各々に対する要素コメントをインポートして、記憶部130に格納された前記第2変数の各々に対する要素コメントを更新する。
 したがって、開発支援装置10は、自装置が用いる前記第2変数の各々に対する要素コメントを、ユーザが、入力リストL2を用いて、容易に管理し、かつ、容易に編集できるようにすることができるとの効果を奏する。
 また、各々、複数の言語の各々で記載された複数の入力リストL2を準備することによって、開発支援装置10は、インポートする入力リストL2を変更することで、自装置が用いる前記第2変数の各々に対する要素コメントの言語を、容易に切り替えることができる。
 ユーザは、例えば、或る第2変数に対する要素コメントを、英語で記載した入力リストL2(1)、日本語で記載した入力リストL2(2)、中国語で記載した入力リストL2(3)、および、スペイン語で記載した入力リストL2(4)を、予め準備しておく。開発支援装置10は、英語で記載した入力リストL2(1)をインポートすることにより、前記第2変数に対する英語の要素コメントを用いることができ、また、日本語で記載した入力リストL2(2)をインポートすることにより、前記第2変数に対する日本語の要素コメントを用いることができる。同様に、開発支援装置10は、中国語で記載した入力リストL2(3)をインポートすることにより、前記第2変数に対する中国語の要素コメントを用いることができ、また、スペイン語で記載した入力リストL2(4)をインポートすることにより、前記第2変数に対するスペイン語の要素コメントを用いることができる。
 すなわち、開発支援装置10は、自装置において前記第2変数に対する何語の要素コメントを用いるか(前述の例でいえば、英語、日本語、中国語、および、スペイン語のいずれの要素コメントを用いるか)を容易に切り替えることができるとの効果を奏する。
 (インポート処理の詳細)
 図10は、開発支援装置が10実行する入力処理(インポート)の全体概要を示す図である。入力指示受付部112は、インポート処理の実行を指示するユーザ操作を受け付け、すなわち、入力リストL2の入力処理の実行を指示するユーザ操作を受け付ける(入力指示取得処理、S210)。入力リストL2において、要素変数である対象変数に対するコメント(要素コメント)は、コメント名称に対応付けられている。コメント名称は、(i)対象変数の先祖ノードに相当する変数(第1変数)の名称と、(ii)第1変数を先祖ノードとするツリーにおいて、他の子孫ノードに相当する要素変数から対象変数を識別するための識別情報と、を含む。
 入力部140が、入力リストL2をインポートすると(インポート処理、S220)、コメント更新部150(特に、文字列解析部151)は、入力リストL2のコメント名称から、第1変数の名称を抽出し、抽出した第1変数の名称を第1特定部152に通知する。第1特定部152は、入力リストL2のコメント名称から抽出された「第1変数の名称」から、第1変数を特定する(第1変数特定処理、S230)。第2特定部153は、入力リストL2のコメント名称から抽出された「識別情報」から、対象変数が、第1変数の子孫ノードに相当する変数のうち、どの変数であるのかを特定する(第2変数特定処理、S240)。例えば、第2特定部153は、マップ情報132を参照して、入力リストL2の「コメント名称」に対応する「ノードインスタンス」を取得し、取得した「ノードインスタンス」を用いて、対象変数を第2変数定義テーブル131Bにおいて特定する。また、第3特定部154は、入力リストL2においてコメント名称に対応付けられているコメント(要素コメント)を特定し、つまり、コメント名称に対応する要素コメントを、入力リストL2から取得する。
 コメント更新部150は、第2変数特定処理において特定した対象変数の、第2変数定義テーブル131Bにおけるコメントを、入力リストL2における対象変数に対するコメントによって更新する(コメント更新処置、S250)。つまり、コメント更新部150は、第2変数特定処理において特定した対象変数の、第2変数定義テーブル131Bにおける要素コメントを、第3特定部154が入力リストL2から取得した要素コメントによって、更新する。
 (マップ情報の例)
  (第1変数を先祖(親)ノードとするツリーの、子ノードに相当する変数について)
 図11は、マップ情報132の一例を示す図である。前述の通り、マップ情報132は、「コメント名称」と、「インスタンス」と、を対応付けている。
 例えば、「startCondition[0]」というコメント名称は、先祖ノードに相当する変数(第1変数)の名称である「startCondition」と、第1変数に対して複数の第2変数の各々を識別するための識別情報である「[0]」とを含む。「startCondition」の直後の「[0]」は、以下の情報を示している。第1に、そのコメント名称に対応する要素変数は、変数名が「startCondition」である変数(第1変数)を先祖ノードとするツリーの、子ノードに相当することを示している。第2に、そのコメント名称に対応する要素変数は、第1変数の、配列要素である(つまり、第1変数は配列型の変数である)ことを示している。第3に、そのコメント名称に対応する要素変数を、第1変数を親ノードとするツリーの他の子ノードに相当する変数(他の配列要素)から識別するため識別情報は、「0」であることを示している。
 「startCondition[0]」というコメント名称が示すこれらの情報は、マップ情報132において、このコメント名称に対応付けられている「[0]のノード」というノードインスタンスが示す情報と同様である。すなわち、「[0]のノード」というノードインスタンスは、或る要素変数が、或る第1変数の子ノードに相当し、特に、その或る第1変数の配列要素であり、その或る第1変数の他の配列要素から「0」という識別情報によって識別されることを示している。
  (第1変数を先祖ノードとするツリーの、孫ノードに相当する変数について)
 同様に、例えば「startCondition[1].Member2」というコメント名称は、先祖ノードに相当する変数(第1変数)の名称である「startCondition」を含んでいる。また、「startCondition[1].Member2」というコメント名称は、そのコメント名称に対応する要素変数を、前記第1変数を先祖ノードとする他の子孫ノードに相当する変数から識別する識別情報として、「[1].Member2」を含む。
 「startCondition」の直後の「[1].Member2」は、以下の情報を示している。第1に、そのコメント名称に対応する要素変数は、変数名が「startCondition」である変数(第1変数)を先祖ノードとするツリーの、孫ノードに相当することを示している。第2に、そのコメント名称に対応する要素変数は、第1変数の配列要素[1]である構造体型変数の、構造体メンバである(つまり、第1変数は、構造体型変数を配列要素とする、配列型の変数である)ことを示している。
 第3に、そのコメント名称に対応する要素変数を、「第1変数を先祖ノードとするツリーの、他の孫ノードに相当する変数」から識別するため識別情報は、「1」および「Member2」であることを示している。
 具体的には、そのコメント名称に対応する要素変数は、「第1変数の配列要素[1]である構造体型変数の、構造体メンバである」点で、「第1変数の配列要素[0]である構造体型変数の、構造体メンバ」から識別される。つまり、そのコメント名称に対応する要素変数は、第1変数の配列要素[1]を親ノードとする点で、「第1変数の配列要素[0]を親ノードとするツリーの、子ノードに相当する変数」から識別される。
 また、そのコメント名称に対応する要素変数は、「第1変数の配列要素[1]である構造体型変数の、Member2である」点で、「第1変数の配列要素[1]である構造体型変数の、他の構造体メンバ(例えば、Member1)」から識別される。
 「startCondition[1].Member2」というコメント名称が示すこれらの情報は、マップ情報132において、このコメント名称に対応付けられている「[1]-Member2のノード」というノードインスタンスが示す情報と同様である。「[1]-Member2のノード」というノードインスタンスは、以下の情報を示している。すなわち、「[1]-Member2のノード」というノードインスタンスは、或る要素変数が、或る第1変数の孫ノードに相当し、特に、その或る第1変数の配列要素[1]である構造体型変数の、構造体メンバであることを示している。また、「[1]-Member2のノード」というノードインスタンスは、その或る要素変数は、「第1変数を先祖ノードとするツリーの、他の孫ノードに相当する変数」から、「1」および「Member2」という識別情報によって識別されることを示している。
 前述の通り、第2特定部153が、入力リストL2における要素変数の各々を特定するのに際して、マップ情報132を参照することは必須ではない。第2特定部153は、マップ情報132を参照せずに、入力リストL2の「コメント名称」から直接、第1変数を先祖ノードとするツリーにおいて、入力リストL2に要素コメントが格納された要素変数を識別するための識別情報を取得してもよい。
 マップ情報132における「ノードインスタンス」は、第2変数定義テーブル131Bにおける「ノードの説明」に対応付けられていてもよい。
 §4.変形例
 これまで、第1変数が配列型変数または構造体型変数であり、第2変数が配列要素または構造体メンバである例を説明してきた。しかしながら、第1変数が配列型変数または構造体型変数であり、第2変数が配列要素または構造体メンバであることは必須ではない。第2変数は、第1変数を先祖ノードとするツリーの子孫ノードとして表すことのできる変数であればよい。
 〔ソフトウェアによる実現例〕
 開発支援装置10の機能ブロック(具体的には、出力部120、入力部140、および、コメント更新部150)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(CenTral Processing Unit)を用いてソフトウェアによって実現してもよい。
 後者の場合、開発支援装置10は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)等を備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
 (付記事項)
 本発明の一態様に係る開発支援装置は、制御装置で実行されるプログラムをユーザが作成するのを支援する開発支援装置であって、前記プログラムで用いられる変数に対して、当該変数の定義に併せてユーザが任意で付すことのできるコメントを、外部出力するよう指示するユーザ操作を受け付ける操作受付部と、前記操作受付部によって前記ユーザ操作が受け付けられると、前記変数のうち、第1変数を先祖ノードとする木構造における子孫ノードとして表すことのできる複数の第2変数の各々に対するコメントを、前記第1変数の名称と、前記第1変数に対して前記複数の第2変数の各々を識別するための識別情報と、に対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する出力部と、を備えている。
 前記の構成によれば、前記開発支援装置は、前記複数の第2変数の各々に対するコメントを、前記第1変数の名称と前記識別情報とに対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する。
 したがって、前記開発支援装置は、ユーザにとって確認しやすく、かつ、編集しやすい形式で、前記複数の第2変数の各々に対するコメントのリストを出力することができるとの効果を奏する。つまり、前記開発支援装置は、ユーザが、前記複数の第2変数の各々に対するコメントを容易に確認し、かつ、容易に編集することを可能とするとの効果を奏する。
 また、前記開発支援装置は、表計算ソフト等を用いてユーザが編集可能な形式のファイルとして前記コメントを出力するので、ユーザは、前記ファイルを用いて、例えば、複数の言語の各々で前記コメントを作成し、管理することができるという効果を奏する。すなわち、前記開発支援装置は、前記複数の第2変数の各々に対する、複数の言語の各々で記載したコメントを、ユーザが容易に生成・管理することができるようにするという効果を奏する。
 本発明の一態様に係る開発支援装置において、前記第1変数は、配列型変数または構造体型変数であり、前記複数の第2変数の各々は、配列型変数の配列要素または構造体型変数のメンバであってもよい。
 前記の構成によれば、前記開発支援装置は、配列型変数の配列要素または構造体型変数のメンバである前記複数の第2変数の各々に対するコメントを、配列型変数または構造体型変数である前記第1変数の名称と、前記識別情報と、に対応付けて出力する。
 したがって、前記開発支援装置は、ユーザにとって確認しやすく、かつ、編集しやすい形式で、配列型変数の配列要素または構造体型変数のメンバである前記複数の第2変数の各々に対するコメントのリストを出力することができるとの効果を奏する。
 本発明の一態様に係る開発支援装置において、前記出力部は、前記複数の第2変数の各々に対するコメントを、前記第1変数の名称と前記識別情報とを含む1つの文字列に対応付けて、出力してもよい。
 前記の構成によれば、前記開発支援装置は、前記複数の第2変数の各々に対するコメントを、前記第1変数の名称と前記識別情報とを含む1つの文字列に対応付けて、表計算ソフト等で編集可能なファイルとして出力する。例えば、前記開発支援装置は、(A)前記第1変数の名称と前記識別情報とを含む1つの文字列と、(B)前記コメントと、を隣り合わせに表示したリストを、表計算ソフト等で編集可能なデータ形式で出力する。
 具体的には、前記開発支援装置は、例えば表計算ソフトにおいて編集可能なデータ形式のファイルとして、前記複数の第2変数の各々に対するコメントを、前記第1変数の名称と前記識別情報とを含む1つの文字列に対応付けて、出力する。この場合、前記第1変数の名称と前記識別情報とを含む1つの文字列は1つのセルに格納され、また、前記複数の第2変数の各々に対するコメントも1つのセルに格納されることになる。そのため、ユーザは、前記複数の第2変数の各々に対するコメントと、当該コメントが付された前記第2変数と、前記第2変数の先祖ノードである前記第1変数との関係を、一目で確認することができる。例えば、ユーザは、前記第1変数の名称と前記識別情報とを含む1つの文字列と、前記コメントを示す1つの文字列とが対応付けられたリストを、一目で確認することができるようになる。
 したがって、前記開発支援装置は、ユーザにとって視認性が極めて高く、かつ、編集しやすい形式で、前記複数の第2変数の各々に対するコメントのリストを出力することができるとの効果を奏する。
 本発明の一態様に係る開発支援装置において、前記識別情報は、前記木構造における前記第1変数から前記複数の第2変数の各々までのパスを示すパス情報を含み、前記パス情報は、前記木構造における前記第1変数から前記複数の第2変数の各々までの、1つ以上の親子関係の各々を、(1)親ノードに相当する変数が配列型変数であって、子ノードに相当する変数が前記配列型変数の配列要素である場合はカッコ([])を用いて示し、(2)親ノードに相当する変数が構造体型変数であって、子ノードに相当する変数が前記構造体型変数のメンバである場合はピリオド(.)を用いて示してもよい。
 前記の構成によれば、前記開発支援装置は、前記複数の第2変数の各々に対するコメントを、前記パス情報を含む前記識別情報と前記第1変数の名称とに対応付けて出力する。そして、前記パス情報において、前記第1変数から前記複数の第2変数の各々までの、1つ以上の親子関係の各々は、親と子が配列型変数と配列型変数の配列要素とであるのか、または、親と子が構造体型変数と構造体型変数のメンバとであるのか、が区別される。
 したがって、前記開発支援装置は、前記第1変数と前記複数の第2変数との関係をユーザが確認することができるようにして、前記ファイルを出力することができるとの効果を奏する。例えば、前記開発支援装置は、第2変数が配列型変数である前記第1変数の配列要素であるのか、第2変数が構造体型変数である前記第1変数のメンバであるのか、または、第2変数が、複数の構造体型変数の各々を配列要素とする配列型変数(構造体型配列)である前記第1変数の、所定の前記構造体型変数のメンバであるのか・・・等を、ユーザが確認することができるようにして、前記ファイルを出力することができるとの効果を奏する。
 本発明の一態様に係る開発支援装置において、前記第2変数の総数が所定値より大きいと、前記出力部は、前記ファイルを2以上に分割して出力してもよい。
 前記の構成によれば、前記開発支援装置は、前記第2変数の総数が前記所定値より大きいと、前記ファイルを2以上に分割して出力する。つまり、前記開発支援装置は、前記第2変数の総数が前記所定値より大きくなって、前記ファイルのデータサイズが大きくなり過ぎると判断すると、前記ファイルを2以上に分割して出力する。
 例えば、前記開発支援装置は、前記第1変数が共通である前記複数の第2変数の総数が前記所定値より大きいと、前記複数の第2変数の各々に付されたコメントを、2つ以上の前記ファイルに分けて出力する。また、例えば、前記開発支援装置は、複数の前記第1変数の各々を先祖ノードとする前記複数の第2変数の総数が前記所定値より大きいと、前記複数の第2変数の各々に付されたコメントを、2つ以上の前記ファイルに分けて出力する。
 ここで、前記第2変数の総数が増えれば、当然、前記ファイルのデータサイズも大きくなり、データサイズが大きくなり過ぎると、前記ファイルを開いて内容を確認したり、前記ファイルを編集したりするのが困難になることがある。
 したがって、前記開発支援装置は、前記ファイルを2以上に分割することによって、前記ファイルのデータサイズが大きくなり過ぎて前記ファイルのユーザ利便性が低下するという事態が発生するのを回避することができるとの効果を奏する。
 本発明の一態様に係る開発支援装置において、前記出力部は、前記第1変数が共通である前記複数の第2変数の各々に対するコメントを全て、1つの前記ファイルに出力してもよい。
 前記の構成によれば、前記開発支援装置は、前記第1変数が共通である前記複数の第2変数の各々に対するコメントを全て、1つの前記ファイルに出力する。したがって、前記開発支援装置は、前記第1変数が共通である前記複数の第2変数の各々に対するコメントが複数のファイルに分かれてしまい、ユーザにとって視認性および利便性が低下するのを回避することができるとの効果を奏する。
 本発明の一態様に係る開発支援装置は、前記第1変数の名称と前記識別情報とに対応付けられて前記第2変数の各々に対するコメントが記載された、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルのインポートを指示するユーザ操作が前記操作受付部によって受け付けられると、インポートを指示された前記ファイルをインポートする入力部と、前記入力部によってインポートされた前記ファイルにしたがって、記憶部に格納された前記第2変数の各々に対するコメントを更新するコメント更新部と、をさらに備えてもよい。
 前記の構成によれば、前記開発支援装置は、前記ユーザ操作にしたがって、前記第1変数の名称と前記識別情報とに対応付けられて前記第2変数の各々に対するコメントが記載されたファイルをインポートする。そして、前記開発支援装置は、インポートした前記ファイルにしたがって、記憶部に格納された前記第2変数の各々に対するコメントを更新する。特に、前記開発支援装置は、ユーザが容易に内容を確認し、かつ、容易に内容を編集できる形式のファイルに記載された、前記複数の第2変数の各々に対するコメントをインポートして、記憶部に格納された前記第2変数の各々に対するコメントを更新する。
 したがって、前記開発支援装置は、自装置が用いる前記第2変数の各々に対するコメントを、ユーザが、前記ファイルを用いて、容易に管理し、かつ、容易に編集できるようにすることができるとの効果を奏する。
 また、各々、複数の言語の各々で記載された複数の前記ファイルを準備することによって、前記開発支援装置は、インポートするファイルを変更することで、自装置が用いる前記第2変数の各々に対するコメントの言語を、容易に切り替えることができる。
 ユーザは、例えば、或る前記第2変数に対するコメントを、英語で記載したファイル、日本語で記載したファイル、中国語で記載したファイル、および、スペイン語で記載したファイルを、予め準備しておく。前記開発支援装置は、英語で記載したファイルをインポートすることにより、前記第2変数に対する英語のコメントを用いることができ、また、日本語で記載したファイルをインポートすることにより、前記第2変数に対する日本語のコメントを用いることができる。同様に、前記開発支援装置は、中国語で記載したファイルをインポートすることにより、前記第2変数に対する中国語のコメントを用いることができ、また、スペイン語で記載したファイルをインポートすることにより、前記第2変数に対するスペイン語のコメントを用いることができる。
 すなわち、前記開発支援装置は、自装置において前記第2変数に対する何語のコメントを用いるか(前述の例でいえば、英語、日本語、中国語、および、スペイン語のいずれのコメントを用いるか)を容易に切り替えることができるとの効果を奏する。
 本発明の一態様に係る制御方法は、制御装置で実行されるプログラムをユーザが作成するのを支援する開発支援装置の制御方法であって、前記プログラムで用いられる変数に対して、当該変数の定義に併せてユーザが任意で付すことのできるコメントを、外部出力するよう指示するユーザ操作を受け付ける操作受付ステップと、前記操作受付ステップにて前記ユーザ操作が受け付けられると、前記変数のうち、第1変数を先祖ノードとする木構造における子孫ノードとして表すことのできる複数の第2変数の各々に対するコメントを、前記第1変数の名称と、前記第1変数に対して前記複数の第2変数の各々を識別するための識別情報と、に対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する出力ステップと、を含んでいる。
 前記の構成によれば、前記制御方法は、前記複数の第2変数の各々に対するコメントを、前記第1変数の名称と前記識別情報とに対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する。
 したがって、前記制御方法は、ユーザにとって確認しやすく、かつ、編集しやすい形式で、前記複数の第2変数の各々に対するコメントのリストを出力することができるとの効果を奏する。つまり、前記制御方法は、ユーザが、前記複数の第2変数の各々に対するコメントを容易に確認し、かつ、容易に編集することを可能とするとの効果を奏する。
 また、前記制御方法は、表計算ソフト等を用いてユーザが編集可能な形式のファイルとして前記コメントを出力するので、ユーザは、前記ファイルを用いて、例えば、複数の言語の各々で前記コメントを作成し、管理することができるという効果を奏する。すなわち、前記制御方法は、前記複数の第2変数の各々に対する、複数の言語の各々で記載したコメントを、ユーザが容易に生成・管理することができるようにするという効果を奏する。
 本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
   10 開発支援装置
   20 PLC(制御装置)
  110 操作受付部
  120 出力部
  130 記憶部
  140 入力部
  150 コメント更新部
 S110 出力指示取得処理(操作受付ステップ)
 S160 エキスポート処理(出力ステップ)

Claims (10)

  1.  制御装置で実行されるプログラムをユーザが作成するのを支援する開発支援装置であって、
     前記プログラムで用いられる変数に対して、当該変数の定義に併せてユーザが任意で付すことのできるコメントを、外部出力するよう指示するユーザ操作を受け付ける操作受付部と、
     前記操作受付部によって前記ユーザ操作が受け付けられると、前記変数のうち、第1変数を先祖ノードとする木構造における子孫ノードとして表すことのできる複数の第2変数の各々に対するコメントを、前記第1変数の名称と、前記第1変数に対して前記複数の第2変数の各々を識別するための識別情報と、に対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する出力部と、を備える開発支援装置。
  2.  前記第1変数は、配列型変数または構造体型変数であり、
     前記複数の第2変数の各々は、配列型変数の要素または構造体型変数のメンバである
    請求項1に記載の開発支援装置。
  3.  前記出力部は、前記複数の第2変数の各々に対するコメントを、前記第1変数の名称と前記識別情報とを含む1つの文字列に対応付けて、出力する
    請求項1または2に記載の開発支援装置。
  4.  前記識別情報は、前記木構造における前記第1変数から前記複数の第2変数の各々までのパスを示すパス情報を含み、
     前記パス情報は、前記木構造における前記第1変数から前記複数の第2変数の各々までの、1つ以上の親子関係の各々を、
      親ノードに相当する変数が配列型変数であって、子ノードに相当する変数が前記配列型変数の要素である場合はカッコ([])を用いて示し、
      親ノードに相当する変数が構造体型変数であって、子ノードに相当する変数が前記構造体型変数のメンバである場合はピリオド(.)を用いて示す
    請求項1から3のいずれか1項に記載の開発支援装置。
  5.  前記第2変数の総数が所定値より大きいと、前記出力部は、前記ファイルを2以上に分割して出力する
    請求項1から4のいずれか1項に記載の開発支援装置。
  6.  前記出力部は、前記第1変数が共通である前記複数の第2変数の各々に対するコメントを全て、1つの前記ファイルに出力する
    請求項1から4のいずれか1項に記載の開発支援装置。
  7.  前記第1変数の名称と前記識別情報とに対応付けられて前記第2変数の各々に対するコメントが記載された、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルのインポートを指示するユーザ操作が前記操作受付部によって受け付けられると、インポートを指示された前記ファイルをインポートする入力部と、
     前記入力部によってインポートされた前記ファイルにしたがって、記憶部に格納された前記第2変数の各々に対するコメントを更新するコメント更新部と、をさらに備える
    請求項1から6のいずれか1項に記載の開発支援装置。
  8.  制御装置で実行されるプログラムをユーザが作成するのを支援する開発支援装置の制御方法であって、
     前記プログラムで用いられる変数に対して、当該変数の定義に併せてユーザが任意で付すことのできるコメントを、外部出力するよう指示するユーザ操作を受け付ける操作受付ステップと、
     前記操作受付ステップにて前記ユーザ操作が受け付けられると、前記変数のうち、第1変数を先祖ノードとする木構造における子孫ノードとして表すことのできる複数の第2変数の各々に対するコメントを、前記第1変数の名称と、前記第1変数に対して前記複数の第2変数の各々を識別するための識別情報と、に対応付けて、テキストエディタおよび表計算ソフトの少なくとも一方において編集可能なデータ形式のファイルとして出力する出力ステップと、
    を含む制御方法。
  9.  請求項1から7のいずれか1項に記載の開発支援装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
  10.  請求項9に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
PCT/JP2020/004316 2019-03-28 2020-02-05 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体 WO2020195195A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/440,180 US20220197238A1 (en) 2019-03-28 2020-02-05 Development support device, method for controlling development support device, and recording medium
EP20779668.1A EP3951519A4 (en) 2019-03-28 2020-02-05 DEVELOPMENT MEDIA DEVICE, METHOD FOR ORDERING DEVELOPMENT MEDIA DEVICE, INFORMATION PROCESSING PROGRAM AND RECORDING MEDIA
CN202080020816.4A CN113614659A (zh) 2019-03-28 2020-02-05 开发支持装置、开发支持装置的控制方法、信息处理程序、及记录介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-064684 2019-03-28
JP2019064684A JP7067520B2 (ja) 2019-03-28 2019-03-28 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体

Publications (1)

Publication Number Publication Date
WO2020195195A1 true WO2020195195A1 (ja) 2020-10-01

Family

ID=72611759

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/004316 WO2020195195A1 (ja) 2019-03-28 2020-02-05 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体

Country Status (5)

Country Link
US (1) US20220197238A1 (ja)
EP (1) EP3951519A4 (ja)
JP (1) JP7067520B2 (ja)
CN (1) CN113614659A (ja)
WO (1) WO2020195195A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868706B1 (en) * 2021-12-13 2024-01-09 Notion Labs, Inc. System, method, and computer program for syncing content across workspace pages
JP2024011850A (ja) * 2022-07-15 2024-01-25 オムロン株式会社 制御プログラム編集装置、編集方法、およびプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092676A (ja) * 2003-09-19 2005-04-07 Omron Corp プログラマブルコントローラおよびユニットならびにパラメータの編集方法
JP2005352612A (ja) 2004-06-08 2005-12-22 Omron Corp プログラム開発支援装置および変数名リスト表示方法
JP2008276526A (ja) * 2007-04-27 2008-11-13 Omron Corp 産業用機器のプログラム開発支援装置
JP2009176178A (ja) * 2008-01-28 2009-08-06 Meidensha Corp Plcのグローバル変数定義方式
JP2017142767A (ja) * 2016-02-09 2017-08-17 富士電機株式会社 コントローラシステム、変数連携支援装置
WO2018051441A1 (ja) * 2016-09-14 2018-03-22 三菱電機株式会社 ラダープログラム編集支援装置およびラダープログラムの編集方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4366605B2 (ja) 2005-09-16 2009-11-18 オムロン株式会社 開発支援装置およびプログラムならびに処理方法
JP4973867B2 (ja) 2007-10-19 2012-07-11 オムロン株式会社 Plc制御プログラム開発装置及びプログラム
JP6060626B2 (ja) * 2012-11-02 2017-01-18 東芝三菱電機産業システム株式会社 携帯端末リンケージ装置、携帯端末リンケージ装置と通信する制御システムおよび携帯端末装置
CN107679049A (zh) * 2016-08-02 2018-02-09 北京京东尚科信息技术有限公司 获取树形结构数据两节点间路径的方法、装置及系统
EP3301569A1 (en) * 2016-09-30 2018-04-04 Omron Corporation Program development supporting apparatus, program development supporting method, and program development supporting program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092676A (ja) * 2003-09-19 2005-04-07 Omron Corp プログラマブルコントローラおよびユニットならびにパラメータの編集方法
JP2005352612A (ja) 2004-06-08 2005-12-22 Omron Corp プログラム開発支援装置および変数名リスト表示方法
JP2008276526A (ja) * 2007-04-27 2008-11-13 Omron Corp 産業用機器のプログラム開発支援装置
JP2009176178A (ja) * 2008-01-28 2009-08-06 Meidensha Corp Plcのグローバル変数定義方式
JP2017142767A (ja) * 2016-02-09 2017-08-17 富士電機株式会社 コントローラシステム、変数連携支援装置
WO2018051441A1 (ja) * 2016-09-14 2018-03-22 三菱電機株式会社 ラダープログラム編集支援装置およびラダープログラムの編集方法

Also Published As

Publication number Publication date
US20220197238A1 (en) 2022-06-23
JP7067520B2 (ja) 2022-05-16
EP3951519A1 (en) 2022-02-09
JP2020166414A (ja) 2020-10-08
CN113614659A (zh) 2021-11-05
EP3951519A4 (en) 2022-12-07

Similar Documents

Publication Publication Date Title
WO2020195195A1 (ja) 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
TWI497241B (zh) Program display device, program display method and display program diagram of the program products
US20190306250A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
US20240192655A1 (en) Development assistance device, control method for development assistance device, and non-transitory computer readable medium
JP5425317B2 (ja) モーションsfcプログラム部品作成装置
JP2006294011A (ja) 制御プログラム開発支援装置
KR101726120B1 (ko) 프로그램 편집 장치, 프로그램 편집 방법 및 프로그램 편집 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP2007094724A (ja) プログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画面作成装置、画面作成プログラムおよびそのプログラムを記録した記録媒体
US11782589B2 (en) Development assistance device, method for controlling development assistance device, and recording media
JP5205988B2 (ja) Plcのグローバル変数定義方式
JP2007193425A (ja) 画面データ作成装置、画面データの編集方法及び画面データ編集プログラム
JP4620035B2 (ja) プログラム作成装置、プログラム作成方法およびその方法をコンピュータに実行させるプログラム
WO2021044654A1 (ja) 情報処理システム、プログラマブル表示器および情報処理装置
JP4970404B2 (ja) エディタ装置およびプログラム
JP2021082031A (ja) プログラム作成支援装置
WO2022185670A1 (ja) 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
WO2021192456A1 (ja) 情報処理装置およびラダープログラムを表示するためのプログラム
WO2021181796A1 (ja) サポート装置、サポートプログラムおよびサポート方法
JP5772639B2 (ja) 設計支援装置
WO2023157091A1 (ja) 画像生成プログラム、画像生成装置、プログラマブルコントローラシステム及び画像生成方法
WO2022249713A1 (ja) 制御システム、システムプログラムおよびデバッグ方法
JP2024004945A (ja) 設計装置および設計方法

Legal Events

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

Ref document number: 20779668

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020779668

Country of ref document: EP

Effective date: 20211028