WO2021181796A1 - サポート装置、サポートプログラムおよびサポート方法 - Google Patents

サポート装置、サポートプログラムおよびサポート方法 Download PDF

Info

Publication number
WO2021181796A1
WO2021181796A1 PCT/JP2020/047035 JP2020047035W WO2021181796A1 WO 2021181796 A1 WO2021181796 A1 WO 2021181796A1 JP 2020047035 W JP2020047035 W JP 2020047035W WO 2021181796 A1 WO2021181796 A1 WO 2021181796A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
list
file
variable
copy
Prior art date
Application number
PCT/JP2020/047035
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 EP20924716.2A priority Critical patent/EP4120034A4/en
Priority to CN202080097357.XA priority patent/CN115151873A/zh
Priority to US17/908,146 priority patent/US20230134007A1/en
Publication of WO2021181796A1 publication Critical patent/WO2021181796A1/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/058Safety, monitoring
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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/13004Programming the plc

Definitions

  • This disclosure relates to support devices, support programs and support methods.
  • Patent Document 1 discloses a programming device for setting a sequence program executed on a programmable controller in the programmable controller.
  • This programming device is a sequence program consisting of repetitions of basic structural units based on a program as a basic structural unit and external input data consisting of initial values, repetition rules, and number of repetitions corresponding to each variable name in the program. Is automatically created.
  • the variable name of the basic structural unit to be repeated is automatically rewritten according to the repetition rule input in advance.
  • the technique of Patent Document 1 cannot be applied when it is desired to arbitrarily change the variable name in the repeated basic structural unit. Therefore, it takes time and effort to input the variable name.
  • the present disclosure has been made in view of the above problems, and an object thereof is a support device, a support program, and a support method that can reduce the time and effort of the user's input work even when the variable name is arbitrarily changed. Is to provide.
  • a support device that supports the development of a control program executed in a control device that controls a control target includes a reception unit, an extraction unit, a generation unit, and a copy processing unit.
  • the reception unit accepts the selection of the target program to be copied from the control programs.
  • the extraction unit extracts the variable name from the target program.
  • the generator generates a list of extracted variable names.
  • the copy processing unit sets a copy program obtained by copying the target program in the control program.
  • the copy processing unit rewrites the variable names in the copy program based on the edited list obtained by editing the list.
  • the user can arbitrarily and easily change the variable name in the copy program by changing the variable name included in the list. As a result, even when it is desired to arbitrarily change the variable name of the copy program, it is possible to reduce the time and effort of the user's input work.
  • the generator exports a configuration file that includes the above list and has the specified file format.
  • the copy processing unit in the copy program by importing the edited file including the above-mentioned edited list generated by editing the setting file using an application capable of editing the file having the above-mentioned file format. Rewrite the variable name.
  • the user can easily change the variable name in the list included in the configuration file by using various functions of the application.
  • the generation unit includes the first error detection code corresponding to the target program in the setting file.
  • the copy processing unit permits the import of the edited file according to the match between the first error detection code and the second error detection code included in the edited file, and allows the first error detection code and the second error detection code to be imported. Do not allow the import of edited files depending on the code difference.
  • the generator displays the above list in the user interface.
  • the support device further includes an editorial unit that edits the above list to generate an edited list in response to input to the user interface.
  • the user can edit the list without using an application.
  • the extraction unit further extracts comments for each variable from the target program.
  • the generator includes the extracted comments in the above list.
  • the copy processing unit rewrites the comment for each variable in the copy program based on the edited list.
  • the user can arbitrarily and easily change the comment for each variable in the copy program by changing the comment included in the above list.
  • the extraction unit further extracts comments for each unit program constituting the target program from the target program.
  • the generator includes the extracted comments in the above list.
  • the copy processing unit rewrites the comment for each unit program in the copy program based on the edited list.
  • the user can arbitrarily and easily change the comment for each unit program constituting the copy program by changing the comment included in the above list.
  • the file format is CSV format. According to this disclosure, the user can easily edit the configuration file using a general purpose application such as Microsoft Excel®.
  • the support program is executed by a computer capable of communicating with the control device that controls the controlled object, and supports the development of the control program executed in the control device.
  • the support program causes the computer to perform the first to fourth steps.
  • the first step is a step of accepting the selection of the target program to be copied from the control programs.
  • the second step is a step of extracting the variable name from the target program.
  • the third step is to generate a list of extracted variable names.
  • the fourth step is a step of setting a copy program obtained by copying the target program in the control program.
  • the fourth step includes rewriting the variable name in the copy program based on the edited list obtained by editing the above list.
  • the support method in the support device that supports the development of the control program executed in the control device that controls the control target includes the above-mentioned first to fourth steps.
  • FIG. 1 is a diagram schematically showing an application scene of the support device 200 according to the present embodiment.
  • the support device 200 is a device that provides a development support environment for the control program 400.
  • the support device 200 has an editor function for creating and editing the control program 400 as a function for supporting the development of the control program 400.
  • the editing function may include an online editing function and an offline editing function.
  • the same program can be set at a plurality of locations of the control program 400.
  • the support device 200 has a function of setting the copy program 422 obtained by copying the target program 420 to be copied in the control program 400 in the control program 400. This reduces the user's effort required to create the control program 400.
  • the support device 200 illustrated in FIG. 1 includes a holding unit 20, a receiving unit 21, an extracting unit 22, a generating unit 23, and a copy processing unit 24 as a configuration for providing a development support environment for the control program 400. Be prepared.
  • the support device 200 further has an editorial unit 28.
  • the editorial unit 28 may be mounted on the support device 200 as a configuration that provides a development support environment for the control program 400, or may be mounted on the support device 200 as a configuration different from the configuration that provides the development support environment. ..
  • the holding unit 20 holds the control program 400 created or edited by the user.
  • the holding unit 20 is typically a function realized by a hard disk that non-volatilely stores various programs executed by the support device 200.
  • the control program 400 is executed in a PLC (Programmable Logic Controller) 100, which is an example of a control device for controlling a control target.
  • PLC Programmable Logic Controller
  • the reception unit 21 accepts user operations.
  • the reception unit 21 is an input interface that receives input signals from a mouse or keyboard.
  • the reception unit 21 accepts the selection of the target program 420 to be copied from the control program 400 being created.
  • the extraction unit 22 extracts the variable name from the target program 420 selected as the copy target. That is, the extraction unit 22 extracts the variable name for each of the one or more variables used in the target program 420.
  • the generation unit 23 generates a list 25 of the extracted variable names.
  • the editorial unit 28 edits the list 25 according to the user's instruction and generates the edited list 26. Specifically, the user changes the variable name included in the list 25 to a desired name.
  • the copy processing unit 24 sets the copy program 422 obtained by copying the target program 420 in the control program 400.
  • the copy processing unit 24 rewrites the variable name in the copy program 422 based on the edited list 26. That is, the copy processing unit 24 reflects the variable names included in the edited list 26 in the copy program 422.
  • the copy processing unit 24 may set the copy program 422 in the control program 400 as many times as the number of copies specified by the user. In this case, the list 25 and the edited list 26 are generated for each copy program 422.
  • the support device 200 reflects the variable names included in the edited list 26 obtained by editing the list 25 in the copy program 422. Therefore, the user can arbitrarily and easily change the variable name in the copy program 422 by changing the variable name included in the list 25. That is, according to the support device 200 according to the present embodiment, even when it is desired to arbitrarily change the variable name, it is possible to reduce the labor of the user's input work.
  • FIG. 2 is a schematic diagram showing a configuration example of the control system 1.
  • the control system 1 illustrated in FIG. 2 includes a plurality of PLC100-1, PLC100-2, PLC100-3, PLC100-4, ... (hereinafter, also collectively referred to as "PLC100") and a support device 200. include.
  • Each of the PLC100s is an example of a control device that controls a control target that is a field device such as a relay or a sensor.
  • the control system 1 may be configured to include one PLC100.
  • the control system 1 will explain a development support environment for one PLC 100 for the sake of simplicity.
  • the PLC 100 typically includes a CPU (Central Processing Unit) unit 10 that executes various programs including a control program 400 (see FIG. 1), a power supply unit 12 that supplies power to the CPU unit 10, and the like. It includes an I / O (Input / Output) unit 14 that exchanges signals from the field.
  • the I / O unit 14 is connected to the CPU unit 10 via the system bus 11.
  • the support device 200 can be connected to the PLC 100 and provides a development support environment for the control program 400 executed by the PLC 100.
  • a development support environment is provided by installing a support program on the support device 200.
  • the user can design the control program 400 for the PLC 100 by using the support program, and install the designed control program 400 on the PLC 100.
  • the support program is stored in the recording medium 250, distributed, and installed in the support device 200, for example. Instead of the recording medium 250, the support program may be installed from an external server device or the like via the network. As an example, the support device 200 is connected to the CPU unit 10 of the PLC 100 via a connection cable. The support device 200 is typically implemented in a personal computer.
  • the development support environment provided by the support device 200 may have a program editor (editing), a decoder, a simulator, and a monitor function for outputting these output information to a monitor such as a display.
  • the support device 200 may further have a function of acquiring the state value of the PLC 100 during operation and outputting it to a monitor such as a display.
  • the control program 400 to be developed complies with, for example, the international standard IEC61131-3.
  • the international standard IEC61131-3 is a programming language such as a ladder diagram (LD: Ladder Diagram), a function block diagram (FBD: Function Block Diagram), a sequential function chart (SFC: Sequential Function Chart), and an instruction list (IL: Instruction List).
  • Structured text ST: Structured Text
  • the control program according to this embodiment may be written in any programming language according to the international standard IEC61131-3.
  • ladder diagrams, function block diagrams, and sequential function charts are programming languages that require the description and arrangement of figures, and it takes time and effort to describe the program and set variable names.
  • the support device 200 according to the present embodiment it is easy to change the variable name. Therefore, the support device 200 according to the present embodiment is effective for developing the control program 400 described in any of the programming languages of the ladder diagram, the function block diagram, and the sequential function chart.
  • the support device 200 can display the contents of the control program 400. Specifically, the support device 200 can display the source code of the control program 400. The support device 200 displays, for example, the contents of the control program 400 during editing and updating of the control program 400.
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the PLC 100.
  • the PLC 100 realizes control over a controlled object by executing a pre-installed program by the processor.
  • the PLC 100 includes a processor 102 such as a CPU or MPU (Micro-Processing Unit), a chipset 104, a main memory 106, a flash memory 108, a USB (Universal Serial Bus) interface 116, and a memory. It includes a card interface 118, an internal bus controller 122, and a field bus controller 124.
  • the flash memory 108 stores the system program 110 and the control program 400.
  • the processor 102 reads the system program 110 and the control program 400 stored in the flash memory 108, expands them in the main memory 106, and executes them to realize control of the controlled object.
  • the system program 110 includes an instruction code for providing basic functions of the PLC 100 such as data input / output processing and execution timing control.
  • the control program 400 is created according to a control purpose (for example, a target line or process) by the user.
  • the control program 400 is, for example, a sequence program for executing sequence control and a motion program for executing motion control.
  • the control program 400 is not limited to these programs, and may be any program that can be installed on the PLC 100 and is created or edited by the user.
  • the chipset 104 realizes the processing of the PLC100 as a whole by controlling each component.
  • the internal bus controller 122 is an interface for exchanging data between the PLC 100 and the I / O unit 14 connected through the internal bus.
  • the fieldbus controller 124 is an interface for exchanging data between the PLC 100 and the I / O unit 16 connected through a fieldbus (not shown).
  • the internal bus controller 122 and the field bus controller 124 acquire the state values input to the I / O unit 14 and the I / O unit 16, respectively, and obtain the calculation results of the processor 102 in the I / O unit 14 and the I / O. It is output from the unit 16 as a command value.
  • the USB interface 116 controls the exchange of data by USB.
  • the support device 200 communicates with the PLC 100 via the USB interface 116.
  • the memory card interface 118 is configured so that the memory card 120 can be attached and detached, and data can be written to and read from the memory card 120.
  • the control program 400 created or edited by the user can be installed from the support device 200, the memory card 120, the distribution server, or the like.
  • FIG. 3 shows a configuration example in which the necessary functions are provided by the processor 102 executing the program, and some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC). It may be implemented using (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array). Alternatively, the main part of the PLC 100 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to execute a plurality of OSs (Operating Systems) having different uses in parallel, and to execute necessary applications on each OS.
  • OSs Operating Systems
  • FIG. 4 is a schematic view showing a hardware configuration example of the support device 200.
  • the support device 200 typically comprises a general purpose computer. From the viewpoint of maintainability at the manufacturing site where the PLC100 is arranged, a notebook-type personal computer having excellent portability is preferable.
  • the support device 200 includes a storage unit 201 and a CPU 202 that executes various programs including an OS.
  • the storage unit 201 includes a ROM (Read Only Memory) 204 for storing the BIOS and various data, a RAM (Random Access Memory) 206 for storing a work area for storing data necessary for executing a program on the CPU 202, and the RAM (Random Access Memory) 206. It includes a hard disk (HDD) 208 that non-volatilely stores programs and the like executed by the CPU 202. These components are connected via bus 220.
  • ROM Read Only Memory
  • RAM Random Access Memory
  • HDD hard disk
  • the HDD 208 stores a support program 230 for providing a control program development support environment and a general-purpose application 232.
  • the general-purpose application 232 is, for example, Microsoft Excel (registered trademark).
  • the reception unit 21, the extraction unit 22, the generation unit 23, and the copy processing unit 24 shown in FIG. 1 are realized by the CPU 202 executing the support program 230.
  • the editing unit 28 shown in FIG. 1 is realized by the CPU 202 executing the general-purpose application 232.
  • the support device 200 further includes an operation unit 203 including a keyboard 210 and a mouse 211 operated by the user to input instructions to the support device 200, and a display 214 for presenting information to the user.
  • the operation unit 203 and the display 214 form a user interface.
  • the support device 200 includes an optical recording medium reading device 216 for reading the support program 230 and the general-purpose application 232 from the recording medium 250.
  • the support program 230 and the general-purpose application 232 may be installed from a memory card, a distribution server, or the like.
  • the USB interface 218 controls the exchange of data by USB.
  • the support device 200 communicates with the PLC 100 via the USB interface 218.
  • the communication between the support device 200 and the PLC 100 is not limited to USB, and may be Ethernet (registered trademark) or the like.
  • FIG. 4 shows a configuration example in which necessary functions are provided by a processor such as a CPU 202 executing a program, and some or all of these provided functions are provided by a dedicated hardware circuit (for example,). , ASIC, FPGA, etc.).
  • a dedicated hardware circuit for example, ASIC, FPGA, etc.
  • virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • the CPU 202 creates a control program 400 in response to an input to the operation unit 203.
  • the CPU 202 causes the control program 400 being created to be displayed on the display 214.
  • FIG. 5 is a diagram showing an example of a display screen 30 including the control program 400 being created.
  • the display screen 30 illustrated in FIG. 5 is displayed on the display 214.
  • the display screen 30 shows the control program 400 described in the function block diagram.
  • the control program 400 is composed of a line-by-line unit program 440.
  • a line number 450 is assigned to each line.
  • the user can input a comment (hereinafter, referred to as "line comment") for each unit program 440.
  • the CPU 202 associates the input line comment with the unit program 440 and sets it in the control program 400.
  • line comments are entered to represent the contents of the corresponding unit program 440.
  • variable comment 470 The user can set a variable name 460 and a comment (hereinafter, referred to as "variable comment 470") for each variable used in each unit program 440.
  • variable comment 470 For simplification, reference numerals "460" and "470” are given only to some variables in FIG.
  • Variable comment 470 does not have to be set for all variables. That is, the user can input the variable comment 470 only for the desired variable.
  • the variable comment 470 is input so as to represent the type, content, and the like of the variable.
  • the variable comment 470 is not set for the variable corresponding to the variable name 460_1.
  • variable comments 470_2 and 470_3 are set for the variables corresponding to the variable names 460_2 and 460_3, respectively.
  • the CPU 202 operating as the reception unit 21 accepts the selection of the target program 420 to be copied from the control program 400 on the display screen 30.
  • the target program 420 comprises one or more unit programs 440.
  • the display screen 30 includes a frame line 31 indicating a copy target range.
  • the user can change the copy target range by changing the size of the border 31.
  • the CPU 202 selects a program including one or a plurality of unit programs 440 in the frame line 31 as the target program 420 in response to the copy instruction being input to the operation unit 203.
  • a program including two unit programs 440 corresponding to the line numbers 450 indicating “3” and “4” is selected as the target program 420.
  • FIG. 6 is a diagram showing an example of a setting screen 40 for setting conditions for copy processing.
  • the setting screen 40 includes an input field 41 for inputting the number of copies of the target program 420.
  • the user may enter the required number of copy programs 422 obtained by copying the target program 420 in the input field 41.
  • the CPU 202 operating as the copy processing unit 24 (see FIG. 1) generates the same number of copy programs 422 as the number of copies by copying the target program 420 as many times as the number of copies.
  • the variable name, the variable comment, and the line comment in the copy program 422 are the same as the variable name 460, the variable comment 470, and the line comment in the target program 420, respectively.
  • the CPU 202 rewrites the variable name in the copy program 422 according to any one of the first to third methods.
  • the first method is a method of rewriting the variable name in the copy program 422 to a name obtained by adding the first number among the numbers included in the variable name 460 in the target program 420 by the offset amount. For example, when the variable name 460 in the target program 420 is "SBX_U02_IN00", the variable name in the copy program 422 is rewritten to "SBX_U03_IN00" by adding the first number "02" by the offset "1".
  • variable name in the k-th copy program 422 is rewritten to the variable name obtained by adding the first digit of the variable name 460 in the target program 420 by k times the offset.
  • the second method is a method of rewriting the variable name in the copy program 422 to a name obtained by adding the last number among the numbers included in the variable name 460 in the target program 420 by the offset amount. For example, when the variable name 460 in the target program 420 is "SBX_U02_IN00", the variable name in the copy program 422 is rewritten to "SBX_U02_IN01" by adding the trailing number "00" by the offset "1".
  • variable name in the k-th copy program 422 is rewritten to the variable name obtained by adding the number at the end of the variable name 460 in the target program 420 by k times the offset.
  • the third method is a method of arbitrarily rewriting the variable name in the copy program 422. The details of the third method will be described later.
  • the setting screen 40 includes radio buttons 43 to 45 corresponding to the first to third methods, respectively.
  • the radio button 43 When the radio button 43 is selected, the CPU 202 rewrites the variable name in the copy program 422 according to the first method.
  • the radio button 44 When the radio button 44 is selected, the CPU 202 rewrites the variable name in the copy program 422 according to the second method.
  • the radio button 45 When the radio button 45 is selected, the CPU 202 rewrites the variable name in the copy program 422 according to the third method.
  • the setting screen 40 includes the variable list 46.
  • the variable list 46 is a list in which the variable name, the data type, and the variable comment are associated with each variable used in the target program 420.
  • the CPU 202 analyzes the target program 420 to extract the variable name, the data type, and the variable comment for each variable.
  • the CPU 202 creates a variable list 46 associated with the extracted variable name, data type, and variable comment, and includes the created variable list 46 in the setting screen 40.
  • the variable list 46 further includes a check box 47 for each variable and an input field 48 for inputting an offset. A default value "1" is input in the input field 48.
  • variable list 46 is used to set the copy processing conditions according to the first method or the second method. Therefore, the CPU 202 accepts input to the check box 47 and the input field 48 of the variable list 46 in response to the selection of the radio button 43 or the radio button 44.
  • the CPU 202 rewrites the variable name of the copy program 422 according to the offset input in the input field 48 only for the variable for which the check box 47 is checked. Therefore, the user only needs to check the check box 47 for the variable for which the variable name is to be set according to the offset. Note that the CPU 202 accepts a check in the check box 47 only for variables whose variable names include numbers.
  • variable name is rewritten so that the number is changed by the offset.
  • the radio button 45 selects the radio button 45 corresponding to the third method.
  • the setting screen 40 has a button 49 for exporting the setting file 300 including the list 25 (see FIG. 1) and a button 50 for importing the edited file 302 including the edited list 26 (see FIG. 1). include. Buttons 49, 50 relate to the third method. Therefore, the CPU 202 accepts the operations of the buttons 49 and 50 in response to the selection of the radio button 45.
  • the setting screen 40 further includes a display field 51 for displaying the file path of the setting file 300. In the initial state, nothing is described in the display column 51.
  • the CPU 202 In response to the operation of the button 49, the CPU 202 displays a dialog box on the display 214 prompting the user to specify the file format and file path of the setting file 300.
  • FIG. 7 is a diagram showing an example of a dialog box 55 prompting the user to specify the file format and file path of the setting file 300.
  • the dialog box 55 has an input field 56 for specifying the directory of the setting file 300, an input field 57 for specifying the file name, and an input field 58 for specifying the file format.
  • the input field 58 is a field for selecting one file format from one or more predetermined file formats.
  • a file format for example, CSV format
  • the user inputs the desired directory and file name in the input fields 56 and 57, respectively. Further, the user operates the input field 58 to specify the file format.
  • the file path corresponding to the input to the input fields 56, 57, 58 is reflected in the display field 51 of FIG.
  • the dialog box 55 includes a button 59 for instructing the execution of the export of the setting file 300.
  • the CPU 202 which operates as the extraction unit 22 (see FIG. 1) in response to the operation of the button 59, extracts the variable name 460 from the target program 420.
  • the CPU 202 may further extract at least one of the variable comment 470 for each variable and the line comment for each unit program 440 constituting the target program 420 from the target program 420.
  • the CPU 202 operating as the generation unit 23 creates a setting file 300 including the list 25 of the extracted variable names 460 and having the specified file name and file format.
  • the CPU 202 saves the created setting file 300 in a designated directory.
  • the CPU 202 may include the variable comment 470 and the line comment extracted from the target program 420 in the setting file 300.
  • the CPU 202 may include an error detection code corresponding to the target program 420 in the setting file 300. For example, the CPU 202 calculates the CRC (Cyclic Redundancy Check) of the target program 420 and writes the CRC in the setting file 300.
  • CRC Cyclic Redundancy Check
  • FIG. 8 is a diagram showing an example of the target program 420. Note that FIG. 8 shows only the first unit program 440 of the target programs 420.
  • FIG. 9 is a diagram showing an example of the setting file 300 corresponding to the target program 420 shown in FIG.
  • the CPU 202 extracts the variable names 460_4 to 460_7 from the target program 420 illustrated in FIG. Further, when the variable comment is set, the CPU 202 also extracts the variable comment. Specifically, the CPU 202 extracts the variable comments 470_4, 470_6 set for the variable names 460_4 and 460_6, respectively. Further, the CPU 202 also extracts line comments corresponding to each unit program 440 constituting the target program 420.
  • FIG. 9 shows a setting file 300 having a CSV format. As shown in FIG. 9, the file name 310, the file version 320, and the error detection code 330 are described in the first line of the setting file 300.
  • a character string that identifies the target program 420 and the copy program 422 for the specified number of copies is described.
  • [Template] identifies the target program 420 to be copied.
  • [K] (k is an integer from 1 to the number of copies) identifies the k-th copy program 422.
  • [Template] is described in the item (field) of the first column of the second row.
  • [K] is described in the item in the (2k + 1) th column of the second row.
  • ⁇ Variable> indicates the variable name.
  • ⁇ Comment> indicates a variable comment or a line comment.
  • ⁇ Variable> is described in the items of the first column and the (2k + 1) column of the third row.
  • ⁇ Comment> is described in the items of the second column and the (2k + 2) column of the third row.
  • FIG. 9 shows a portion of List 25_1 generated for the first copy program 422 and a portion of List 25_1 generated for the second copy program 422.
  • variable names extracted from the target program 420 are described in the order of appearance.
  • "// Network Comment” is added to the line immediately before the line in which the variable names extracted from each unit program 440 are described. Will be described.
  • "// Network Comment” is described in the items in the 4th and 9th rows of the first column. Therefore, the four variable names extracted from the first unit program 440 of the target program 420, that is, the variable names 460_4 to 460_7 shown in FIG. 8, are described in the items in the 5th to 8th rows of the first column, respectively. There is.
  • the row comment and the variable comment extracted from the target program 420 are described.
  • the line comment is described in the item next to the item in which "// Network Comment” is described.
  • the row comment "Input_E-STOP 01" corresponding to the unit program 440 shown in FIG. 8 is described in the item in the fourth row of the second column.
  • Variable comments are described in the item next to the item in which the corresponding variable name is described.
  • the variable comments 470_4 and 470_6 shown in FIG. 8 are described in the items following the items in which the variable names 460_4 and 460_6 are described, that is, in the items in the fifth and seventh rows of the second column, respectively. ..
  • the character string described in the items after the 4th row in the 1st column is copied to the items after the 4th row in the (2k + 1) column.
  • the character strings described in the items after the 4th row in the 2nd column are copied to the items after the 4th row in the (2k + 2) column.
  • the exported setting file 300 has a file format that can be edited by the general-purpose application 232. Therefore, the user can edit the setting file 300 by using the general-purpose application 232. For example, the user edits the variable name, the variable comment, and the line comment described in the item of the setting file 300 having the CSV format by using the general-purpose application 232 which is Microsoft Excel (registered trademark). At this time, the user can edit the variable name, the variable comment, and the line comment by using various functions of the general-purpose application 232. Alternatively, the user overwrites one or more variable names and variable comments described in the configuration file 300 by using one or more variable names and variable comments described in the separately prepared variable list file. You may. In this way, the user can easily change the variable name, variable comment and line comment.
  • the user may move the setting file 300 to an external information processing device and edit the setting file 300 using a general-purpose application installed in the information processing device.
  • the edited file 302 may be created by overwriting the setting file 300, or may be created separately from the setting file 300.
  • FIG. 10 is a diagram showing an example of an edited file 302 obtained by editing the setting file 300 shown in FIG.
  • the file name 312, the file version 322, and the error detection code 332 are described in the first line of the edited file 302. Unless the file name 310, file version 320, and error detection code 330 of the setting file 300 are edited when the edited file 302 is created, the file name 312, file version 322, and error detection code 332 are the file name 310, file version. Matches 320 and error detection code 330, respectively.
  • the edited file 302 shown in FIG. 10 differs from the setting file 300 shown in FIG. 9 in the following points.
  • the user may add, change or delete numbers for variable names, variable comments and line comments, and may add, change or delete non-numeric character strings. In this way, the user can arbitrarily change the variable name, variable comment and line comment.
  • the items from the 4th row onward in the (2k + 1) and (2k + 2) columns of the edited file 302 correspond to the edited list 26 of the variable name, the variable comment, and the row comment corresponding to the kth copy program 422.
  • FIG. 10 shows a portion of the edited list 26_1 generated for the first copy program 422 and a portion of the edited list 26_1 generated for the second copy program 422.
  • the CPU 202 which operates as the copy processing unit 24 (see FIG. 1) in response to the operation of the button 50, displays a dialog box on the display 214 prompting the user to specify the file path of the edited file 302.
  • FIG. 11 is a diagram showing an example of a dialog box 60 prompting the user to specify the file path of the edited file 302.
  • the dialog box 60 includes an input field 61 for designating the directory of the edited file 302 and an input field 62 for designating the file name.
  • the directories and file names corresponding to the file paths of the setting file 300 are displayed in the input fields 61 and 62. Therefore, when the edited file 302 is created by overwriting the setting file 300, it is possible to save the user the trouble of inputting into the input fields 61 and 62.
  • the dialog box 60 includes a button 63 for instructing the execution of importing the edited file 302.
  • the CPU 202 imports the edited file 302 and rewrites the variable name in the copy program 422.
  • the CPU 202 further rewrites the variable comment and the line comment in the copy program 422.
  • FIG. 12 is a diagram showing a copy program 422 rewritten according to the edited file 302 shown in FIG. In FIG. 12, only the head unit program 440 constituting the copy program 422 is shown.
  • variable names 460_8 to 460_11 in the copy program 422 are changed from the variable names 460_4 to 460_7 shown in FIG. 8, respectively.
  • variable comment 470_8 in the copy program 422 is changed from the variable comment 470_4 shown in FIG.
  • the character strings of the items in the fourth column and the seventh line of the edited file 302 shown in FIG. 11 match the character strings of the items in the fourth column and the seventh line of the setting file 300 shown in FIG. Therefore, the variable comment 470_10 in the copy program 422 is the same as the variable comment 470_6 shown in FIG.
  • the line comment corresponding to the first unit program 440 constituting the copy program 422 is changed from "Input_E-STOP 01" to "Input_E-STOP 03" according to the edited file 302.
  • the setting screen 40 includes a button 52 for executing the setting of the copy program 422 to the control program 400.
  • the CPU 202 which operates as the copy processing unit 24 (see FIG. 1) in response to the operation of the button 52, sets (pastes) the copy program 422 in the control program 400.
  • the setting screen 40 includes a button 53 for canceling the copy process.
  • the CPU 202 cancels the copy process.
  • Support device processing flow Next, the processing flow of the support device 200 when exporting the setting file 300 and the processing flow of the support device 200 when importing the edited file 302 will be described.
  • the target program 420 was selected on the display screen 30 shown in FIG. 5 (i)
  • the number of copies was input on the setting screen 40 shown in FIG. 6 (ii)
  • the radio button 45 was selected.
  • the CPU 202 creates a copy program 422 having the same number of copies as the number of copies input in the input field 41 of the setting screen 40, and sets the copy program 422 in the control program 400.
  • FIG. 13 is a flowchart showing an example of the processing flow of the support device 200 when exporting the setting file 300.
  • the CPU 202 displays a screen (for example, the dialog box 55 shown in FIG. 7) on the display 214 prompting the user to specify the file path and file format of the setting file 300 in response to the operation of the button 49 on the setting screen 40 (see FIG. 6). Display (step S1).
  • a screen for example, the dialog box 55 shown in FIG. 7
  • the CPU 202 displays a screen (for example, the dialog box 55 shown in FIG. 7) on the display 214 prompting the user to specify the file path and file format of the setting file 300 in response to the operation of the button 49 on the setting screen 40 (see FIG. 6). Display (step S1).
  • the CPU 202 creates an empty setting file 300 according to the specified file format, and saves the created setting file 300 in the location indicated by the specified file path (step S2).
  • step S2 the CSV format setting file 300 has been created.
  • the CPU 202 calculates the error detection code (for example, CRC) of the target program 420 to be copied (step S3).
  • the error detection code for example, CRC
  • the CPU 202 temporarily stores the file name, file version, and CRC in the RAM 206 (step S4). Further, the CPU 202 writes the saved file name, file version, and CRC on the first line of the setting file 300 (step S5).
  • the CPU 202 writes the extracted variable name, variable comment, and line comment data set (data set showing Listing 25) into the setting file 300 for the template (step S7).
  • the data set for the template corresponds to the variable name, variable comment, and line comment of the target program 420 to be copied.
  • the CPU 202 writes the data set to the setting file 300 for the number of copies (step S8).
  • the data set written for the number of copies corresponds to the variable name, variable comment, and line comment of the copy program 422.
  • the CPU 202 ends the process of exporting the setting file 300.
  • FIG. 14 is a flowchart showing an example of the processing flow of the support device 200 when the edited file 302 is imported.
  • the CPU 202 displays on the display 214 a screen (for example, the dialog box 60 shown in FIG. 9) prompting the user to specify the file path of the edited file 302 in response to the operation of the button 50 on the setting screen 40 (see FIG. 6). (Step S11).
  • the CPU 202 opens the edited file 302 saved in the specified file path (step S12). Further, the CPU 202 reads the file name, the file version, and the CRC from the edited file 302 (step S13).
  • the CPU 202 determines whether or not the read file name, file version, and CRC match the file name, file version, and CRC (stored data) temporarily saved in the RAM 206 in step S4 shown in FIG. 13 ( Step S14).
  • step S14 the CPU 202 permits the import of the edited file 302 and continues the processing after step S15. If NO in step S14, the CPU 202 does not allow the edited file 302 to be imported. Specifically, the CPU 202 displays the import failure on the display 214 and ends the import process. As a result, if a file different from the file name, file version, and CRC described in the first line of the setting file 300 exported according to the flowchart shown in FIG. 13 is erroneously specified, the processing using the file is continued. It can be prevented from being done.
  • step S16 the CPU 202 permits the import of the edited file 302, and repeats the rewrite loop of steps S17 to S20 for each copy program 422 for the number of copies.
  • step S18 the CPU 202 reads the character string of the edited list 26 corresponding to the kth copy program 422 from the edited file 302. Specifically, the CPU 202 reads the character strings described in the items after the fourth row of the (2k + 1) column and the (2k + 2) column of the edited file 302 shown in FIG.
  • step S19 the CPU 202 rewrites the variable name, the variable comment, and the line comment in the k-th copy program 422 according to the read character string.
  • the configuration file 300 including Listing 25 (see FIG. 1) and having the specified file format is exported.
  • the edited file 302 including the edited list 26 (see FIG. 1) generated by editing the setting file 300 is imported.
  • the user can edit the setting file 300 and create the edited file 302 by using the general-purpose application 232 different from the support program 230.
  • the support program 230 may provide the ability to edit the list 25 to generate the edited list 26. This eliminates the need for a general purpose application 232.
  • the editorial unit 28 is realized by the CPU 202 executing the support program 230.
  • the CPU 202 operating as the generation unit 23 generates the list 25 of the variable name 460 extracted from the target program 420, and displays the generated list 25 on the display 214.
  • the CPU 202 which operates as the editing unit 28, edits the list 25 to generate the edited list 26 in response to the input to the operation unit 203.
  • the CPU 202 operating as the copy processing unit 24 rewrites the variable name of the copy program 422 based on the generated edited list 26.
  • the CPU 202 may extract the variable comment 470 and the line comment from the target program 420, and include the extracted variable comment 470 and the line comment in the list 25. In this case, the CPU 202 rewrites the variable comment and the line comment of the copy program 422 based on the edited list 26.
  • FIG. 15 is a diagram showing an example of the setting screen 40A in the modified example.
  • the setting screen 40A includes a button 64 for arbitrarily setting a variable name in the copy program 422.
  • the CPU 202 accepts the operation of the button 64 in response to the selection of the radio button 45.
  • the CPU 202 which operates as the extraction unit 22, extracts the variable name 460 from the target program 420 in response to the operation of the button 64.
  • the CPU 202 may further extract at least one of the variable comment 470 for each variable and the line comment for each unit program 440 constituting the target program 420 from the target program 420.
  • the CPU 202 generates the extracted variable name 460, the variable comment 470, and the line comment list 25, and displays the window 65 including the generated list 25 on the display 214.
  • the CPU 202 generates and displays the list 25 for the specified number of copies.
  • the operation unit 203 receives an input of an edit instruction for the list 25 in the window 65.
  • the CPU 202 which operates as the editing unit 28, edits the list 25 to create an edited list 26 (see FIG. 1) in response to an input to the operation unit 203.
  • the CPU 202 generates internal data indicating the edited list 26 in response to the operation of the button 67 of the window 65, and records the generated internal data in the RAM 206.
  • the CPU 202 operating as the copy processing unit 24 rewrites the variable name, the variable comment, and the line comment in the copy program 422 based on the internal data on the RAM 206 in response to the operation of the button 52 on the setting screen 40A. After that, the CPU 202 sets (pastes) the copy program 422 in the control program 400.
  • steps S1 to S5 shown in FIG. 13 are omitted.
  • steps S7 and S8 a step is performed in which the extracted variable name 460, variable comment 470, and line comment list 25 are generated, and the generated list 25 is displayed on the display 214.
  • steps S11 to S16 shown in FIG. 14 are omitted.
  • step S18 a step of reading the character strings corresponding to the variable name, the variable comment, and the line comment from the edited list 26 (see FIG. 1) indicated by the internal data recorded in the RAM 206 is performed.
  • the support device 200 supports the development of the control program 400 executed in the PLC 100 that controls the controlled object.
  • the support device 200 includes a reception unit 21, an extraction unit 22, a generation unit 23, and a copy processing unit 24.
  • the reception unit 21 accepts the selection of the target program 420 to be copied from the control program 400.
  • the extraction unit 22 extracts the variable name from the target program 420.
  • the generation unit 23 generates a list 25 (see FIG. 1) of the extracted variable names.
  • the copy processing unit 24 sets the copy program 422 obtained by copying the target program 420 in the control program 400.
  • the copy processing unit 24 rewrites the variable name in the copy program 422 based on the edited list 26 obtained by editing the list 25.
  • the user can arbitrarily and easily change the variable name in the copy program 422 by changing the variable name included in the list 25 by using various functions of the application. As a result, even when it is desired to arbitrarily change the variable name, it is possible to reduce the time and effort of the user's input work.
  • the generation unit 23 exports the setting file 300 including the list 25 and having the specified file format.
  • the copy processing unit 24 rewrites the variable name in the copy program 422 by importing the edited file 302 including the edited list 26 generated by editing the setting file 300 using the general-purpose application 232.
  • the general-purpose application 232 is an application capable of editing a file having a specified file format. As a result, the user can easily change the variable name in the list 25 included in the setting file 300 by using various functions of the general-purpose application 232.
  • the generation unit 23 includes an error detection code (for example, CRC) corresponding to the target program 420 in the setting file 300.
  • the copy processing unit 24 edits according to the fact that the error detection code (first error detection code) included in the setting file 300 and the error detection code (second error detection code) included in the edited file 302 match. Allows import of completed file 302. The copy processing unit 24 does not allow the edited file 302 to be imported depending on the difference between the first error detection code and the second error detection code.
  • CRC error detection code
  • the generation unit 23 may display the list 25 on the display 214 configured as a user interface.
  • the support device 200 further includes an editing unit 28 that edits the list 25 and generates an edited list 26 in response to an input to the operation unit 203 configured as a user interface. As a result, the user can edit the list 25 without using the general-purpose application 232.
  • the extraction unit 22 may further extract variable comments for each variable from the target program 420.
  • the generation unit 23 includes the extracted variable comments in the list 25.
  • the copy processing unit 24 rewrites the variable comment in the copy program 422 based on the edited list 26. As a result, the user can arbitrarily and easily change the variable comment in the copy program 422 by changing the variable comment included in the list 25.
  • the extraction unit 22 may further extract line comments for each unit program 440 constituting the target program 420 from the target program 420.
  • the generation unit 23 includes the extracted line comments in the list 25.
  • the copy processing unit 24 rewrites the line comment for each unit program 440 in the copy program 422 based on the edited list 26. As a result, the user can arbitrarily and easily change the line comment in the copy program 422 by changing the line comment included in the list 25.
  • the file format is, for example, CSV format. This allows the user to easily edit the configuration file 300 using a general purpose application 232 such as Microsoft Excel®.
  • the present embodiment includes the following disclosure.
  • a support device (200) that supports the development of a control program (400) executed by a control device (100) that controls a controlled object.
  • the reception unit (21, 202) that accepts the selection of the target program (420) to be copied from the control program (400), and
  • An extraction unit (22,202) that extracts variable names from the target program (420), and
  • a generator (23,202) that generates a list (25) of the extracted variable names, and a generator (23,202).
  • a copy processing unit (24, 202) for setting a copy program (422) obtained by copying the target program (420) in the control program (400) is provided.
  • the copy processing unit (24, 202) rewrites the variable name in the copy program (422) based on the edited list (26) obtained by editing the list (25), the support device (200).
  • the generator (23,202) exports a configuration file (300) that includes the list (25) and has a specified file format.
  • the edited list (26) generated by the copy processing unit (24, 202) editing the setting file (300) using an application (232) capable of editing a file having the file format.
  • the support device (200) according to configuration 1, which rewrites the variable name in the copy program (422) by importing the edited file (302) including the above.
  • the generation unit (23, 202) includes the first error detection code corresponding to the target program (420) in the setting file (300).
  • the copy processing unit (24, 202) permits the import of the edited file according to the match between the first error detection code and the second error detection code included in the edited file (302).
  • the support device (200) according to the configuration 2 does not allow the import of the edited file (302) depending on the difference between the first error detection code and the second error detection code.
  • the generator (23,202) displays the list (25) in the user interface (214).
  • the support device (200) further The support device (200) according to configuration 1, further comprising an editing unit (28) that edits the list (25) and generates the edited list (26) in response to an input to the user interface (203). ..
  • the extraction unit (22, 202) further extracts comments for each variable from the target program (420).
  • the generator (23,202) includes the extracted comment in the list (25).
  • the support device (24,202) according to any one of configurations 1 to 4, wherein the copy processing unit (24, 202) rewrites a comment for each variable in the copy program (422) based on the edited list (26). 200).
  • the extraction unit (22, 202) further extracts comments for each unit program (440) constituting the target program (420) from the target program (420).
  • the generator (23,202) includes the extracted comment in the list (25).
  • the copy processing unit (24, 202) rewrites a comment for each unit program (440) in the copy program (422) based on the edited list (26), according to any one of configurations 1 to 4. Support device (200).
  • a support program (230) that is executed by a computer capable of communicating with a control device (100) that controls a controlled object and supports the development of a control program (400) that is executed by the control device (100).
  • the support program (230) is attached to the computer (200).
  • a step of accepting the selection of the target program (420) to be copied from the control program (400), and The step of extracting the variable name from the target program (420) and The step of generating the extracted list (25) of the variable names, and The step of setting the copy program (422) obtained by copying the target program (420) in the control program (400) is executed.
  • the step to be set is a support program including a step of rewriting a variable name in the copy program (422) based on an edited list (26) obtained by editing the list (25).
  • (Structure 9) It is a support method in a support device (200) that supports the development of a control program (400) executed in a control device that controls a controlled object.
  • a step of setting a copy program (422) obtained by copying the target program (420) in the control program (400) is provided.
  • the setting step is a support method including a step of rewriting a variable name in the copy program (422) based on an edited list (26) obtained by editing the list (25).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)

Abstract

サポート装置は、制御プログラムの中からコピー対象となる対象プログラムの選択を受け付け、対象プログラムをコピーすることにより得られるコピープログラムを制御プログラム内に設定する。サポート装置は、対象プログラムから抽出された変数名のリストを生成する。サポート装置は、上記のリストの編集により得られる編集済リストに基づいて、コピープログラムにおける変数名を書き換える。これにより、変数名を任意に変更したい場合であっても、ユーザの入力作業の手間が低減される。

Description

サポート装置、サポートプログラムおよびサポート方法
 本開示は、サポート装置、サポートプログラムおよびサポート方法に関する。
 従来、プログラマブルコントローラのプログラムの作成および編集を支援するサポート装置が知られている。例えば、特開平4-286002号公報(特許文献1)には、プログラマブルコントローラ上で実行されるシーケンスプログラムを、プログラマブルコントローラに設定するためのプログラミング装置が開示されている。このプログラミング装置は、基本構成単位としてのプログラムと、該プログラムにおける変数名各々に対応して初期値、繰り返し規則および繰り返し数とからなる外部入力データとに基づき、基本構成単位の繰り返しからなるシーケンスプログラムを自動作成する。
特開平4-286002号公報
 特許文献1に開示のプログラミング装置によれば、予め入力された繰り返し規則に従って、繰り返される基本構成単位の変数名が自動的に書き換えられる。しかしながら、繰り返される基本構成単位において変数名を任意に変更したい場合には、特許文献1の技術を適用できない。そのため、変数名の変更のための入力作業の手間がかかる。
 本開示は、上記の問題に鑑みてなされたものであり、その目的は、変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できるサポート装置、サポートプログラムおよびサポート方法を提供することである。
 本開示の一例によれば、制御対象を制御する制御装置において実行される制御プログラムの開発を支援するサポート装置は、受付部と、抽出部と、生成部と、コピー処理部とを備える。受付部は、制御プログラムの中からコピー対象となる対象プログラムの選択を受け付ける。抽出部は、対象プログラムから変数名を抽出する。生成部は、抽出された変数名のリストを生成する。コピー処理部は、対象プログラムをコピーすることにより得られるコピープログラムを制御プログラム内に設定する。コピー処理部は、リストの編集により得られる編集済リストに基づいて、コピープログラムにおける変数名を書き換える。
 この開示によれば、ユーザは、リストに含まれる変数名を変更することにより、コピープログラムにおける変数名を任意にかつ容易に変更できる。これにより、コピープログラムの変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できる。
 上述の開示において、生成部は、上記のリストを含み、指定されたファイル形式を有する設定ファイルをエクスポートする。コピー処理部は、上記のファイル形式を有するファイルを編集可能なアプリケーションを用いて設定ファイルを編集することにより生成された、上記の編集済リストを含む編集済ファイルをインポートすることにより、コピープログラムにおける変数名を書き換える。
 この開示によれば、ユーザは、アプリケーションが有する各種機能を用いて、設定ファイルに含まれるリスト内の変数名を容易に変更できる。
 上述の開示において、生成部は、対象プログラムに対応する第1誤り検出符号を設定ファイルに含ませる。コピー処理部は、第1誤り検出符号と編集済ファイルに含まれる第2誤り検出符号とが一致することに応じて、編集済ファイルのインポートを許可し、第1誤り検出符号と第2誤り検出符号とが異なることに応じて、編集済ファイルのインポートを許可しない。
 この開示によれば、設定ファイルを編集することにより得られた編集済ファイルとは異なるファイルが誤って指定された場合に、当該ファイルを用いた処理が継続されることを防止できる。
 上述の開示において、生成部は、上記のリストをユーザインターフェイスに表示する。サポート装置は、さらに、ユーザインターフェイスへの入力に応じて、上記のリストを編集して編集済リストを生成する編集部を備える。
 この開示によれば、ユーザは、アプリケーションを用いることなく、リストを編集することができる。
 上述の開示において、抽出部は、対象プログラムから、変数ごとのコメントをさらに抽出する。生成部は、抽出されたコメントを上記のリストに含ませる。コピー処理部は、編集済リストに基づいて、コピープログラムにおける変数ごとのコメントを書き換える。
 この開示によれば、ユーザは、上記のリストに含まれるコメントを変更することにより、コピープログラムにおける変数ごとのコメントを任意にかつ容易に変更できる。
 上述の開示において、抽出部は、対象プログラムから、対象プログラムを構成する単位プログラムごとのコメントをさらに抽出する。生成部は、抽出されたコメントを上記のリストに含ませる。コピー処理部は、編集済リストに基づいて、コピープログラムにおける単位プログラムごとのコメントを書き換える。
 この開示によれば、ユーザは、上記のリストに含まれるコメントを変更することにより、コピープログラムを構成する単位プログラムごとのコメントを任意にかつ容易に変更できる。
 上述の開示において、ファイル形式はCSV形式である。この開示によれば、ユーザは、例えばMicrosoft Excel(登録商標)のような汎用アプリケーションを用いて、設定ファイルを容易に編集できる。
 本開示の一例によれば、サポートプログラムは、制御対象を制御する制御装置との間で通信可能なコンピュータで実行され、制御装置において実行される制御プログラムの開発を支援する。サポートプログラムは、コンピュータに、第1~第4のステップを実行させる。第1のステップは、制御プログラムの中からコピー対象となる対象プログラムの選択を受け付けるステップである。第2のステップは、対象プログラムから変数名を抽出するステップである。第3のステップは、抽出された変数名のリストを生成するステップである。第4のステップは、対象プログラムをコピーすることにより得られるコピープログラムを制御プログラム内に設定するステップである。第4のステップは、上記のリストの編集により得られる編集済リストに基づいて、コピープログラムにおける変数名を書き換えるステップを含む。
 本開示の一例によれば、制御対象を制御する制御装置において実行される制御プログラムの開発を支援するサポート装置におけるサポート方法は、上記の第1~第4のステップを備える。
 本開示によれば、変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できる。
本実施の形態に係るサポート装置200の適用場面を模式的に示す図である。 制御システム1の構成例を示す模式図である。 PLC100のハードウェア構成例を示す模式図である。 サポート装置200のハードウェア構成例を示す模式図である。 作成中の制御プログラム400を含む表示画面30の一例を示す図である。 コピー処理の条件を設定するための設定画面40の一例を示す図である。 設定ファイル300のファイル形式およびファイルパスの指定を促すダイアログボックス55の一例を示す図である。 対象プログラム420の一例を示す図である。 図8に示す対象プログラム420に対応する設定ファイル300の一例を示す図である。 図9に示す設定ファイル300を編集することにより得られる編集済ファイル302の一例を示す図である。 編集済ファイル302のファイルパスの指定を促すダイアログボックス60の一例を示す図である。 図11に示す編集済ファイル302に応じて書き換えられたコピープログラム422を示す図である。 設定ファイル300をエクスポートするときのサポート装置200の処理の流れの一例を示すフローチャートである。 編集済ファイル302をインポートするときのサポート装置200の処理の流れの一例を示すフローチャートである。 変形例における設定画面40Aの一例を示す図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
 §1 適用例
 図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係るサポート装置200の適用場面を模式的に示す図である。
 サポート装置200は、制御プログラム400の開発支援環境を提供する装置である。サポート装置200は、制御プログラム400の開発を支援するための機能として、制御プログラム400の作成および編集するためのエディタ機能を有している。なお、エディット機能は、オンラインエディット機能とオフラインエディット機能とを含み得る。
 制御プログラム400の複数箇所において、同一のプログラムが設定され得る。このような場合に、当該複数箇所の各々において同一のプログラムを作成すると、制御プログラム400の作成に要するユーザ(設定者)の手間が大きくなる。そのため、本実施の形態に係るサポート装置200は、制御プログラム400の中のコピー対象となる対象プログラム420をコピーすることにより得られるコピープログラム422を制御プログラム400内に設定する機能を有する。これにより、制御プログラム400の作成に要するユーザの手間が低減される。
 図1に例示されるサポート装置200は、制御プログラム400の開発支援環境を提供する構成として、保持部20と、受付部21と、抽出部22と、生成部23と、コピー処理部24とを備える。
 サポート装置200は、編集部28をさらに有する。編集部28は、制御プログラム400の開発支援環境を提供する構成としてサポート装置200に実装されてもよいし、開発支援環境を提供する構成とは別の構成としてサポート装置200に実装されてもよい。
 保持部20は、ユーザによって作成または編集された制御プログラム400を保持する。保持部20は、典型的には、サポート装置200において実行される各種プログラムを不揮発的に格納するハードディスクによって実現される機能である。制御プログラム400は、制御対象を制御するための制御装置の一例であるPLC(Programmable Logic Controller)100において実行される。
 受付部21は、ユーザ操作を受け付ける。例えば、受付部21は、マウスやキーボードからの入力信号を受け付ける、入力インターフェイスである。受付部21は、作成中の制御プログラム400の中からコピー対象となる対象プログラム420の選択を受け付ける。
 抽出部22は、コピー対象として選択された対象プログラム420から変数名を抽出する。すなわち、抽出部22は、対象プログラム420に用いられている1つ以上の変数の各々について、変数名を抽出する。生成部23は、抽出された変数名のリスト25を生成する。
 編集部28は、ユーザの指示に応じて、リスト25を編集し、編集済リスト26を生成する。具体的には、ユーザは、リスト25に含まれる変数名を所望の名称に変更する。
 コピー処理部24は、対象プログラム420をコピーすることにより得られるコピープログラム422を制御プログラム400内に設定する。
 コピー処理部24は、編集済リスト26に基づいて、コピープログラム422における変数名を書き換える。すなわち、コピー処理部24は、編集済リスト26に含まれる変数名を、コピープログラム422に反映させる。
 コピー処理部24は、ユーザによって指定されたコピー回数だけコピープログラム422を制御プログラム400内に設定してもよい。この場合、リスト25および編集済リスト26は、コピープログラム422ごとに生成される。
 以上のように、サポート装置200は、リスト25の編集により得られる編集済リスト26に含まれる変数名を、コピープログラム422に反映させる。そのため、ユーザは、リスト25に含まれる変数名を変更することにより、コピープログラム422内の変数名を任意にかつ容易に変更できる。すなわち、本実施の形態に係るサポート装置200によれば、変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できる。
 §2.具体例
 <A.システム構成>
 図2を参照して、本実施の形態に従うサポート装置200を含む制御システム1について説明する。図2は、制御システム1の構成例を示す模式図である。
 図2に例示される制御システム1は、複数のPLC100-1,PLC100-2,PLC100-3,PLC100-4,・・・(以下、「PLC100」とも総称する。)と、サポート装置200とを含む。
 PLC100の各々は、リレー,センサー等のフィールド機器である制御対象を制御する制御装置の一例である。なお、制御システム1は、1台のPLC100を含む構成であってもよい。制御システム1は、以下では、説明を簡単にするため、1台のPLC100を対象とした開発支援環境を説明する。
 PLC100は、典型的には、制御プログラム400(図1参照)を含む各種プログラムを実行する主体であるCPU(Central Processing Unit)ユニット10と、CPUユニット10などへ電力を供給する電源ユニット12と、フィールドからの信号を遣り取りするI/O(Input/Output)ユニット14とを含む。I/Oユニット14は、CPUユニット10とシステムバス11を介して接続されている。
 サポート装置200は、PLC100に接続可能であり、PLC100で実行される制御プログラム400の開発支援環境を提供する。このような開発支援環境は、サポート装置200にサポートプログラムがインストールされることで提供される。
 ユーザ(設計者)は、サポートプログラムを利用して、PLC100用の制御プログラム400を設計し、設計した制御プログラム400をPLC100にインストールすることができる。
 サポートプログラムは、例えば、記録媒体250に格納されて流通し、サポート装置200にインストールされる。記録媒体250に代えて、外部のサーバ装置などからネットワークを介して、サポートプログラムをインストールするようにしてもよい。サポート装置200は、一例として、接続ケーブルを介してPLC100のCPUユニット10と接続される。サポート装置200は、典型的には、パーソナルコンピュータで実現される。
 サポート装置200が提供する開発支援環境は、プログラムのエディタ(編集)、デバッカ、シミュレータおよびこれらの出力情報をディスプレイ等のモニタに出力するためのモニタ機能等を有し得る。サポート装置200は、さらに、運転中のPLC100の状態値を取得し、ディスプレイ等のモニタに出力する機能などを備えていてもよい。
 開発対象の制御プログラム400は、例えば国際規格IEC61131-3に従う。国際規格IEC61131-3は、プログラミング言語として、ラダーダイアグラム(LD:Ladder Diagram)、ファンクションブロックダイアグラム(FBD:Function Block Diagram)、シーケンシャルファンクションチャート(SFC:Sequential Function Chart)、インストラクションリスト(IL:Instruction List)、ストラクチャードテキスト(ST:Structured Text)の5種類を規定する。本実施の形態に係る制御プログラムは、国際規格IEC61131-3に従ういずれのプログラミング言語で記述されていてもよい。特に、ラダーダイアグラム、ファンクションブロックダイアグラ、シーケンシャルファンクションチャートは、図形の記述や配置が必要となるプログラム言語であり、プログラムの記述や変数名の設定に手間がかかる。上述したように、本実施の形態に係るサポート装置200によれば、変数名の変更が容易である。そのため、本実施の形態に係るサポート装置200は、ラダーダイアグラム、ファンクションブロックダイアグラ、シーケンシャルファンクションチャートのいずれかのプログラム言語で記述された制御プログラム400の開発に有効である。
 サポート装置200は、制御プログラム400の内容を表示可能である。具体的には、サポート装置200は、制御プログラム400のソースコードを表示可能である。サポート装置200は、例えば、制御プログラム400の編集、更新作業中に制御プログラム400の内容を表示する。
 <B.PLC100のハードウェア構成>
 図3は、PLC100のハードウェア構成例を示す模式図である。図3を参照して、PLC100は、予めインストールされたプログラムをプロセッサが実行することで、制御対象に対する制御を実現する。より具体的には、PLC100は、CPUやMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メインメモリ106と、フラッシュメモリ108と、USB(Universal Serial Bus)インターフェイス116と、メモリカードインターフェイス118と、内部バスコントローラ122と、フィールドバスコントローラ124とを含む。フラッシュメモリ108は、システムプログラム110および制御プログラム400を格納する。
 プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110および制御プログラム400を読み出して、メインメモリ106に展開して実行することで、制御対象に対する制御を実現する。
 システムプログラム110は、データの入出力処理や実行タイミング制御などの、PLC100の基本的な機能を提供するための命令コードを含む。制御プログラム400は、ユーザにおける制御目的(例えば、対象のラインやプロセス)に応じて作成される。
 制御プログラム400は、例えば、シーケンス制御を実行するためのシーケンスプログラムおよびモーション制御を実行するためのモーションプログラムである。なお、制御プログラム400は、これらのプログラムに限られず、PLC100にインストール可能なプログラムであって、ユーザによって作成または編集されたプログラムであればよい。
 チップセット104は、各コンポーネントを制御することで、PLC100全体としての処理を実現する。
 内部バスコントローラ122は、PLC100と内部バスを通じて連結されるI/Oユニット14との間でデータを遣り取りするインターフェイスである。フィールドバスコントローラ124は、PLC100と図示しないフィールドバスを通じて連結されるI/Oユニット16との間でデータを遣り取りするインターフェイスである。内部バスコントローラ122およびフィールドバスコントローラ124は、I/Oユニット14およびI/Oユニット16にそれぞれ入力される状態値を取得するとともに、プロセッサ102での演算結果をI/Oユニット14およびI/Oユニット16から指令値としてそれぞれ出力する。
 USBインターフェイス116は、USBによりデータの遣り取りを制御する。サポート装置200は、USBインターフェイス116を介してPLC100と通信する。メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。
 ユーザによって作成または編集された制御プログラム400は、サポート装置200、メモリカード120、または、配信サーバなどからインストールされ得る。
 図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、PLC100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 <C.サポート装置200のハードウェア構成>
 図4は、サポート装置200のハードウェア構成例を示す模式図である。図4を参照して、サポート装置200は、典型的には、汎用のコンピュータで構成される。なお、PLC100が配置される製造現場における保守性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
 サポート装置200は、記憶部201と、OSを含む各種プログラムを実行するCPU202とを備える。記憶部201は、BIOSや各種データを格納するROM(Read Only Memory)204と、CPU202でのプログラムの実行に必要なデータを格納するための作業領域を提供するRAM(Random Access Memory)206と、CPU202で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)208とを含む。これらのコンポーネントは、バス220を介して接続される。
 HDD208には、制御プログラムの開発支援環境を提供するためのサポートプログラム230と、汎用アプリケーション232とが格納される。汎用アプリケーション232は、例えばMicrosoft Excel(登録商標)である。図1に示す受付部21、抽出部22、生成部23およびコピー処理部24は、CPU202がサポートプログラム230を実行することにより実現される。図1に示す編集部28は、CPU202が汎用アプリケーション232を実行することにより実現される。
 サポート装置200は、さらに、サポート装置200に指示を入力するためにユーザが操作するキーボード210およびマウス211を含む操作部203、および情報をユーザに提示するためのディスプレイ214を含む。操作部203およびディスプレイ214は、ユーザインターフェイスを構成する。
 サポート装置200は、記録媒体250からサポートプログラム230および汎用アプリケーション232を読み取るための光学記録媒体読取装置216を含む。なお、サポートプログラム230および汎用アプリケーション232は、メモリカード、配信サーバなどからインストールされてもよい。
 USBインターフェイス218は、USBによりデータの遣り取りを制御する。サポート装置200は、USBインターフェイス218を介してPLC100と通信する。なお、サポート装置200とPLC100との間の通信は、USBに限らず、イーサネット(登録商標)などであってもよい。
 図4には、CPU202等のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 <D.対象プログラムのコピー処理の方法>
 図5~図12を参照して、サポート装置200における、対象プログラム420のコピー処理の方法について説明する。対象プログラム420のコピー処理は、操作部203への入力およびサポートプログラム230に従ってCPU202によって実行される。
 CPU202は、操作部203への入力に応じて、制御プログラム400を作成する。CPU202は、作成中の制御プログラム400をディスプレイ214に表示させる。
 図5は、作成中の制御プログラム400を含む表示画面30の一例を示す図である。図5に例示される表示画面30は、ディスプレイ214に表示される。
 表示画面30には、ファンクションブロックダイアグラムで記述された制御プログラム400が示されている。制御プログラム400は、行ごとの単位プログラム440によって構成されている。各行には行番号450が付与されている。ユーザは、単位プログラム440ごとにコメント(以下、「行コメント」と称する。)を入力できる。CPU202は、入力された行コメントを単位プログラム440と対応付けて、制御プログラム400内に設定する。一般に、行コメントは、対応する単位プログラム440の内容を表すように入力される。
 ユーザは、各単位プログラム440において用いられる各変数について、変数名460およびコメント(以下、「変数コメント470」と称する。)を設定できる。なお、簡略化のために、図5において、一部の変数についてのみ符号「460」および「470」を付与している。同一の変数について、同一の変数名460および同一の変数コメント470が設定される。変数コメント470は、全ての変数について設定されなくてもよい。すなわち、ユーザは、所望の変数についてのみ変数コメント470を入力できる。一般に、変数コメント470は、変数の種類、内容などを表すように入力される。図5に例示される表示画面30では、変数名460_1に対応する変数について、変数コメント470が設定されていない。一方、変数名460_2,460_3に対応する変数について、変数コメント470_2,470_3がそれぞれ設定されている。
 受付部21として動作するCPU202は、表示画面30において、制御プログラム400の中からコピー対象となる対象プログラム420の選択を受け付ける。対象プログラム420は、1または複数の単位プログラム440からなる。
 表示画面30は、コピー対象範囲を示す枠線31を含む。ユーザは、枠線31のサイズを変更することにより、コピー対象範囲を変更できる。CPU202は、コピー指示が操作部203に入力されたことに応じて、枠線31内の1または複数の単位プログラム440からなるプログラムを対象プログラム420として選択する。図5に例示される表示画面30では、「3」および「4」を示す行番号450に対応する2つの単位プログラム440からなるプログラムが対象プログラム420として選択されている。
 図6は、コピー処理の条件を設定するための設定画面40の一例を示す図である。設定画面40は、対象プログラム420のコピー回数を入力するための入力欄41を含む。ユーザは、対象プログラム420をコピーすることにより得られるコピープログラム422の必要数を入力欄41に入力すればよい。
 コピー処理部24(図1参照)として動作するCPU202は、対象プログラム420をコピー回数だけコピーすることにより、コピー回数と同数のコピープログラム422を生成する。このとき、コピープログラム422における変数名、変数コメントおよび行コメントは、対象プログラム420における変数名460、変数コメント470および行コメントとそれぞれ同一である。
 CPU202は、コピープログラム422における変数名を、第1~第3の方法のいずれかに従って書き換える。
 第1の方法は、コピープログラム422における変数名を、対象プログラム420における変数名460に含まれる数字のうち先頭の数字をオフセット分だけ加算した名称に書き換える方法である。例えば、対象プログラム420における変数名460が「SBX_U02_IN00」である場合、コピープログラム422における変数名は、先頭の数字「02」をオフセット「1」だけ加算した「SBX_U03_IN00」に書き換えられる。
 なお、入力欄41に2以上の整数が入力された場合、2つ以上のコピープログラム422が制御プログラム400に設定される。この場合、k番目のコピープログラム422における変数名は、対象プログラム420における変数名460の先頭の数字をオフセットのk倍分だけ加算した変数名に書き換えられる。
 第2の方法は、コピープログラム422における変数名を、対象プログラム420における変数名460に含まれる数字のうち末尾の数字をオフセット分だけ加算した名称に書き換える方法である。例えば、対象プログラム420における変数名460が「SBX_U02_IN00」である場合、コピープログラム422における変数名は、末尾の数字「00」をオフセット「1」だけ加算した「SBX_U02_IN01」に書き換えられる。
 なお、入力欄41に2以上の整数が入力された場合、2つ以上のコピープログラム422が制御プログラム400に設定される。この場合、k番目のコピープログラム422における変数名は、対象プログラム420における変数名460の末尾の数字をオフセットのk倍分だけ加算した変数名に書き換えられる。
 第3の方法は、コピープログラム422における変数名を任意に書き換える方法である。第3の方法の詳細については後述する。
 設定画面40は、第1~第3の方法にそれぞれ対応するラジオボタン43~45を含む。ラジオボタン43が選択された場合、CPU202は、第1の方法に従って、コピープログラム422における変数名を書き換える。ラジオボタン44が選択された場合、CPU202は、第2の方法に従って、コピープログラム422における変数名を書き換える。ラジオボタン45が選択された場合、CPU202は、第3の方法に従って、コピープログラム422における変数名を書き換える。
 設定画面40は、変数リスト46を含む。変数リスト46は、対象プログラム420において用いられる各変数について、変数名とデータ型と変数コメントとが対応付けられたリストである。CPU202は、対象プログラム420を解析することにより、各変数について、変数名とデータ型と変数コメントとを抽出する。CPU202は、抽出した変数名、データ型および変数コメントを対応付けた変数リスト46を作成し、作成した変数リスト46を設定画面40に含める。変数リスト46は、さらに、各変数について、チェックボックス47と、オフセットを入力するための入力欄48とを含む。なお、入力欄48には、デフォルト値「1」が入力されている。
 変数リスト46は、第1の方法または第2の方法に従ったコピー処理の条件を設定するために使用される。そのため、CPU202は、ラジオボタン43またはラジオボタン44が選択されたことに応じて、変数リスト46のチェックボックス47および入力欄48への入力を受け付ける。
 CPU202は、チェックボックス47がチェックされた変数についてのみ、入力欄48に入力されたオフセットに応じてコピープログラム422の変数名を書き換える。そのため、ユーザは、オフセットに応じて変数名を設定したい変数についてのみチェックボックス47をチェックすればよい。なお、CPU202は、変数名に数字を含む変数についてのみ、チェックボックス47へのチェックを受け付ける。
 第1の方法および第2の方法では、数字をオフセット分だけ変更するように変数名が書き換えられる。ユーザは、任意に変数名を変更したい場合、第3の方法に対応するラジオボタン45を選択する。以下、第3の方法について説明する。
 設定画面40は、リスト25(図1参照)を含む設定ファイル300をエクスポートするためのボタン49と、編集済リスト26(図1参照)を含む編集済ファイル302をインポートするためのボタン50とを含む。ボタン49,50は、第3の方法に関連する。そのため、CPU202は、ラジオボタン45が選択されたことに応じて、ボタン49,50の操作を受け付ける。設定画面40は、さらに、設定ファイル300のファイルパスを表示するための表示欄51を含む。なお、初期状態において表示欄51には何も記述されていない。
 ボタン49の操作に応じて、CPU202は、設定ファイル300のファイル形式およびファイルパスの指定を促すダイアログボックスをディスプレイ214に表示する。
 図7は、設定ファイル300のファイル形式およびファイルパスの指定を促すダイアログボックス55の一例を示す図である。図7に示されるように、ダイアログボックス55は、設定ファイル300のディレクトリを指定するための入力欄56と、ファイル名を指定するための入力欄57と、ファイル形式を指定するための入力欄58とを含む。入力欄58は、予め定められた1つ以上のファイル形式の中から1つのファイル形式を選択するための欄である。本実施の形態では、汎用アプリケーション232によって編集可能なファイル形式(例えばCSV形式)が選択される。
 ユーザは、所望のディレクトリおよびファイル名を入力欄56,57にそれぞれ入力する。さらに、ユーザは、入力欄58を操作して、ファイル形式を指定する。入力欄56,57,58への入力に応じたファイルパスが、図6の表示欄51に反映される。
 ダイアログボックス55は、設定ファイル300のエクスポートの実行を指示するためのボタン59を含む。ボタン59の操作に応じて、抽出部22(図1参照)として動作するCPU202は、対象プログラム420から変数名460を抽出する。CPU202は、さらに、対象プログラム420から、変数ごとの変数コメント470、および対象プログラム420を構成する単位プログラム440ごとの行コメントの少なくとも一方を抽出してもよい。
 次に、生成部23(図1参照)として動作するCPU202は、抽出された変数名460のリスト25を含み、指定されたファイル名およびファイル形式を有する設定ファイル300を作成する。CPU202は、作成した設定ファイル300を指定されたディレクトリに保存する。
 CPU202は、対象プログラム420から抽出された変数コメント470および行コメントを設定ファイル300に含ませてもよい。
 CPU202は、対象プログラム420に対応する誤り検出符号を設定ファイル300に含ませてもよい。例えば、CPU202は、対象プログラム420のCRC(Cyclic Redundancy Check)を計算し、当該CRCを設定ファイル300に書き込む。
 図8は、対象プログラム420の一例を示す図である。なお、図8には、対象プログラム420のうち、先頭の単位プログラム440のみが示されている。図9は、図8に示す対象プログラム420に対応する設定ファイル300の一例を示す図である。
 CPU202は、図8に例示される対象プログラム420から、変数名460_4~460_7を抽出する。さらに、CPU202は、変数コメントが設定されている場合には、当該変数コメントについても抽出する。具体的には、CPU202は、変数名460_4,460_6に対してそれぞれ設定されている変数コメント470_4,470_6を抽出する。さらに、CPU202は、対象プログラム420を構成する各単位プログラム440に対応する行コメントも抽出する。
 図9には、CSV形式を有する設定ファイル300が示される。図9に示されるように、設定ファイル300の1行目には、ファイル名310、ファイルバージョン320および誤り検出符号330が記述されている。
 設定ファイル300の2行目には、対象プログラム420と、指定されたコピー回数分のコピープログラム422とを識別する文字列が記述されている。図9において、 [Template]は、コピー対象となる対象プログラム420を識別する。[k](kは1~コピー回数までの整数)は、k番目のコピープログラム422を識別する。[Template]は、2行目の1列目の項目(フィールド)に記述される。[k]は、2行目の(2k+1)列目の項目に記述される。
 設定ファイル300の3行目には、4行目以降のデータのタイトルが記述される。<Variable>は、変数名を示す。<Comment>は、変数コメントまたは行コメントを示す。<Variable>は、3行目の1列目および(2k+1)列目の項目に記述される。<Comment>は、3行目の2列目および(2k+2)列目の項目に記述される。
 設定ファイル300の4行目以降には、抽出された変数名、変数コメント、行コメントが記述される。すなわち、設定ファイル300の4行目以降の項目は、対象プログラム420から抽出された変数名、変数コメントおよび行コメントのリスト25に対応する。図9には、1番目のコピープログラム422用に生成されたリスト25_1と、2番目のコピープログラム422用に生成されたリスト25_2の一部とが示されている。
 1列目には、対象プログラム420から抽出された変数名が出現順に記述される。なお、対象プログラム420を構成する各単位プログラム440から抽出された変数名を区別するために、各単位プログラム440から抽出された変数名が記述される行の直前の行に「//NetworkComment」が記述される。図9に例示される設定ファイル300では、1列目の4行目および9行目の項目に「//NetworkComment」が記述されている。そのため、1列目の5行目から8行目の項目に、対象プログラム420の先頭の単位プログラム440から抽出された4つの変数名、すなわち図8に示す変数名460_4~460_7がそれぞれ記述されている。
 2列目の項目には、対象プログラム420から抽出された行コメントおよび変数コメントが記述される。行コメントは、「//NetworkComment」が記述された項目の次の項目に記述される。例えば、図8に示す単位プログラム440に対応する行コメント「Input_E-STOP 01」は、2列目の4行目の項目に記述される。変数コメントは、対応する変数名が記述された項目の次の項目に記述される。例えば、図8に示す変数コメント470_4,470_6は、変数名460_4,460_6が記述されている項目の次の項目、すなわち、2列目の5行目,7行目の項目にそれぞれ記述されている。
 1列目の4行目以降の項目に記述された文字列は、(2k+1)列目の4行目以降の項目にコピーされる。2列目の4行目以降の項目に記述された文字列は、(2k+2)列目の4行目以降の項目にコピーされる。
 エクスポートされた設定ファイル300は、汎用アプリケーション232によって編集可能なファイル形式を有する。そのため、ユーザは、汎用アプリケーション232を用いて、設定ファイル300を編集できる。例えば、ユーザは、Microsoft Excel(登録商標)である汎用アプリケーション232を用いて、CSV形式を有する設定ファイル300の項目に記述された変数名、変数コメントおよび行コメントを編集する。このとき、ユーザは、汎用アプリケーション232の各種機能を利用して、変数名、変数コメントおよび行コメントを編集できる。あるいは、ユーザは、別途準備されている変数一覧ファイルに記述されている1または複数の変数名および変数コメントを用いて、設定ファイル300に記述されている1または複数の変数名および変数コメントを上書きしてもよい。このように、ユーザは、変数名、変数コメントおよび行コメントを容易に変更できる。
 ユーザは、設定ファイル300を外部の情報処理装置に移動させ、当該情報処理装置にインストールされている汎用アプリケーションを用いて、設定ファイル300を編集してもよい。
 このようにして、ユーザは、設定ファイル300を編集することにより、編集済リスト26(図1参照)を含む編集済ファイル302を作成する。編集済ファイル302は、設定ファイル300を上書きすることにより作成されてもよいし、設定ファイル300とは別に作成されてもよい。
 図10は、図9に示す設定ファイル300を編集することにより得られる編集済ファイル302の一例を示す図である。
 図10に示されるように、編集済ファイル302の1行目には、ファイル名312、ファイルバージョン322および誤り検出符号332が記述される。編集済ファイル302を作成するときに設定ファイル300のファイル名310、ファイルバージョン320および誤り検出符号330を編集しない限り、ファイル名312、ファイルバージョン322および誤り検出符号332は、ファイル名310、ファイルバージョン320および誤り検出符号330とそれぞれ一致する。
 図10に示される編集済ファイル302は、図9に示す設定ファイル300と比較して、以下の点で異なる。
・3列目5~8行目の項目(フィールド)に記述された変数名、
・3列目10~12行目の項目に記述された変数名、
・4列目4行目の項目に記述された行コメント、
・4列目5行目の項目に記述された変数コメント、
・4列目9行目の項目に記述された行コメント、
・4列目10行目の項目に記述された変数コメント。
ユーザは、変数名、変数コメントおよび行コメントについて、数字を追加、変更または削除してもよいし、数字以外の文字列を追加、変更または削除してもよい。このように、ユーザは、変数名、変数コメントおよび行コメントを任意に変更できる。編集済ファイル302の(2k+1),(2k+2)列目の4行目以降の項目は、k番目のコピープログラム422に対応する変数名、変数コメントおよび行コメントの編集済リスト26に対応する。図10には、1番目のコピープログラム422用に生成された編集済リスト26_1と、2番目のコピープログラム422用に生成された編集済リスト26_2の一部とが示されている。
 ユーザは、編集済ファイル302を作成すると、図6に示す設定画面40のボタン50を操作する。ボタン50の操作に応じて、コピー処理部24(図1参照)として動作するCPU202は、編集済ファイル302のファイルパスの指定を促すダイアログボックスをディスプレイ214に表示する。
 図11は、編集済ファイル302のファイルパスの指定を促すダイアログボックス60の一例を示す図である。図11に示されるように、ダイアログボックス60は、編集済ファイル302のディレクトリを指定するための入力欄61と、ファイル名を指定するための入力欄62とを含む。初期状態において、入力欄61,62には、設定ファイル300のファイルパスに対応するディレクトリとファイル名とが表示される。そのため、設定ファイル300を上書きすることにより編集済ファイル302を作成した場合、ユーザによる入力欄61,62への入力の手間を省くことができる。
 ダイアログボックス60は、編集済ファイル302のインポートの実行を指示するためのボタン63を含む。ボタン63の操作に応じて、CPU202は、編集済ファイル302をインポートして、コピープログラム422における変数名を書き換える。編集済ファイル302に変数コメントおよび行コメントが記述されている場合、CPU202は、さらに、コピープログラム422における変数コメントおよび行コメントを書き換える。
 図12は、図11に示す編集済ファイル302に応じて書き換えられたコピープログラム422を示す図である。図12には、コピープログラム422を構成する先頭の単位プログラム440のみが示されている。
 図12に示されるように、コピープログラム422における変数名460_8~460_11は、図8に示す変数名460_4~460_7からそれぞれ変更されている。さらに、コピープログラム422における変数コメント470_8は、図8に示す変数コメント470_4から変更されている。なお、図11に示す編集済ファイル302の4列目、7行目の項目の文字列は、図8に示す設定ファイル300の4列目、7行目の項目の文字列と一致する。そのため、コピープログラム422における変数コメント470_10は、図8に示す変数コメント470_6と同じである。さらに、図示しないが、コピープログラム422を構成する先頭の単位プログラム440に対応する行コメントは、編集済ファイル302に従って、「Input_E-STOP 01」から「Input_E-STOP 03」に変更されている。
 図6に戻って、設定画面40は、コピープログラム422の制御プログラム400への設定を実行するためのボタン52を含む。ボタン52の操作に応じて、コピー処理部24(図1参照)として動作するCPU202は、コピープログラム422を制御プログラム400に設定する(貼り付ける)。
 設定画面40は、コピー処理をキャンセルするためのボタン53を含む。ボタン53の操作に応じて、CPU202は、コピー処理を中止する。
 <E.サポート装置の処理の流れ>
 次に、設定ファイル300をエクスポートするときのサポート装置200の処理の流れと、編集済ファイル302をインポートするときのサポート装置200の処理の流れとを説明する。これらの処理は、(i)図5に示す表示画面30において対象プログラム420が選択され、(ii)図6に示す設定画面40において、コピー回数が入力され、かつ、ラジオボタン45が選択されたときに、実行される。なお、CPU202は、設定画面40の入力欄41に入力されたコピー回数と同数のコピープログラム422を作成し、制御プログラム400に設定している。
 図13は、設定ファイル300をエクスポートするときのサポート装置200の処理の流れの一例を示すフローチャートである。
 まず、CPU202は、設定画面40(図6参照)のボタン49の操作に応じて、設定ファイル300のファイルパスおよびファイル形式の指定を促す画面(例えば図7に示すダイアログボックス55)をディスプレイ214に表示する(ステップS1)。
 CPU202は、指定されたファイル形式に従って空の設定ファイル300を作成し、指定されたファイルパスによって示される場所に、作成した設定ファイル300を保存する(ステップS2)。以下、CSV形式の設定ファイル300が作成されたものとして説明する。
 CPU202は、コピー対象となる対象プログラム420の誤り検出符号(例えばCRC)を計算する(ステップS3)。
 CPU202は、ファイル名、ファイルバージョンおよびCRCをRAM206に一時的に保存する(ステップS4)。さらに、CPU202は、保存したファイル名、ファイルバージョンおよびCRCを設定ファイル300の1行目に書き込む(ステップS5)。
 CPU202は、対象プログラム420から、変数名、変数コメントおよび行コメントを抽出する(ステップS6)。
 CPU202は、抽出した変数名、変数コメントおよび行コメントのデータセット(リスト25を示すデータセット)をテンプレート用として設定ファイル300に書き込む(ステップS7)。テンプレート用のデータセットは、コピー対象となる対象プログラム420の変数名、変数コメントおよび行コメントに対応する。
 さらに、CPU202は、当該データセットをコピー回数分だけ設定ファイル300に書き込む(ステップS8)。コピー回数分だけ書き込まれたデータセットは、コピープログラム422の変数名、変数コメントおよび行コメントに対応する。ステップS8の完了後、CPU202は、設定ファイル300のエクスポートの処理を終了する。
 図14は、編集済ファイル302をインポートするときのサポート装置200の処理の流れの一例を示すフローチャートである。
 まず、CPU202は、設定画面40(図6参照)のボタン50の操作に応じて、編集済ファイル302のファイルパスの指定を促す画面(例えば図9に示すダイアログボックス60)をディスプレイ214に表示する(ステップS11)。
 CPU202は、指定されたファイルパスに保存されている編集済ファイル302を開く(ステップS12)。さらに、CPU202は、編集済ファイル302から、ファイル名、ファイルバージョンおよびCRCを読み込む(ステップS13)。
 CPU202は、読み込んだファイル名、ファイルバージョンおよびCRCと、図13に示すステップS4においてRAM206に一時的に保存したファイル名、ファイルバージョンおよびCRC(保存データ)とが一致するか否かを判定する(ステップS14)。
 ステップS14でYESの場合、CPU202は、編集済ファイル302のインポートを許可し、ステップS15以降の処理を続ける。ステップS14でNOの場合、CPU202は、編集済ファイル302のインポートを許可しない。具体的には、CPU202は、インポートの失敗をディスプレイ214に表示し、インポートの処理を終了する。これにより、図13に示すフローチャートに従ってエクスポートされた設定ファイル300の1行目に記述されたファイル名、ファイルバージョンおよびCRCと異なるファイルが誤って指定された場合に、当該ファイルを用いた処理が継続されることを防止できる。
 ステップS15において、CPU202は、編集済ファイル302のファイルフォーマットを確認する。例えば、CPU202は、図9に示される編集済ファイル302の2行目の項目、すなわち、対象プログラム420およびコピー回数分のコピープログラム422を識別する文字列([Template]、[k](kは1~コピー回数までの整数))を読み込む。
 CPU202は、ファイルフォーマットが正常であるか否かを判定する(ステップS16)。具体的には、CPU202は、編集済ファイル302の2行目の1列目の項目に記述される文字列が「Template」に一致し、かつ、2行目の3列名以降の項目に記述される文字列[k]の最大値がコピー回数に一致することに応じて、ファイルフォーマットが正常であると判定する。
 ステップS16でYESの場合、CPU202は、編集済ファイル302のインポートを許可し、コピー回数分のコピープログラム422ごとに、ステップS17~S20の書き換えループを繰り返す。
 ステップS18において、CPU202は、編集済ファイル302から、k番目のコピープログラム422に対応する編集済リスト26の文字列を読み込む。具体的には、CPU202は、図10に示す編集済ファイル302の(2k+1)列目および(2k+2)列目の4行目以降の項目に記述された文字列を読み込む。
 ステップS19において、CPU202は、読み込んだ文字列に従って、k番目のコピープログラム422における変数名、変数コメントおよび行コメントを書き換える。
 CPU202は、k=1~コピー回数の各々について、ステップS18およびステップS19の処理を完了すると、編集済ファイル302のインポートの処理を終了する。
 ステップS16でNOの場合、CPU202は、編集済ファイル302のインポートを許可しない。具体的には、CPU202は、インポートの失敗をディスプレイ214に表示し、インポートの処理を終了する。これにより、異なるファイルフォーマットを有するファイルが指定された場合であっても、当該ファイルを用いた処理が継続されることを防止できる。
 <F.変形例>
 上記の具体例では、リスト25(図1参照)を含み、指定されたファイル形式を有する設定ファイル300がエクスポートされる。そして、設定ファイル300を編集することにより生成された、編集済リスト26(図1参照)を含む編集済ファイル302がインポートされる。これにより、ユーザは、サポートプログラム230とは別の汎用アプリケーション232を用いて設定ファイル300を編集し、編集済ファイル302を作成できる。しかしながら、サポートプログラム230は、リスト25を編集して編集済リスト26を生成する機能を提供してもよい。これにより、汎用アプリケーション232が不要となる。
 本変形例では、編集部28は、CPU202がサポートプログラム230を実行することにより、実現される。
 生成部23として動作するCPU202は、対象プログラム420から抽出された変数名460のリスト25を生成し、生成したリスト25をディスプレイ214に表示する。編集部28として動作するCPU202は、操作部203への入力に応じて、リスト25を編集して編集済リスト26を生成する。コピー処理部24として動作するCPU202は、生成された編集済リスト26に基づいて、コピープログラム422の変数名を書き換える。なお、CPU202は、対象プログラム420から変数コメント470および行コメントを抽出し、抽出した変数コメント470および行コメントをリスト25に含めてもよい。この場合、CPU202は、編集済リスト26に基づいて、コピープログラム422の変数コメントおよび行コメントを書き換える。
 図15は、変形例における設定画面40Aの一例を示す図である。図15に示されるように、設定画面40Aは、コピープログラム422における変数名を任意に設定するためのボタン64を含む。CPU202は、ラジオボタン45が選択されたことに応じて、ボタン64の操作を受け付ける。
 ボタン64の操作に応じて、抽出部22として動作するCPU202は、対象プログラム420から変数名460を抽出する。CPU202は、さらに、対象プログラム420から、変数ごとの変数コメント470、および対象プログラム420を構成する単位プログラム440ごとの行コメントの少なくとも一方を抽出してもよい。そして、CPU202は、抽出された変数名460、変数コメント470および行コメントのリスト25を生成し、生成したリスト25を含むウィンドウ65をディスプレイ214に表示する。CPU202は、指定されたコピー回数分だけリスト25を生成して表示する。
 操作部203は、ウィンドウ65内のリスト25に対する編集指示の入力を受け付ける。編集部28として動作するCPU202は、操作部203への入力に応じて、リスト25を編集して編集済リスト26(図1参照)を作成する。CPU202は、ウィンドウ65のボタン67の操作に応じて、編集済リスト26を示す内部データを生成し、生成した内部データをRAM206に記録する。
 コピー処理部24として動作するCPU202は、設定画面40Aのボタン52の操作に応じて、RAM206上の内部データに基づいて、コピープログラム422における変数名、変数コメントおよび行コメントを書き換える。その後、CPU202は、コピープログラム422を制御プログラム400に設定する(貼り付ける)。
 本変形例では、設定ファイル300と編集済ファイル302との対応関係を確認する必要がないため、誤り検出符号の算出などの処理が省略される。具体的には、図13に示すステップS1~S5が省略される。また、ステップS7,S8の代わりに、抽出された変数名460、変数コメント470および行コメントのリスト25を生成し、生成したリスト25をディスプレイ214に表示するステップが行なわれる。
 本変形例では、図14に示すステップS11~S16が省略される。また、ステップS18の代わりに、RAM206に記録された内部データによって示される編集済リスト26(図1参照)から変数名、変数コメントおよび行コメントに対応する文字列を読み込むステップが行なわれる。
 <G.作用・効果>
 以上のように、サポート装置200は、制御対象を制御するPLC100において実行される制御プログラム400の開発を支援する。サポート装置200は、受付部21と、抽出部22と、生成部23と、コピー処理部24とを備える。受付部21は、制御プログラム400の中からコピー対象となる対象プログラム420の選択を受け付ける。抽出部22は、対象プログラム420から変数名を抽出する。生成部23は、抽出された変数名のリスト25(図1参照)を生成する。コピー処理部24は、対象プログラム420をコピーすることにより得られるコピープログラム422を制御プログラム400内に設定する。コピー処理部24は、リスト25の編集により得られる編集済リスト26に基づいて、コピープログラム422における変数名を書き換える。
 上記の構成によれば、ユーザは、アプリケーションが有する各種機能を用いて、リスト25に含まれる変数名を変更することにより、コピープログラム422における変数名を任意にかつ容易に変更できる。これにより、変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できる。
 生成部23は、リスト25を含み、指定されたファイル形式を有する設定ファイル300をエクスポートする。コピー処理部24は、汎用アプリケーション232を用いて設定ファイル300を編集することにより生成された、編集済リスト26を含む編集済ファイル302をインポートすることにより、コピープログラム422における変数名を書き換える。汎用アプリケーション232は、指定されたファイル形式を有するファイルを編集可能なアプリケーションである。これにより、ユーザは、汎用アプリケーション232が有する各種機能を用いて、設定ファイル300に含まれるリスト25内の変数名を容易に変更できる。
 生成部23は、対象プログラム420に対応する誤り検出符号(例えばCRC)を設定ファイル300に含ませる。コピー処理部24は、設定ファイル300に含まれる誤り検出符号(第1誤り検出符号)と編集済ファイル302に含まれる誤り検出符号(第2誤り検出符号)とが一致することに応じて、編集済ファイル302のインポートを許可する。コピー処理部24は、第1誤り検出符号と第2誤り検出符号とが異なることに応じて、編集済ファイル302のインポートを許可しない。
 上記の構成によれば、設定ファイル300を編集することにより得られた編集済ファイル302とは異なるファイルが誤って指定された場合に、当該ファイルを用いた処理が継続されることを防止できる。
 生成部23は、リスト25をユーザインターフェイスとして構成されるディスプレイ214に表示してもよい。サポート装置200は、さらに、ユーザインターフェイスとして構成される操作部203への入力に応じて、リスト25を編集して編集済リスト26を生成する編集部28を備える。これにより、ユーザは、汎用アプリケーション232を用いなくても、リスト25を編集できる。
 抽出部22は、対象プログラム420から、変数ごとの変数コメントをさらに抽出してもよい。生成部23は、抽出された変数コメントをリスト25に含ませる。コピー処理部24は、編集済リスト26に基づいて、コピープログラム422における変数コメントを書き換える。これにより、ユーザは、リスト25に含まれる変数コメントを変更することにより、コピープログラム422における変数コメントを任意にかつ容易に変更できる。
 抽出部22は、対象プログラム420から、対象プログラム420を構成する単位プログラム440ごとの行コメントをさらに抽出してもよい。生成部23は、抽出された行コメントをリスト25に含ませる。コピー処理部24は、編集済リスト26に基づいて、コピープログラム422における単位プログラム440ごとの行コメントを書き換える。これにより、ユーザは、リスト25に含まれる行コメントを変更することにより、コピープログラム422における行コメントを任意にかつ容易に変更できる。
 ファイル形式は例えばCSV形式である。これにより、ユーザは、例えばMicrosoft Excel(登録商標)のような汎用アプリケーション232を用いて、設定ファイル300を容易に編集できる。
 <H.付記>
 以上のように、本実施の形態は以下のような開示を含む。
 (構成1)
 制御対象を制御する制御装置(100)において実行される制御プログラム(400)の開発を支援するサポート装置(200)であって、
 前記制御プログラム(400)の中からコピー対象となる対象プログラム(420)の選択を受け付ける受付部(21,202)と、
 前記対象プログラム(420)から変数名を抽出する抽出部(22,202)と、
 抽出された前記変数名のリスト(25)を生成する生成部(23,202)と、
 前記対象プログラム(420)をコピーすることにより得られるコピープログラム(422)を前記制御プログラム(400)内に設定するコピー処理部(24,202)とを備え、
 前記コピー処理部(24,202)は、前記リスト(25)の編集により得られる編集済リスト(26)に基づいて、前記コピープログラム(422)における変数名を書き換える、サポート装置(200)。
 (構成2)
 前記生成部(23,202)は、前記リスト(25)を含み、指定されたファイル形式を有する設定ファイル(300)をエクスポートし、
 前記コピー処理部(24,202)は、前記ファイル形式を有するファイルを編集可能なアプリケーション(232)を用いて前記設定ファイル(300)を編集することにより生成された、前記編集済リスト(26)を含む編集済ファイル(302)をインポートすることにより、前記コピープログラム(422)における変数名を書き換える、構成1に記載のサポート装置(200)。
 (構成3)
 前記生成部(23,202)は、前記対象プログラム(420)に対応する第1誤り検出符号を前記設定ファイル(300)に含ませ、
 前記コピー処理部(24,202)は、前記第1誤り検出符号と前記編集済ファイル(302)に含まれる第2誤り検出符号とが一致することに応じて、前記編集済ファイルのインポートを許可し、前記第1誤り検出符号と前記第2誤り検出符号とが異なることに応じて、前記編集済ファイル(302)のインポートを許可しない、構成2に記載のサポート装置(200)。
 (構成4)
 前記生成部(23,202)は、前記リスト(25)をユーザインターフェイス(214)に表示し、
 前記サポート装置(200)は、さらに、
 前記ユーザインターフェイス(203)への入力に応じて、前記リスト(25)を編集して前記編集済リスト(26)を生成する編集部(28)を備える、構成1に記載のサポート装置(200)。
 (構成5)
 前記抽出部(22,202)は、前記対象プログラム(420)から、変数ごとのコメントをさらに抽出し、
 前記生成部(23,202)は、抽出された前記コメントを前記リスト(25)に含ませ、
 前記コピー処理部(24,202)は、前記編集済リスト(26)に基づいて、前記コピープログラム(422)における前記変数ごとのコメントを書き換える、構成1から4のいずれかに記載のサポート装置(200)。
 (構成6)
 前記抽出部(22,202)は、前記対象プログラム(420)から、前記対象プログラム(420)を構成する単位プログラム(440)ごとのコメントをさらに抽出し、
 前記生成部(23,202)は、抽出された前記コメントを前記リスト(25)に含ませ、
 前記コピー処理部(24,202)は、前記編集済リスト(26)に基づいて、前記コピープログラム(422)における前記単位プログラム(440)ごとのコメントを書き換える、構成1から4のいずれかに記載のサポート装置(200)。
 (構成7)
 前記ファイル形式はCSV形式である、構成2または3に記載のサポート装置(200)。
 (構成8)
 制御対象を制御する制御装置(100)との間で通信可能なコンピュータで実行され、前記制御装置(100)において実行される制御プログラム(400)の開発を支援するサポートプログラム(230)であって、
 前記サポートプログラム(230)は、前記コンピュータ(200)に、
 前記制御プログラム(400)の中からコピー対象となる対象プログラム(420)の選択を受け付けるステップと、
 前記対象プログラム(420)から変数名を抽出するステップと、
 抽出された前記変数名のリスト(25)を生成するステップと、
 前記対象プログラム(420)をコピーすることにより得られるコピープログラム(422)を前記制御プログラム(400)内に設定するステップとを実行させ、
 前記設定するステップは、前記リスト(25)の編集により得られる編集済リスト(26)に基づいて、前記コピープログラム(422)における変数名を書き換えるステップを含む、サポートプログラム。
 (構成9)
 制御対象を制御する制御装置において実行される制御プログラム(400)の開発を支援するサポート装置(200)におけるサポート方法であって、
 前記制御プログラム(400)の中からコピー対象となる対象プログラム(420)の選択を受け付けるステップと、
 前記対象プログラム(420)から変数名を抽出するステップと、
 抽出された前記変数名のリスト(25)を生成するステップと、
 前記対象プログラム(420)をコピーすることにより得られるコピープログラム(422)を前記制御プログラム(400)内に設定するステップとを備え、
 前記設定するステップは、前記リスト(25)の編集により得られる編集済リスト(26)に基づいて、前記コピープログラム(422)における変数名を書き換えるステップを含む、サポート方法。
 本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 制御システム、10 CPUユニット、11 システムバス、12 電源ユニット、14,16 I/Oユニット、20 保持部、21 受付部、22 抽出部、23 生成部、24 コピー処理部、25 リスト、26 編集済リスト、28 アプリ実行部、30 表示画面、31 枠線、40 設定画面、41,48,56,57,58,61,62 入力欄、43~45 ラジオボタン、46 変数リスト、47 チェックボックス、49,50,52,53,59,63,64,67 ボタン、51 表示欄、55,60 ダイアログボックス、65 ウィンドウ、100 PLC、102 プロセッサ、104 チップセット、106 メインメモリ、108 フラッシュメモリ、110 システムプログラム、116,218 USBインターフェイス、118 メモリカードインターフェイス、120 メモリカード、122 内部バスコントローラ、124 フィールドバスコントローラ、200 サポート装置、201 記憶部、202 CPU、203 操作部、206 RAM、210 キーボード、211 マウス、214 ディスプレイ、216 光学記録媒体読取装置、220 バス、230 サポートプログラム、232 汎用アプリケーション、250 記録媒体、300 設定ファイル、302 編集済ファイル、310,312 ファイル名、320,322 ファイルバージョン、330,332 誤り検出符号、400 制御プログラム、420 対象プログラム、422 コピープログラム、440 単位プログラム、450 行番号、460 変数名、470 変数コメント。

Claims (9)

  1.  制御対象を制御する制御装置において実行される制御プログラムの開発を支援するサポート装置であって、
     前記制御プログラムの中からコピー対象となる対象プログラムの選択を受け付ける受付部と、
     前記対象プログラムから変数名を抽出する抽出部と、
     抽出された前記変数名のリストを生成する生成部と、
     前記対象プログラムをコピーすることにより得られるコピープログラムを前記制御プログラム内に設定するコピー処理部とを備え、
     前記コピー処理部は、前記リストの編集により得られる編集済リストに基づいて、前記コピープログラムにおける変数名を書き換える、サポート装置。
  2.  前記生成部は、前記リストを含み、指定されたファイル形式を有する設定ファイルをエクスポートし、
     前記コピー処理部は、前記ファイル形式を有するファイルを編集可能なアプリケーションを用いて前記設定ファイルを編集することにより生成された、前記編集済リストを含む編集済ファイルをインポートすることにより、前記コピープログラムにおける変数名を書き換える、請求項1に記載のサポート装置。
  3.  前記生成部は、前記対象プログラムに対応する第1誤り検出符号を前記設定ファイルに含ませ、
     前記コピー処理部は、前記第1誤り検出符号と前記編集済ファイルに含まれる第2誤り検出符号とが一致することに応じて、前記編集済ファイルのインポートを許可し、前記第1誤り検出符号と前記第2誤り検出符号とが異なることに応じて、前記編集済ファイルのインポートを許可しない、請求項2に記載のサポート装置。
  4.  前記生成部は、前記リストをユーザインターフェイスに表示し、
     前記サポート装置は、さらに、
     前記ユーザインターフェイスへの入力に応じて、前記リストを編集して前記編集済リストを生成する編集部を備える、請求項1に記載のサポート装置。
  5.  前記抽出部は、前記対象プログラムから、変数ごとのコメントをさらに抽出し、
     前記生成部は、抽出された前記コメントを前記リストに含ませ、
     前記コピー処理部は、前記編集済リストに基づいて、前記コピープログラムにおける前記変数ごとのコメントを書き換える、請求項1から4のいずれか1項に記載のサポート装置。
  6.  前記抽出部は、前記対象プログラムから、前記対象プログラムを構成する単位プログラムごとのコメントをさらに抽出し、
     前記生成部は、抽出された前記コメントを前記リストに含ませ、
     前記コピー処理部は、前記編集済リストに基づいて、前記コピープログラムにおける前記単位プログラムごとのコメントを書き換える、請求項1から4のいずれか1項に記載のサポート装置。
  7.  前記ファイル形式はCSV形式である、請求項2または3に記載のサポート装置。
  8.  制御対象を制御する制御装置との間で通信可能なコンピュータで実行され、前記制御装置において実行される制御プログラムの開発を支援するサポートプログラムであって、
     前記サポートプログラムは、前記コンピュータに、
     前記制御プログラムの中からコピー対象となる対象プログラムの選択を受け付けるステップと、
     前記対象プログラムから変数名を抽出するステップと、
     抽出された前記変数名のリストを生成するステップと、
     前記対象プログラムをコピーすることにより得られるコピープログラムを前記制御プログラム内に設定するステップとを実行させ、
     前記設定するステップは、前記リストの編集により得られる編集済リストに基づいて、前記コピープログラムにおける変数名を書き換えるステップを含む、サポートプログラム。
  9.  制御対象を制御する制御装置において実行される制御プログラムの開発を支援するサポート装置におけるサポート方法であって、
     前記制御プログラムの中からコピー対象となる対象プログラムの選択を受け付けるステップと、
     前記対象プログラムから変数名を抽出するステップと、
     抽出された前記変数名のリストを生成するステップと、
     前記対象プログラムをコピーすることにより得られるコピープログラムを前記制御プログラム内に設定するステップとを備え、
     前記設定するステップは、前記リストの編集により得られる編集済リストに基づいて、前記コピープログラムにおける変数名を書き換えるステップを含む、サポート方法。
PCT/JP2020/047035 2020-03-12 2020-12-16 サポート装置、サポートプログラムおよびサポート方法 WO2021181796A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20924716.2A EP4120034A4 (en) 2020-03-12 2020-12-16 SUPPORT DEVICE, SUPPORT PROGRAM AND SUPPORT METHOD
CN202080097357.XA CN115151873A (zh) 2020-03-12 2020-12-16 支持装置、支持程序以及支持方法
US17/908,146 US20230134007A1 (en) 2020-03-12 2020-12-16 Support device, non-transitory computer-readable storage medium, and support method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020043238A JP7447574B2 (ja) 2020-03-12 2020-03-12 サポート装置、サポートプログラムおよびサポート方法
JP2020-043238 2020-03-12

Publications (1)

Publication Number Publication Date
WO2021181796A1 true WO2021181796A1 (ja) 2021-09-16

Family

ID=77671555

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/047035 WO2021181796A1 (ja) 2020-03-12 2020-12-16 サポート装置、サポートプログラムおよびサポート方法

Country Status (5)

Country Link
US (1) US20230134007A1 (ja)
EP (1) EP4120034A4 (ja)
JP (1) JP7447574B2 (ja)
CN (1) CN115151873A (ja)
WO (1) WO2021181796A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04286002A (ja) 1991-03-15 1992-10-12 Hitachi Ltd プログラマブルコントローラのプログラミング装置
JP2014041617A (ja) * 2012-08-23 2014-03-06 Lsis Co Ltd プログラミング言語の誤り検出装置及び誤り検出方法
JP2017220142A (ja) * 2016-06-10 2017-12-14 富士電機株式会社 プログラミング装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850808B2 (en) * 1999-09-24 2005-02-01 Rockwell Software Inc. Method and system for developing a software program using compound templates
JP4420210B2 (ja) * 2004-06-08 2010-02-24 オムロン株式会社 プログラム開発支援装置および処理方法
JP6394516B2 (ja) * 2015-07-01 2018-09-26 株式会社安川電機 開発支援プログラム、記録媒体、開発支援方法、及び開発支援装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04286002A (ja) 1991-03-15 1992-10-12 Hitachi Ltd プログラマブルコントローラのプログラミング装置
JP2014041617A (ja) * 2012-08-23 2014-03-06 Lsis Co Ltd プログラミング言語の誤り検出装置及び誤り検出方法
JP2017220142A (ja) * 2016-06-10 2017-12-14 富士電機株式会社 プログラミング装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4120034A4

Also Published As

Publication number Publication date
CN115151873A (zh) 2022-10-04
JP2021144521A (ja) 2021-09-24
EP4120034A4 (en) 2024-03-20
US20230134007A1 (en) 2023-05-04
JP7447574B2 (ja) 2024-03-12
EP4120034A1 (en) 2023-01-18

Similar Documents

Publication Publication Date Title
JP4982020B2 (ja) 分散ブロック・ダイアグラム実行およびユーザ・インタフェース表示を使用するグラフィカル・プログラミング・システム
JP3407809B2 (ja) コンピュータ・アプリケーション・ソフトウェアの自動化試験システム
JP4865634B2 (ja) プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム
CN112416339A (zh) 页面开发方法、装置、计算机设备
US7627851B2 (en) Modification method for modifying a source code
JP3227066B2 (ja) プログラム部品を用いたプログラム生成方法
WO2021181796A1 (ja) サポート装置、サポートプログラムおよびサポート方法
WO2020195195A1 (ja) 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
JP5205988B2 (ja) Plcのグローバル変数定義方式
JP6794668B2 (ja) プログラミング装置
JP3145936B2 (ja) インストール方法
WO2021044654A1 (ja) 情報処理システム、プログラマブル表示器および情報処理装置
JP7238678B2 (ja) 情報処理装置、サポートプログラムおよびサポートシステム
CN117136342A (zh) 开发支持装置、开发支持装置的控制方法、信息处理程序以及记录介质
JP3697274B2 (ja) ソフトウェア開発支援装置
JP7241982B1 (ja) 画像生成プログラム、画像生成装置、プログラマブルコントローラシステム及び画像生成方法
WO2023119519A1 (ja) Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム
JP2009157534A (ja) プログラム作成支援システム、そのプログラマブルコントローラ支援装置、プログラマブル表示器支援装置
Le A react responsive web application managing offers and configurations of projects
JPH0954688A (ja) Gui設計支援方法
CN117573106A (zh) 前端h5项目构建方法、装置、设备及存储介质
US20090158156A1 (en) Online programming of operator interface panel
JPH09160611A (ja) プログラマブルコントローラ
CN118192954A (zh) 功能代码的生成系统、方法、电子设备及存储介质
JPH0644237A (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: 20924716

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: 2020924716

Country of ref document: EP

Effective date: 20221012