WO2023119519A1 - Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム - Google Patents

Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム Download PDF

Info

Publication number
WO2023119519A1
WO2023119519A1 PCT/JP2021/047688 JP2021047688W WO2023119519A1 WO 2023119519 A1 WO2023119519 A1 WO 2023119519A1 JP 2021047688 W JP2021047688 W JP 2021047688W WO 2023119519 A1 WO2023119519 A1 WO 2023119519A1
Authority
WO
WIPO (PCT)
Prior art keywords
test
information
program
unit
control
Prior art date
Application number
PCT/JP2021/047688
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 CN202180100104.8A priority Critical patent/CN117642727A/zh
Priority to JP2022529932A priority patent/JP7208441B1/ja
Priority to PCT/JP2021/047688 priority patent/WO2023119519A1/ja
Publication of WO2023119519A1 publication Critical patent/WO2023119519A1/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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Definitions

  • the present disclosure relates to an FA control test support program, an FA control test support device, an FA control test support method, and an FA control test support system.
  • Patent Literature 1 discloses a program management device that designates a subroutine from a program written in programming languages such as C, FORTRAN, and COBOL using a keyboard and automatically generates a test program for confirming the operation of the designated subroutine. It is
  • Patent Document 2 discloses a support device that automatically executes a unit test for a function to be tested in a source file written in an object-oriented language.
  • Patent Document 3 Java (registered trademark) and .
  • a test support system is disclosed that generates test code for testing each method to be tested in a program written in a programming language such as .NET.
  • the present disclosure has been made in view of the above circumstances, and aims to improve the efficiency of testing programs written in the FA control programming language.
  • the FA control test support program causes a computer to use one of a plurality of commands constituting a routine of a program written in the FA control programming language as a minimum unit.
  • the test target part information specification part that specifies the test target part information, which is the information that indicates the part to be tested, and the information that indicates the part that defines the variables used in the test target part from the program It functions as a variable definition partial information extractor that extracts certain variable definition partial information and a test program generator that generates a test program based on the test target partial information and the variable definition partial information.
  • the FA control test support program generates a test program based on test target portion information specified from the program using one command out of a plurality of commands constituting a routine of the program as the minimum unit of testing. do. For this reason, the FA control test support program according to the present disclosure generates a test program based on the test target part information specified from the program as a subroutine of the program as the minimum unit of testing. More testable than the FA control test support program items are difficult to be restricted. Therefore, the FA control test support program according to the present disclosure can improve test efficiency of programs written in the FA control programming language.
  • FIG. 2 is a block diagram showing the functional configuration of the FA control test support system according to the first embodiment;
  • FIG. FIG. 2 is a block diagram showing the hardware configuration of each device according to Embodiment 1;
  • FIG. 11 is a diagram showing display example 1 of an edit screen according to Embodiment 1.
  • FIG. 11 is a diagram showing display example 2 of the edit screen according to the first embodiment;
  • FIG. 11 is a diagram showing display example 3 of the edit screen according to the first embodiment;
  • FIG. 10 is a diagram showing display example 4 of the editing screen according to Embodiment 1.
  • FIG. FIG. 10 is a diagram showing display example 5 of the editing screen according to Embodiment 1.
  • the FA control test support system 1 is, for example, a system that supports testing of programs written in FA control programming languages such as ladder language and ST language.
  • the FA control test support system 1 includes an FA control test support device 100 as an example of a computer installed with an FA control test support program that supports testing of programs written in the FA control programming language. Prepare.
  • the FA control test support system 1 also includes an FA control device 200 controlled by a program written in the FA control programming language.
  • the FA control test support device 100 specifies test target portion information, which is information indicating a test target portion, from the acquired program, and generates a test program based on the specified test target portion information. Generate and output to the FA control device 200 . As a result, since the FA control test support system 1 can test the program by executing the test program output by the FA control device 200, the FA control test support device 100 supports the test of the program. can.
  • the FA control test support device 100 is, for example, a computer device that functions as a server. As shown in FIG. 2, the FA control test support device 100 includes a program editing unit 110 that edits programs and a test program editing unit 120 that edits test programs. The FA control test support device 100 also includes a test program generation unit 130 that generates a test program, and a test program communication unit 140 that communicates information about the test program. The FA control test support device 100 also includes a test result information generation unit 150 that generates test result information, which is information indicating test results, and a test result information display unit 160 that displays the test result information. The FA control test support device 100 also includes a storage unit 170 that stores information on program testing.
  • the program editing unit 110 includes a program editing screen display unit 111 that displays a program editing screen.
  • the program editing unit 110 also includes a test target portion information specifying unit 112 that specifies test target portion information.
  • the program editing unit 110 also includes a variable definition partial information extracting unit 113 that extracts variable definition partial information, which is information indicating a portion defining variables used in a test target portion, from a program.
  • the test program editing unit 120 includes a test program editing screen display unit 121 that displays a test program editing screen.
  • Test program editing unit 120 also includes expected result information designating unit 122 that designates expected result information, which is information indicating the results expected by the user when FA control device 200 executes the test program.
  • the test program editing unit 120 also includes a programming language information designating unit 123 that designates programming language information that is information indicating the FA control programming language for describing the test program.
  • the test program editing unit 120 also includes a usage information specifying unit 124 that specifies usage information, which is information indicating the usage of the test program.
  • the test program editing unit 120 also includes a test program related information management unit 125 that manages test program related information that is information related to the test program.
  • the test program editing unit 120 also includes an export unit 126 that exports test program related information and an import unit 127 that imports test program related information.
  • the test program communication unit 140 includes a test program output unit 141 that outputs the test program, and an execution result information acquisition unit 142 that acquires execution result information of the test program.
  • the storage unit 170 includes a test program-related information storage unit 171 that stores test program-related information that is information related to a test program, and an error cause information storage unit 172 that is information that can identify the cause of an execution error that has occurred in a test. include.
  • the FA control device 200 is, for example, a device including a PLC (Programmable Logic Controller) that controls FA equipment.
  • the FA control device 200 includes an FA controller 210 as an example of a control section and an FA device 220 as an example of a controlled section.
  • the FA controller 210 includes a test program acquisition unit 211 that acquires a test program and a test program execution unit 212 that executes the test program.
  • the FA controller 210 also includes an execution result information output unit 213 that outputs execution result information, which is information indicating execution results when the test program is executed.
  • the FA equipment 220 includes, for example, a servo amplifier 221 and a servo motor 222 .
  • the FA control test support device 100 includes a control section 51 that executes processing according to a control program 59 .
  • the control unit 51 includes a CPU (Central Processing Unit).
  • the control unit 51 executes the variable definition part information extraction unit 113, the test program related information management unit 125, the export unit 126, the import unit 127, the test program generation unit 130, and the test result information generation unit shown in FIG. 150.
  • the FA control test support device 100 includes a main storage section 52 that loads a control program 59 and is used as a work area for the control section 51 .
  • the main storage unit 52 includes a RAM (Random Access Memory).
  • the FA control test support device 100 also includes an external storage unit 53 that stores the control program 59 in advance.
  • the external storage unit 53 supplies data stored by this program to the control unit 51 according to instructions from the control unit 51 and stores the data supplied from the control unit 51 .
  • the external storage unit 53 includes a non-volatile memory such as a flash memory, HDD (Hard Disk Drive), SSD (Solid State Drive).
  • the external storage unit 53 functions as the storage unit 170 shown in FIG.
  • the FA control test support device 100 includes an operation unit 54 operated by a user. Input information is supplied to the control unit 51 via the operation unit 54 .
  • the operation unit 54 includes information input components such as a keyboard, mouse, and touch panel.
  • the operating unit 54 functions as the test target portion information specifying unit 112, the expected result information specifying unit 122, the programming language information specifying unit 123, and the application information specifying unit 124 shown in FIG.
  • the FA control test support device 100 includes a display section 55 that displays information input via the operation section 54 and information output by the control section 51 .
  • the display unit 55 includes a display device such as an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display.
  • the display unit 55 functions as the program edit screen display unit 111, the test program edit screen display unit 121, and the test result information display unit 160 shown in FIG.
  • the FA control test support device 100 includes a transmitting/receiving section 56 for transmitting/receiving information.
  • the transmitting/receiving unit 56 includes information communication components such as a communication network terminal device and a wireless communication device that are connected to a network.
  • the transmission/reception unit 56 functions as the test program output unit 141 and the execution result information acquisition unit 142 shown in FIG.
  • the main storage unit 52, the external storage unit 53, the operation unit 54, the display unit 55, and the transmission/reception unit 56 are all connected to the control unit 51 via the internal bus 50.
  • the control unit 51 uses the main storage unit 52, the external storage unit 53, the operation unit 54, the display unit 55, and the transmission/reception unit 56 as resources so that the units 111 to 113 shown in FIG. , 121-127, 130, 141, 142, 150-170.
  • the FA control test support apparatus 100 includes a program editing screen display step performed by the program editing screen display unit 111, a test target partial information specifying step performed by the test target partial information specifying unit 112, and a variable Execute definition part information extraction step.
  • the FA control test support device 100 executes a test program edit screen display step performed by the test program edit screen display unit 121 .
  • the FA control test support apparatus 100 includes an expected result information specifying step performed by the expected result information specifying unit 122, a programming language information specifying step performed by the programming language information specifying unit 123, and a usage information specifying step performed by the usage information specifying unit 124. Execute the step. Further, for example, the FA control test support apparatus 100 executes a test program related information management step performed by the test program related information management unit 125, an export step performed by the export unit 126, and an import step performed by the import unit 127.
  • the FA control test support device 100 performs a test program generation step performed by the test program generation unit 130, a test program output step performed by the test program output unit 141, and an execution result information acquisition step performed by the execution result information acquisition unit 142. Execute. Further, for example, the FA control test support device 100 executes a test result information generation step performed by the test result information generation unit 150, a test result information display step performed by the test result information display unit 160, and a storage step performed by the storage unit 170. .
  • the FA control device 200 also includes a control unit 51, a main storage unit 52, an external storage unit 53, an operation unit 54, a display unit 55, and a transmission/reception unit 56, similarly to the FA control test support device 100.
  • the control unit 51 functions as the FA controller 210 shown in FIG. 2 according to the control program 59 .
  • the FA control device 200 implements the functions of the FA controller 210 by using the main storage unit 52, the external storage unit 53, the operation unit 54, the display unit 55, and the transmission/reception unit 56 as resources for the control unit 51. do.
  • the FA control device 200 executes a test program acquisition step performed by the test program acquisition unit 211 , a test program execution step performed by the test program execution unit 212 , and an execution result information output step performed by the execution result information output unit 213 .
  • the test target portion information designating unit 112 designates test target portion information from the program using one command among a plurality of commands forming a routine of the program as a minimum unit. For example, the test target portion information specifying unit 112 selects a portion of a program displayed on a program editing screen (not shown) by using the operation unit 54 shown in FIG. Informational. Also, the test target portion information specifying unit 112 extracts test target portion information from the program.
  • the format of the "program” description includes not only the format of character data but also the format of graphic data. Therefore, “one command out of a plurality of commands constituting a routine of a program” includes not only a command described by character data but also a command described by graphic data. Therefore, “one command out of a plurality of commands constituting a program routine" may be, for example, one sentence in the source code in the case of the ST language, or one in the ladder diagram in the case of the ladder language.
  • the "portion of the range selected by the user" in the present embodiment is, for example, one or more sentences in the source code in the case of the ST language, and one or more rungs in the ladder diagram in the case of the ladder language. be.
  • variable definition portion information extraction unit 113 extracts the variable definition portion defining the local variables used in the test target portion, which is the test target portion, from the program based on the test target portion information. Extract information. Also, the variable definition partial information extraction unit 113 extracts variable definition partial information defining global variables used in the test target portion from the program based on the test target portion information.
  • the test program editing screen display unit 121 displays the test program editing screen 300 shown in FIGS.
  • the edit screen 300 has an information selection section 310 for selecting information in the upper left corner, and an information display section 320 for displaying information to be edited to the right of the information selection section 310 .
  • the information selection section 310 has, in order from the top, a test target portion selection tab 311 for selecting a test target portion, a local variable selection tab 312 for selecting a local variable, a global variable selection tab 313 for selecting a global variable, and a programming language.
  • a programming language selection tab 314 to select, an expected value selection tab 315 to select the expected value of the expected result information, a usage selection tab 316 to select a usage, and a test program list selection tab 317 to select a list of test programs are provided. .
  • test target portion selection tab 311 For example, when the user selects the test target portion selection tab 311 using the operation unit 54 shown in FIG.
  • the specified test target portion information 321 is displayed.
  • the information display section 320 displays test program name information 322, which is information indicating the name of the test program, and an automatic generation button 323 that is operated when automatic generation of the test program is started.
  • the test program name information 322 is information that can identify information corresponding to the item of "program name” indicating the name of the test program. Information.
  • the user can use the operation unit 54 to edit the test target portion information 321 and the test program name information 322, thereby adding or changing the name of the test target portion and the test program. It has become. Also, on the edit screen 300, the user can operate the automatic generation button 323 using the operation unit 54.
  • the edit screen 300 is displayed in the information display unit 320 as shown in FIG.
  • the variable definition part information 324 of local variables is displayed in the form of a table.
  • the information display section 320 displays a variable definition check button 325 for checking the variable definition partial information 324 .
  • the variable definition part information 324 includes "variable name” indicating the name of the local variable, "data type” indicating the data type of the local variable, and “initial value” indicating the initial value of the local variable. ”, and information corresponding to the item “description” indicating the description of the local variable is information that can be specified for each local variable.
  • the variable definition part information 324 is information that can specify, for example, that a local variable whose variable name is "iSpeed” has a data type of "INT", an initial value of "100”, and an explanation of "speed”.
  • the edit screen 300 allows the user to add or change local variables by editing the variable definition partial information 324 using the operation unit 54 . Also, on the edit screen 300, the user can operate the variable definition check button 325 using the operation unit 54.
  • the edit screen 300 displays the global variables extracted by the variable definition part information extraction unit 113 in the information display unit 320.
  • the variable definition part information 324 of variables is displayed in the form of a table.
  • a variable definition check button 325 is displayed on the information display section 320 .
  • the user can add or change global variables by editing the variable definition partial information 324 using the operation unit 54.
  • the user can operate the variable definition check button using the operation unit 54.
  • the edit screen 300 displays FA control programming languages that can generate test programs, as shown in FIG.
  • the information display section 320 displays programming language information 326 indicating the FA control programming language.
  • the programming language information 326 is information that can identify the FA control programming language when generating the test program selected by the user.
  • the programming language information 326 is, for example, information that can specify that the "ST language” has been selected from among the "ST language” and the "ladder language” as the FA control programming language when generating the test program.
  • the user can use the operation unit 54 to edit the programming language information 326 to specify the FA control programming language when generating the test program.
  • the edit screen 300 displays expected result information 327 in the form of a table on the information display unit 320 as shown in FIG. .
  • expected result information 327 for example, "No.” indicating the number of the expected value and "expected value conditional expression” indicating the conditional expression of the expected value are information that can be specified for each output value from the FA device 220. be.
  • the editing screen 300 displays usage information on the information display section 320 when the user selects the usage selection tab 316 using the operation section 54, for example.
  • the use information is information that can specify, for example, "servo ON”, “servo OFF”, “speed control”, “positioning”, “initial value setting”, etc. as the use of the test program.
  • the user can use the operation unit 54 to edit the usage information to designate one usage from a plurality of predetermined usages.
  • the edit screen 300 displays a test program list, which is information indicating a list of test programs, in the information display unit 320 as shown in FIG.
  • Information 328 is displayed in the form of a table.
  • the information display section 320 also displays a test program execution button 329 that is operated when executing the test program.
  • the test program list information 328 includes "No.” indicating the number of the test program, "Select” indicating whether or not to execute the test program, and "Name” indicating the name of the test program. ", "Program information” indicating the information of the test program, “Execution result” indicating the execution result of the test program, and "Error details” indicating the details of the error when the test program is an execution error.
  • the information is information that can be specified for each test program. In the test program list information 328, for example, it is possible to specify that the test program numbered "1" is being executed when the test program execution button 329 is operated. Further, in the test program list information 328, for example, it is possible to specify that the test program numbered "1" has the name "Servo ON”, the execution result is "OK", and there is no execution error.
  • the user can edit the test program list information 328 using the operation unit 54 to specify the test program to be executed when the test program execution button 329 is operated.
  • the user can edit the test program list information 328 using the operation unit 54, thereby making it possible to check each information of the test programs and check the details of the execution error described later. is possible.
  • the user can operate the test program execution button 329 using the operation unit 54.
  • the expected result information designation unit 122 stores information indicating the user's expected value for the output value from the FA device 220 when the FA controller 210 executes the test program and controls the FA device 220 as expected result information. 327.
  • the expected result information 327 is information capable of specifying the conditional expression of the expected value as described above, and thus is information capable of specifying the expected value for each execution count when the test program is repeatedly executed.
  • the expected result information specifying unit 122 specifies, as expected result information 327, information that can specify the conditional expression of the expected value input by the user using the operation unit 54 on the edit screen 300 shown in FIG.
  • the programming language information specifying unit 123 specifies, as programming language information 326, information that can specify the FA control programming language selected by the user using the operation unit 54 on the editing screen 300 shown in FIG.
  • the usage information specifying unit 124 specifies information that can specify the usage of the test program selected by the user using the operation unit 54 on the edit screen 300 as usage information.
  • the test program-related information management unit 125 manages multiple types of test program-related information for each test program.
  • the test program related information 350 includes test target portion information 321, variable definition portion information 324, programming language information 326, expected result information 327, application information 351, and information indicating the source of the test program. and compile information 353 indicating the result of compiling the test program.
  • the test program related information management unit 125 can acquire and manage information edited on the edit screen 300 shown in FIGS. 4 to 8 as new test program related information 350.
  • the test program edit screen display unit 121 can display the test program related information 350 managed by the test program related information management unit 125 on the edit screen 300 .
  • the export unit 126 exports the test program related information 350 by storing the test program related information 350 managed by the test program related information management unit 125 in the test program related information storage unit 171 .
  • the test program-related information management unit 125 causes the export unit 126 to export, for example, the test program-related information 350 of a test program that is neither edited nor executed among the plurality of types of test program-related information 350 that it manages.
  • the test program-related information management unit 125 selects test programs for which editing and execution have not been selected among the test programs displayed in the test program list information 328 of the editing screen 300 shown in FIG. Export related information 350 .
  • the import unit 127 imports the test program related information 350 by acquiring the test program related information 350 stored in the test program related information storage unit 171 and outputting it to the test program related information management unit 125. do.
  • the test program-related information management unit 125 transfers the test program-related information 350 of the test program to be edited or executed from among the test program-related information 350 stored in the test program-related information storage unit 171 to the import unit 127. let it import.
  • the test program related information management unit 125 selects the test program to be edited or the test program to be executed from among the test program list information 328 displayed on the editing screen 300 shown in FIG. Import the test program related information 350 of the existing test program.
  • the test program generation unit 130 generates a test program based on the test target portion information 321, the variable definition portion information 324, the programming language information 326, the expected result information 327, and the application information 351 edited on the edit screen 300.
  • the test program generation unit 130 starts generating a test program when the user operates the automatic generation button 323 using the operation unit 54 on the edit screen 300 shown in FIG.
  • the test program generation unit 130 determines whether or not the variable definition part, which is the part where the local variables and global variables specified from the variable definition part information 324 are defined, is appropriate. Even if the automatic generation button 323 is not operated, the test program generation unit 130 generates local variables and global Determine if the variable is properly defined.
  • test program generation unit 130 determines whether the conditional expression of the expected value specified from the expected result information 327 is appropriate. In addition, the test program generation unit 130 acquires all the information necessary for generating the test program, such as the variable definition partial information 324, the test target partial information 321 other than the expected result information 327, the programming language information 326, and the usage information 351. FIG. Also, the test program generation unit 130 generates a test target portion written in the programming language specified from the programming language information 326 based on the test target portion specified from the test target portion information 321 .
  • the test program generation unit 130 converts the test target portion specified from the test target portion information 321 into the test program. The part to be tested.
  • test program generation unit 130 generates a variable definition part written in the specified programming language based on the variable definition part specified from the variable definition part information 324 . At this time, if the programming language of the original program from which the variable definition portion is extracted and the programming language of the test program are the same, the test program generation unit 130 converts the variable definition portion specified from the variable definition portion information 324 into the test program. Make it a variable definition part.
  • test program generation unit 130 writes in a specified programming language a process for comparing the expected value based on the conditional expression of the expected value specified from the expected result information 327 and the output value from the FA device 220. Generate some comparison processing part.
  • the test program generation unit 130 generates an execution result information generation part, which is a part in which processing for generating execution result information is described in a designated programming language.
  • the execution result information indicates "TRUE" when no execution error occurs when the FA controller 210 executes the test program and the difference between the expected value and the output value does not exceed a predetermined threshold. Information that can be identified by the return value.
  • the execution result information is information that can specify a return value indicating an error code when an execution error occurs when the FA controller 210 executes the test program. As for the execution result information, if no execution error occurs when the FA controller 210 executes the test program but the difference between the expected value and the output value exceeds the threshold, the return value indicating "FALSE" can be identified. information.
  • the test program generation unit 130 generates an IF definition part, which is a part defining the IF (InterFace) of the test program, based on the usage specified from the usage information 351 .
  • the test program generation unit 130 also generates source information 352 of the test program by combining the test target portion, the variable definition portion, the comparison processing portion, the execution result information generation portion, and the IF definition portion. Therefore, in the source of the test program specified by the source information 352, the actual processing portion other than the IF definition portion is composed of the test target portion, the variable definition portion, the comparison processing portion, and the execution result information generation portion. there is Then, the test program generation unit 130 compiles the source information 352 of the test program and temporarily stores the compilation information 353 .
  • the test program output unit 141 outputs the test program compilation information 353 to the FA controller 210 of the FA control device 200 .
  • the test program execution button 329 using the operation unit 54 on the edit screen 300 shown in FIG. output.
  • the execution result information acquisition unit 142 acquires execution result information of the test program output from the FA controller 210 of the FA control device 200 .
  • the test program related information management unit 125 causes the execution result information acquisition unit 142 to acquire execution result information, and obtains the test result based on the execution result information.
  • the information is generated by the test result information generation unit 150 .
  • the test program related information storage unit 171 stores the test program related information 350 shown in FIG. 9 exported from the export unit 126 for each test program.
  • the error cause information storage unit 172 stores the error cause information shown in FIG.
  • the error cause information includes, for example, "category” indicating the classification of the execution error, "code” indicating the error code of the execution error, and "detailed content” indicating the detailed content of the execution error.
  • Information corresponding to the item is information that can be specified for each execution error. For example, if the error cause information is an execution error with an error code of "0A01", the classification is an error of "1”, and the detailed content is "The JOG speed is out of the setting range when JOG is started.” It is identifiable information.
  • the test result information generator 150 generates test result information based on the execution result information.
  • the test result information generating unit 150 generates test result information indicating "OK” when a return value indicating "TRUE" is specified from the execution result information. Further, when the test result information generating unit 150 identifies a return value indicating "FALSE” from the execution result information, it generates test result information indicating "NG”. Further, when the test result information generation unit 150 identifies a return value indicating an error code from the execution result information, the test result information generation unit 150 refers to the error cause information stored in the error cause information storage unit 172, and generates detailed contents corresponding to the error code. and generate test result information that can specify the details of "NG" and execution errors.
  • the test result information display unit 160 displays test result information on the edit screen 300 shown in FIG.
  • the test program acquisition unit 211 acquires the compile information 353 of the test program output from the FA control test support device 100 .
  • the test program execution unit 212 uses the compile information 353 to execute the test program.
  • the execution result information output unit 213 outputs execution result information of the test program to the FA control test support device 100 .
  • the operation of the FA control test support device 100 extracting the test target portion information 321 and the variable definition portion information 324 from the program and displaying them on the test program editing screen 300 will be described with reference to a flowchart.
  • the FA control test support device 100 displays a program editing screen (not shown), it starts executing the program editing process shown in FIG. First, the test target portion information specifying unit 112 determines whether or not the user has selected a test target portion from the program displayed on the edit screen (step S101).
  • step S101; N the test target portion information specifying unit 112 repeats the processing of step S101 until the test target portion is selected.
  • step S101; Y the test target portion information specifying unit 112 extracts the test target portion information 321 from the program (step S102).
  • step S103 the variable definition partial information extraction unit 113 extracts the variable definition partial information 324 of the local variables used in the test target portion from the program (step S104).
  • the program editing unit 110 outputs the extracted test target portion information 321 and variable definition portion information 324 to the test program editing unit 120 (step S105). Then, the test program editing unit 120 causes the test program editing screen display unit 121 to display the test target part information 321 and the variable definition part information 324 on the test program editing screen 300 shown in FIGS. 4 and 5 (step S106). End the process.
  • the test program generation unit 130 determines whether or not the local variables specified from the variable definition part information 324 are appropriately defined (step S201). If the local variables are defined correctly (step S201; Y), the test program generator 130 determines whether the global variables specified from the variable definition part information 324 are correctly defined (step S202). If the global variables are defined correctly (step S202; Y), the test program generator 130 determines whether the conditional expression of the expected value identified from the expected result information 327 is correct (step S203).
  • step S201; N If the local variables are not defined correctly (step S201; N), or if the global variables are not defined correctly (step S202; N), or if the conditional expression for the expected value is not correct, the test program generation unit 130 If not (step S203; N), the process ends without creating a test program. On the other hand, if the conditional expression of the expected value is appropriate (step S203; Y), the test program generation unit 130 acquires all the information necessary for generating the test program (step S204).
  • test program generation unit 130 generates a test target portion written in the programming language of the test program specified from the programming language information 326 based on the test target portion specified from the test target portion information 321 (step S205).
  • test program generation unit 130 generates a variable definition part written in the programming language of the test program based on the variable definition part specified from the variable definition part information 324 (step S206).
  • the test program generation unit 130 generates a comparison processing portion based on the conditional expression of the expected value specified from the expected result information 327 (step S207), and generates an execution result information generation portion (step S208).
  • the test program generation unit 130 generates an IF definition part based on the usage identified from the usage information 351 (step S209).
  • the test program generation unit 130 generates the source information 352 by combining the test target portion, the variable definition portion, the comparison processing portion, the execution result information generation portion, and the IF definition portion (step S210). Then, the test program generation unit 130 compiles the test program source information 352 to generate compilation information (step S211), temporarily stores the compilation information 353 (step S212), and terminates the process.
  • test program related information management unit 125 determines whether the execution result information acquisition unit 142 has acquired the execution result information output from the FA controller 210 (step S301). If the test program related information management unit 125 has not acquired the execution result information (step S301; N), it repeats the process of step S301 until the execution result information is acquired.
  • test program-related information management unit 125 acquires execution result information (step S301; Y)
  • the test program generation unit 130 determines whether or not a return value indicating "TRUE” or "FALSE” is identified from the execution result information (step S302).
  • the test program generation unit 130 identifies a return value indicating "TRUE” or "FALSE” from the execution result information (step S302; Y)
  • it generates test result information indicating "OK” or "NG” (step S303).
  • the test program generation unit 130 specifies the return value indicating the error code from the execution result information.
  • the error cause information stored in the error cause information storage unit 172 is referred to.
  • the test program generation unit 130 identifies detailed contents corresponding to the error code from the error cause information, and generates test result information capable of identifying detailed contents of "NG" and the execution error (step S304).
  • the test program related information management unit 125 causes the test result information display unit 160 to display the test result information on the test program editing screen 300 shown in FIG. 8 (step S305). ) and terminate the process.
  • the test target portion information specifying unit 112 selects The test target portion information 321 is specified from the program using one command as the minimum unit. Also, the variable definition partial information extraction unit 113 extracts the variable definition partial information 324 of the variables used in the test target portion from the program. Also, the test program generation unit 130 generates a test program based on the test target portion information 321 and the variable definition portion information 324 . Also, the test program output unit 141 outputs the test program to the FA control device 200 . In the FA controller 210 of the FA controller 200 , the test program execution unit 212 can execute the test program to control the FA device 220 .
  • the FA control test support system 1 according to the present embodiment can generate a test program based on the test target portion information specified from the program with the subroutine of the program as the minimum unit of the test FA control test Items that can be tested are less restricted than support systems. Therefore, the FA control test support system 1 according to the present embodiment can easily generate a test for any part of the program that the user wants to check. Therefore, the FA control test support system 1 according to the present embodiment can reduce costs such as the amount of work and work time for generating a test program, and can also reduce the time required to analyze program problems. As a result, the FA control test support system 1 according to the present embodiment can improve the efficiency of testing programs written in the FA control programming language.
  • the expected result information designating section 122 designates the expected result information 327 shown in FIG.
  • the test program generation unit 130 generates a test program based on the test target portion information 321 shown in FIG. 4 and the variable definition portion information 324 and expected result information 327 shown in FIG.
  • the FA controller 210 outputs execution result information capable of specifying the result of comparing the output value of the FA device 220 and the expected value when the execution result information output unit 213 executes the test program. Output to the control test support device 100 .
  • the test result information generation unit 150 generates test result information based on the execution result information, and the test result information display unit 160 displays the test result information.
  • the user can automatically determine whether or not the difference value between the output value of the FA device 220 and the expected value is allowable by the user. You can check the results. Therefore, the FA control test support system 1 according to the present embodiment can reduce the time required to analyze program problems compared to an FA control test support system that does not generate and display test result information based on execution result information. As a result, the FA control test support system 1 according to the present embodiment can improve the efficiency of program testing.
  • the execution result information of the test program generated based on this program is information that can identify the result of comparing the output value, which is a signal value indicating the servo ON or servo OFF state from outside the servo amplifier 221, and the expected value. do.
  • the signal value indicating the servo ON or servo OFF state which is the output value, changes before and after the servo ON command is output.
  • the test program is repeatedly executed, for example, each time a predetermined period elapses, so that the expected value of the output value also changes.
  • the first expected value is servo OFF
  • the second expected value is servo ON
  • the second expected value is servo ON, and so on.
  • the execution result information of the test program generated based on this program is information capable of specifying the result of comparing the output value, which is the accumulated value of the movement distance from the reference position, and the expected value.
  • the output value which is the accumulated value of the movement distance from the reference position
  • the expected value changes as the test program is repeatedly executed.
  • the first expected value is 3 cm
  • the second expected value is 6 cm
  • the third expected value is 9 cm, and so on.
  • test programs based on program subroutines are generated on the assumption that output values that may change with repeated execution are compared with expected values. Therefore, there is a problem that accurate execution result information cannot be obtained.
  • the expected result information 327 used when generating the test program may change when the test program is repeatedly executed.
  • This is information that can specify the expected value for the output value of the FA device 220 for each execution count.
  • the generated execution result information of the test program is information that can specify the result of comparing the output value of the FA device 220 and the expected value for each execution count when the test program is repeatedly executed.
  • the test program generation unit 130 generates the expected value based on the conditional expression of the expected value specified from the expected result information and the output value from the FA device 220. Generate a comparison processing part that compares By doing so, the FA control test support system 1 according to the present embodiment executes the test program including the comparison processing part, so that the original program does not have a command to obtain the output value of the FA device 220. can also compare the output value with the expected value.
  • a program that includes a command to output the servo ON command described above may not include a command to acquire a signal value indicating the servo ON or servo OFF state. Further, for example, a program that includes a command to move the movable member by 3 cm may not include a command to acquire the cumulative value of the movement distance.
  • the export section 126 causes the test program related information storage section 171 to store the test program related information 350 .
  • the import unit 127 acquires the test program related information 350 stored in the test program related information storage unit 171 .
  • the user can repeatedly use the test program related information 350 stored in the test program related information storage unit 171 .
  • the test program is more likely than the FA control test support system that does not export and import the test program related information. It is possible to reduce costs such as the amount of work and work time required to make the related information 350 available, as well as reduce the time required to analyze problems in the program.
  • the FA control test support system 1 can separate the task of creating a test program and the task of executing a test. It is possible to allocate work according to
  • the usage information specifying unit 124 specifies the usage information 351
  • the test program generation unit 130 specifies the part to be tested.
  • a test program is generated based on the information 321 , the variable definition part information 324 and the usage information 351 .
  • the FA control test support system 1 according to the present embodiment can generate a test program suitable for the application.
  • the FA control test support system 1 according to the present embodiment takes more time to create a test program for standard test items for each use than the FA control test support system that does not generate a test program based on the use information 351. can be shortened.
  • the programming language information specifying unit 123 specifies the programming language information 326
  • the test program generating unit 130 specifies the test A test program is generated based on the target portion information 321 , the variable definition portion information 324 and the programming language information 326 .
  • the FA control test support system 1 according to the present embodiment can generate a test program written in the FA control programming language selected by the user.
  • the FA control test support system 1 according to the present embodiment for example, generates a test program in the FA control programming language that describes the original program from which the test target portion is extracted, or appropriately describes the contents of the test.
  • a test program can be generated in a possible FA control programming language.
  • the test program generation unit 130 combines the test target portion, the variable definition portion, the comparison processing portion, the execution result information generation portion, and the IF definition portion for testing. Generate program source.
  • the FA control test support system 1 according to the present embodiment reduces parts unnecessary for testing from the source than the FA control test support system that does not generate the test program source by combining these parts. can reduce the amount of information in the test program.
  • the test program-related information management unit 125 can reduce the information amount of the test program-related information 350 to be managed, reduce costs such as temporary storage amount and computation load, and improve manageability.
  • the test program related information storage unit 171 the information amount of the test program related information 350 to be stored can be reduced, and the storage amount can be reduced.
  • the FA control test support system 1 includes an FA control test support device 100 and an FA control device 200 .
  • the configuration of the FA control test support system 1 is not limited to this as long as the FA control test support device 100 can support testing of the program that controls the FA control device 200 .
  • the test program may be run on a virtual FA controller instead of the real FA controller 200.
  • FIG. Hereinafter, the FA control test support system 1 according to the second embodiment will be described in detail with reference to FIGS. 14 and 15. FIG. In the second embodiment, the configuration different from that of the first embodiment will be described, and the description of the configuration that is the same as that of the first embodiment will be omitted because it is redundant.
  • the FA control test support system 1 includes an FA control device simulator 400 that is a simulator of the FA control device 200 instead of the FA control device 200 .
  • the FA control device simulator 400 includes, for example, an FA controller simulator 410 that is a simulator of the FA controller 210 and an FA equipment simulator 420 that is a simulator of the FA equipment 220 .
  • FA controller simulator 410 includes test program acquisition unit 211 , test program execution unit 212 , and execution result information output unit 213 .
  • the FA equipment simulator 420 also includes, for example, a servo amplifier simulator 421 that is a simulator of the servo amplifier 221 and a servo motor simulator 422 that is a simulator of the servo motor 222 .
  • the test program output unit 141 outputs the compilation information 353 of the test program to the FA controller simulator 410 .
  • the execution result information acquisition unit 142 acquires execution result information of the test program output from the FA controller simulator 410 . Details of other functional configurations of the FA control test support device 100 according to the present embodiment are the same as those of the first embodiment. Therefore, in the present embodiment, detailed description is omitted in order to reduce redundant description.
  • the test program output unit 141 outputs the test program to the FA control device simulator 400.
  • the test program execution unit 212 can execute the test program to control the FA device 220 in the FA controller simulator 410 .
  • the execution result information output unit 213 outputs execution result information that can identify the result of comparing the output value of the FA device 220 and the expected value when the test program is executed. output to In the FA control test support device 100, the test result information generation unit 150 generates test result information based on the execution result information, and the test result information display unit 160 displays the test result information.
  • the FA control device simulator 400 acquires and executes the test program, and the execution result information can be output to the FA control test support device 100 .
  • the FA control test support system 1 according to the present embodiment has the same effect as the FA control test support system 1 according to the first embodiment.
  • the FA control device simulator 400 is a separate device from the FA control test support device 100, but the FA control device simulator 400 may be integrated with the FA control test support device 100. good.
  • the FA control test support device 100 may implement the functions of the FA control device simulator 400 by means of a program. That is, the FA control test support apparatus 100 is configured such that the control unit 51 uses the main storage unit 52, the external storage unit 53, the operation unit 54, the display unit 55, and the transmission/reception unit 56 as resources so that the FA controller simulator 410, the FA device simulator 420 functionality may be implemented.
  • the user can select the FA control programming language for writing the test program. It doesn't have to be.
  • an FA control programming language for writing test programs may be predetermined.
  • the test program generation unit 130 may generate the test program based on the usage that is estimated from the test target portion information 321 , the variable definition portion information 324 and the expected result information 327 . Further, for example, the test program generation unit 130 may generate the test program based on a predetermined test format without specifying the application.
  • test result information generation unit 150 generates test result information based on the execution result information and the test result information display unit 160 displays the test result information as in the first and second embodiments. may not generate or display test result information.
  • the user needs to check the execution result information output by the FA controller 210 and FA controller simulator 410, or check the result of controlling the FA device 220 and FA device simulator 420 to analyze the test results.
  • the expected result information 327 may change when the test program is repeatedly executed. Although it is preferable that the information is identifiable information for each, it is not limited to this. For example, if the output values of the FA device 220 and the FA device simulator 420 do not change even if the test program is repeatedly executed, the expected result information 327 may be information that can specify one expected value for the output value. Specifically, the expected result information 327 may be one expected value itself instead of the expected value conditional expression.
  • test result information generation unit 150 can refer to the error cause information and specify the detailed content corresponding to the error code as in the above-described first and second embodiments, but the test result information generation unit 150 may not specify the details corresponding to the error code. In this case, the user needs to analyze the test result information, the control results of the FA device 220 and the FA device simulator 420, and specify the error cause corresponding to the detailed information.
  • the test program generation unit 130 generates the IF definition part based on the usage specified from the usage information 351, but the test program generated based on the usage is It is not limited to this.
  • the test program generation unit 130 may generate the comparison processing part based on the usage specified from the usage information 351 and the conditional expression of the expected value specified from the expected result information 327 .
  • the test program generation unit 130 may generate the execution result information generation part based on the usage specified from the usage information 351 .
  • the central part of the processing performed by each device 100, 200, 400 including the control unit 51, the main storage unit 52, the external storage unit 53, the operation unit 54, the display unit 55, the transmission/reception unit 56, the internal bus 50, etc. can be realized using a normal computer system without depending on a dedicated system.
  • the FA control test support program as a computer program for executing the above operation is stored in a computer-readable recording medium such as flash memory, DVD-ROM (Read-Only Memory), etc. and distributed.
  • a computer that executes the above processing may be configured by installing the FA control test support program.
  • the FA control test support program may be stored in a storage device possessed by a server device on a communication network such as LAN (Local Area Network) or the Internet, and a computer may be configured by downloading it to a normal computer system. good.
  • the functions of the devices 100, 200, and 400 are shared between an OS (operating system) and an application program, or when the OS and an application program work together, only the application program portion is stored in a recording medium or storage device. can be stored in
  • the FA control test support program may be posted on a bulletin board (BBS, Bulletin Board System) on the communication network, and the FA control test support program may be provided via the network. Then, the FA control test support program may be activated and executed in the same manner as other application programs under the control of the OS to execute the above processing.
  • BSS Bulletin Board System
  • Reference Signs List 1 FA control test support system 50 Internal bus 51 Control unit 52 Main storage unit 53 External storage unit 54 Operation unit 55 Display unit 56 Transmission/reception unit 59 Control program 100 --- FA control test support device, 110 --- Program editing unit, 111 --- Program editing screen display unit, 112 --- Test target partial information designating unit, 113 --- Variable definition partial information extracting unit, 120 --- Test program editing unit, 121 --- Test Program edit screen display unit 122 Expected result information designation unit 123 Programming language information designation unit 124 Application information designation unit 125 Test program related information management unit 126 Export unit 127 Import unit 130 Test program generation unit 140 Test program communication unit 141 Test program output unit 142 Execution result information acquisition unit 150 Test result information generation unit 160 Test result information display unit 170 Storage unit 171 Test program related information storage unit 172 Error cause information storage unit 200 FA control device 210 FA controller 220 FA equipment 211 Test program acquisition unit 212 Test program execution unit 213 Execution result information Output section 221 Servo amplifier 222 Servo motor
  • Variable definition partial information 325... Variable definition check button 326... Programming language information 327... Expected result information 328... Test program list information 329... Test program execution button 350... Test program related information 351... Use Information 352
  • Source information 353 Compile information 400
  • FA controller simulator 410
  • FA controller simulator 420
  • FA device simulator 421 Servo amplifier simulator 422
  • Servo motor simulator Servo motor simulator.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

FA制御テスト支援プログラムがインストールされたコンピュータの一例としてのFA制御テスト支援装置(100)において、テスト対象部情報指定部(112)は、プログラムのルーチンを構成する複数のコマンドのうちの一のコマンドを最小単位としてプログラムからテスト対象部分情報を指定する。変数定義部分情報抽出部(113)は、プログラムから変数定義部分情報を抽出する。テストプログラム生成部(130)は、テスト対象部分情報と変数定義部分情報とに基づいてテストプログラムを生成する。

Description

FA制御テスト支援プログラム、FA制御テスト支援装置、FA制御テスト支援方法及びFA制御テスト支援システム
 本開示は、FA制御テスト支援プログラム、FA制御テスト支援装置、FA制御テスト支援方法及びFA制御テスト支援システムに関する。
 従来、コンピュータが実行するプログラムをテストするテストプログラムを自動生成することで当該プログラムのテストを支援する装置、システムが知られている。特許文献1には、C言語、FORTRAN及びCOBOLといったプログラミング言語で記述されたプログラムのうちからサブルーチンをキーボードによって指定し、指定されたサブルーチンの動作を確認するテストプログラムを自動生成するプログラム管理装置が開示されている。
 また、特許文献2には、オブジェクト指向型言語で記述されたソースファイルのうちの試験対象となる関数に対する単体試験を自動実行する支援装置が開示されている。また、特許文献3には、Java(登録商標)及び.NETといったプログラミング言語で記述されたプログラムのうちのテスト対象となるメソッド毎にテストを行うテストコードを生成するテスト支援システムが開示されている。なお、特許文献1の「サブルーチン」、特許文献2の「関数」、特許文献3の「メソッド」は、同一の意味で用いられた用語であるため、以降これらを単に「サブルーチン」と記載する。
特開平08-212105号公報 特開2003-177942号公報 特開2007-115071号公報
 特許文献1~3に記載された構成では、一般的なプログラミング言語で記述されたプログラムのサブルーチンをテストの最小単位とするテストプログラムを生成するので、サブルーチンの内容によってテスト可能な項目が制限される問題がある。また、特許文献1~3に記載された構成では、工場の自動化、所謂FA(Factory Automation)の制御で使用するラダー言語、ST言語といったFA制御プログラミング言語で記述されたプログラムをテストすることを想定していない。FA制御プログラミング言語は、サブルーチンを定義せずにプログラムを記述することが多い。このため、特許文献1~3に記載された構成では、FA制御プログラミング言語で記述されたサブルーチンがないプログラムのテストプログラムを生成しようとすると、メインルーチン全体をテストするテストプログラムしか生成できず、テスト可能な項目が更に制限される。この結果、特許文献1~3に記載された構成では、FA制御プログラミング言語で記述されたプログラムについて効率的にテストできない問題がある。
 本開示は、上記実情に鑑みてなされたものであり、FA制御プログラミング言語で記述されたプログラムのテストの効率を向上することを目的とする。
 上記目的を達成するため、本開示に係るFA制御テスト支援プログラムは、コンピュータを、FA制御プログラミング言語で記述されたプログラムのルーチンを構成する複数のコマンドのうちの一のコマンドを最小単位として、プログラムからテストの対象となる部分を示す情報であるテスト対象部分情報を指定するテスト対象部分情報指定部、プログラムからテストの対象となる部分において使用されている変数を定義している部分を示す情報である変数定義部分情報を抽出する変数定義部分情報抽出部、テスト対象部分情報と変数定義部分情報とに基づいてテストプログラムを生成するテストプログラム生成部、として機能させる。
 本開示によれば、FA制御テスト支援プログラムは、プログラムのルーチンを構成する複数のコマンドのうちの一個のコマンドをテストの最小単位として当該プログラムから指定したテスト対象部分情報に基づいてテストプログラムを生成する。このため、本開示に係るFA制御テスト支援プログラムは、プログラムのサブルーチンをテストの最小単位として当該プログラムから指定したテスト対象部情報分に基づいてテストプログラムを生成するFA制御テスト支援プログラムよりもテスト可能な項目が制限され難くなる。したがって、本開示に係るFA制御テスト支援プログラムは、FA制御プログラミング言語で記述されたプログラムのテストの効率を向上できる。
本開示の実施の形態1に係るFA制御テスト支援システムの構成を示すブロック図 実施の形態1に係るFA制御テスト支援システムの機能構成を示すブロック図 実施の形態1に係る各装置のハードウェア構成を示すブロック図 実施の形態1に係る編集画面の表示例1を示す図 実施の形態1に係る編集画面の表示例2を示す図 実施の形態1に係る編集画面の表示例3を示す図 実施の形態1に係る編集画面の表示例4を示す図 実施の形態1に係る編集画面の表示例5を示す図 実施の形態1に係るテストプログラム関連情報の説明図 実施の形態1に係るエラー原因情報の説明図 実施の形態1に係るプログラム編集処理のフローチャート 実施の形態1に係るテストプログラム生成処理のフローチャート 実施の形態1に係るテスト結果情報生成処理のフローチャート 本開示の実施の形態2に係るFA制御テスト支援システムの構成を示すブロック図 実施の形態2に係るFA制御テスト支援システムの機能構成を示すブロック図
 以下、本開示を実施するための形態に係るFA(Factory Automation)制御テスト支援プログラム、FA制御テスト支援装置、FA制御テスト支援方法及びFA制御テスト支援システムについて図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
実施の形態1
(FA制御テスト支援システム1について)
 本開示の実施の形態1に係るFA制御テスト支援システム1は、例えば、ラダー言語、ST言語といったFA制御プログラミング言語で記述されたプログラムのテストを支援するシステムである。
 図1に示すように、FA制御テスト支援システム1は、FA制御プログラミング言語で記述されたプログラムのテストを支援するFA制御テスト支援プログラムがインストールされたコンピュータの一例としてのFA制御テスト支援装置100を備える。また、FA制御テスト支援システム1は、FA制御プログラミング言語で記述されたプログラムによって制御するFA制御装置200を備える。
 FA制御テスト支援システム1では、FA制御テスト支援装置100は、取得したプログラムからテストの対象となる部分を示す情報であるテスト対象部分情報を指定し、指定したテスト対象部分情報に基づくテストプログラムを生成してFA制御装置200に出力する。この結果、FA制御テスト支援システム1は、FA制御装置200が出力されたテストプログラムを実行することで当該プログラムのテストを行うことができるので、FA制御テスト支援装置100によって当該プログラムのテストを支援できる。
(FA制御テスト支援装置100について)
 FA制御テスト支援装置100は、例えば、サーバとしての機能を有するコンピュータ装置である。図2に示すように、FA制御テスト支援装置100は、プログラムを編集するプログラム編集部110、テストプログラムを編集するテストプログラム編集部120を含む。また、FA制御テスト支援装置100は、テストプログラムを生成するテストプログラム生成部130、テストプログラムに関する情報の通信を行うテストプログラム通信部140を含む。また、FA制御テスト支援装置100は、テストの結果を示す情報であるテスト結果情報を生成するテスト結果情報生成部150、テスト結果情報を表示するテスト結果情報表示部160を含む。また、FA制御テスト支援装置100は、プログラムのテストに関する情報を記憶する記憶部170を含む。
 プログラム編集部110は、プログラムの編集画面を表示するプログラム編集画面表示部111を含む。また、プログラム編集部110は、テスト対象部分情報を指定するテスト対象部分情報指定部112を含む。また、プログラム編集部110は、プログラムからテストの対象となる部分において使用されている変数を定義している部分を示す情報である変数定義部分情報を抽出する変数定義部分情報抽出部113を含む。
 テストプログラム編集部120は、テストプログラムの編集画面を表示するテストプログラム編集画面表示部121を含む。また、テストプログラム編集部120は、FA制御装置200がテストプログラムを実行したときにユーザが期待する結果を示す情報である期待結果情報を指定する期待結果情報指定部122を含む。また、テストプログラム編集部120は、テストプログラムを記述するFA制御プログラミング言語を示す情報であるプログラミング言語情報を指定するプログラミング言語情報指定部123を含む。また、テストプログラム編集部120は、テストプログラムの用途を示す情報である用途情報を指定する用途情報指定部124を含む。また、テストプログラム編集部120は、テストプログラムに関連する情報であるテストプログラム関連情報を管理するテストプログラム関連情報管理部125を含む。また、テストプログラム編集部120は、テストプログラム関連情報をエクスポートするエクスポート部126、テストプログラム関連情報をインポートするインポート部127を含む。
 テストプログラム通信部140は、テストプログラムを出力するテストプログラム出力部141、テストプログラムの実行結果情報を取得する実行結果情報取得部142を含む。
 記憶部170は、テストプログラムに関連する情報であるテストプログラム関連情報を記憶するテストプログラム関連情報記憶部171、テストで実行エラーが発生した原因を特定可能な情報であるエラー原因情報記憶部172を含む。
(FA制御装置200について)
 FA制御装置200は、例えば、FA機器を制御するPLC(Programmable Logic Controller)を含む装置である。FA制御装置200は、制御部の一例としてのFAコントローラ210、被制御部の一例としてのFA機器220を含む。FAコントローラ210は、テストプログラムを取得するテストプログラム取得部211、テストプログラムを実行するテストプログラム実行部212を含む。また、FAコントローラ210は、テストプログラムを実行したときの実行結果を示す情報である実行結果情報を出力する実行結果情報出力部213を含む。FA機器220は、例えば、サーボアンプ221、サーボモータ222を含む。
(FA制御テスト支援装置100のハードウェア構成について)
 図3に示すように、FA制御テスト支援装置100は、制御プログラム59に従って処理を実行する制御部51を備える。制御部51は、CPU(Central Processing Unit)を備える。制御部51は、制御プログラム59に従って、図2に示す、変数定義部分情報抽出部113、テストプログラム関連情報管理部125、エクスポート部126、インポート部127、テストプログラム生成部130、テスト結果情報生成部150として機能する。
 図3に戻り、FA制御テスト支援装置100は、制御プログラム59をロードし、制御部51の作業領域として用いられる主記憶部52を備える。主記憶部52は、RAM(Random Access Memory)を備える。
 また、FA制御テスト支援装置100は、制御プログラム59を予め記憶する外部記憶部53を備える。外部記憶部53は、制御部51の指示に従って、このプログラムが記憶するデータを制御部51に供給し、制御部51から供給されたデータを記憶する。外部記憶部53は、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の不揮発性メモリを備える。外部記憶部53は、図2に示す記憶部170として機能する。
 図3に戻り、FA制御テスト支援装置100は、ユーザに操作される操作部54を備える。操作部54を介して、入力された情報が制御部51に供給される。操作部54は、キーボード、マウス、タッチパネル等の情報入力部品を備える。操作部54は、図2に示す、テスト対象部分情報指定部112、期待結果情報指定部122、プログラミング言語情報指定部123、用途情報指定部124として機能する。
 図3に戻り、FA制御テスト支援装置100は、操作部54を介して入力された情報及び制御部51が出力した情報を表示する表示部55を備える。表示部55は、LCD(Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイ等の表示装置を備える。表示部55は、図2に示す、プログラム編集画面表示部111、テストプログラム編集画面表示部121、テスト結果情報表示部160として機能する。
 図3に戻り、FA制御テスト支援装置100は、情報を送受信する送受信部56を備える。送受信部56は、ネットワークに接続する通信網終端装置、無線通信装置等の情報通信部品を備える。送受信部56は、図2に示すテストプログラム出力部141、実行結果情報取得部142として機能する。
 図3に戻り、FA制御テスト支援装置100では、主記憶部52、外部記憶部53、操作部54、表示部55及び送受信部56はいずれも内部バス50を介して制御部51に接続されている。
 FA制御テスト支援装置100は、制御部51が主記憶部52、外部記憶部53、操作部54、表示部55及び送受信部56を資源として用いることによって、図2に示す上記の各部111~113、121~127、130、141、142、150~170の機能を実現する。例えば、FA制御テスト支援装置100は、プログラム編集画面表示部111が行うプログラム編集画面表示ステップ、テスト対象部分情報指定部112が行うテスト対象部分情報指定ステップ、変数定義部分情報抽出部113が行う変数定義部分情報抽出ステップを実行する。
 また、例えば、FA制御テスト支援装置100は、テストプログラム編集画面表示部121が行うテストプログラム編集画面表示ステップを実行する。また、例えば、FA制御テスト支援装置100は、期待結果情報指定部122が行う期待結果情報指定ステップ、プログラミング言語情報指定部123が行うプログラミング言語情報指定ステップ、用途情報指定部124が行う用途情報指定ステップを実行する。また、例えば、FA制御テスト支援装置100は、テストプログラム関連情報管理部125が行うテストプログラム関連情報管理ステップ、エクスポート部126が行うエクスポートステップ、インポート部127が行うインポートステップを実行する。
 また、例えば、FA制御テスト支援装置100は、テストプログラム生成部130が行うテストプログラム生成ステップ、テストプログラム出力部141が行うテストプログラム出力ステップ、実行結果情報取得部142が行う実行結果情報取得ステップを実行する。また、例えば、FA制御テスト支援装置100は、テスト結果情報生成部150が行うテスト結果情報生成ステップ、テスト結果情報表示部160を行うテスト結果情報表示ステップ、記憶部170が行う記憶ステップを実行する。
(FA制御装置200のハードウェア構成について)
 また、図3に示すように、FA制御装置200もFA制御テスト支援装置100と同様に、制御部51、主記憶部52、外部記憶部53、操作部54、表示部55、送受信部56を備える。制御部51は、制御プログラム59に従って、図2に示すFAコントローラ210として機能する。図3に戻り、FA制御装置200は、制御部51が主記憶部52、外部記憶部53、操作部54、表示部55及び送受信部56を資源として用いることによって、FAコントローラ210の機能を実現する。例えば、FA制御装置200は、テストプログラム取得部211が行うテストプログラム取得ステップ、テストプログラム実行部212が行うテストプログラム実行ステップ、実行結果情報出力部213が行う実行結果情報出力ステップを実行する。
(FA制御テスト支援装置100の機能構成の詳細について)
 図2に戻り、テスト対象部分情報指定部112は、プログラムのルーチンを構成する複数のコマンドのうちの一のコマンドを最小単位として当該プログラムからテスト対象部分情報を指定する。例えば、テスト対象部分情報指定部112は、図示しないプログラムの編集画面に表示されているプログラムのうちから図3に示す操作部54を用いてユーザが選択した範囲の部分を示す情報をテスト対象部分情報として指定する。また、テスト対象部分情報指定部112は、当該プログラムからテスト対象部分情報を抽出する。
 ここで、本開示において、「プログラム」の記述の形式には、文字データの形式だけでなく図形データの形式も含まれる。このため、「プログラムのルーチンを構成する複数のコマンドのうちの一のコマンド」には、文字データで記述されたコマンドだけでなく、図形データで記述されたコマンドも含まれる。よって、「プログラムのルーチンを構成する複数のコマンドのうちの一のコマンド」は、例えば、ST言語であればソースコードにおける一の文であってもよく、ラダー言語であればラダー・ダイアグラムにおける一個のラングであってもよい。なお、本実施の形態における「ユーザが選択した範囲の部分」とは、例えば、ST言語であればソースコードにおける一以上の文であり、ラダー言語であればラダー・ダイアグラムにおける一個以上のラングである。
 図2に戻り、変数定義部分情報抽出部113は、テスト対象部分情報に基づいて、プログラムからテストの対象となる部分であるテスト対象部分において使用されているローカル変数を定義している変数定義部分情報を抽出する。また、変数定義部分情報抽出部113は、テスト対象部分情報に基づいて、プログラムからテスト対象部分において使用されているグローバル変数を定義している変数定義部分情報を抽出する。
 テストプログラム編集画面表示部121は、図4~図8に示すテストプログラムの編集画面300を表示する。編集画面300は、図4~図8に示すように、左端上部に情報を選択する情報選択部310、情報選択部310の右方に編集する情報を表示する情報表示部320を有する。情報選択部310には、上から順番に、テスト対象部分を選択するテスト対象部分選択タブ311、ローカル変数を選択するローカル変数選択タブ312、グローバル変数を選択するグローバル変数選択タブ313、プログラミング言語を選択するプログラミング言語選択タブ314、期待結果情報の期待値を選択する期待値選択タブ315、用途を選択する用途選択タブ316、テストプログラムの一覧を選択するテストプログラム一覧選択タブ317が設けられている。
 例えば、編集画面300は、図3に示す操作部54を用いてユーザがテスト対象部分選択タブ311を選択した場合、図4に示すように、情報表示部320にテスト対象部分情報指定部112によって指定されたテスト対象部分情報321を表示する。このとき、情報表示部320には、テストプログラムの名称を示す情報であるテストプログラム名称情報322、テストプログラムの自動生成を開始するときに操作される自動生成ボタン323が表示される。
 ここで、図4に示すように、テスト対象部分情報321は、例えば、「(…前略…)bEnable:=TRUE;(…後略…)」とのソースコードの文字列を特定可能な情報である。また、テストプログラム名称情報322は、テストプログラムの名称を示す「プログラム名称」の項目に対応する情報が特定可能な情報であり、例えば、テストプログラムの名称が「サーボON」であると特定可能な情報である。なお、編集画面300では、ユーザが操作部54を用いてテスト対象部分情報321及びテストプログラム名称情報322を編集することでテストの対象となる部分及びテストプログラムの名称について追記・変更することが可能となっている。また、編集画面300では、ユーザが操作部54を用いて自動生成ボタン323を操作することが可能となっている。
 また、例えば、編集画面300は、操作部54を用いてユーザがローカル変数選択タブ312を選択した場合、図5に示すように、情報表示部320に変数定義部分情報抽出部113によって抽出されたローカル変数の変数定義部分情報324をテーブルの形式で表示する。このとき、情報表示部320には、変数定義部分情報324をチェックする変数定義チェックボタン325が表示される。
 ここで、図5に示すように、変数定義部分情報324は、ローカル変数の名称を示す「変数名」、ローカル変数のデータ型を示す「データ型」、ローカル変数の初期値を示す「初期値」、ローカル変数の説明を示す「説明」の項目に対応する情報がローカル変数毎に特定可能な情報である。変数定義部分情報324は、例えば、変数名が「iSpeed」のローカル変数は、データ型が「INT」、初期値が「100」、説明が「速度」であると特定可能な情報である。なお、編集画面300では、ユーザが操作部54を用いて変数定義部分情報324を編集することでローカル変数を追加したり、変更したりすることが可能となっている。また、編集画面300では、ユーザが操作部54を用いて変数定義チェックボタン325を操作することが可能となっている。
 なお、図示は省略するが、例えば、編集画面300は、操作部54を用いてユーザがグローバル変数選択タブ313を選択した場合、情報表示部320に変数定義部分情報抽出部113によって抽出されたグローバル変数の変数定義部分情報324をテーブルの形式で表示する。このとき、情報表示部320には、変数定義チェックボタン325が表示される。また、編集画面300では、ユーザが操作部54を用いて変数定義部分情報324を編集することでグローバル変数を追加したり、変更したりすることが可能となっている。また、編集画面300では、ユーザが操作部54を用いて変数定義チェックボタンを操作することが可能となっている。
 また、例えば、編集画面300は、操作部54を用いてユーザがプログラミング言語選択タブ314を選択した場合、図6に示すように、テストプログラムを生成可能なFA制御プログラミング言語を表示する。このとき、情報表示部320には、FA制御プログラミング言語を示すプログラミング言語情報326が表示される。
 ここで、図6に示すように、プログラミング言語情報326は、ユーザが選択したテストプログラムを生成するときのFA制御プログラミング言語が特定可能な情報である。プログラミング言語情報326は、例えば、テストプログラムを生成するときのFA制御プログラミング言語として、「ST言語」及び「ラダー言語」のうちから「ST言語」を選択した旨を特定可能な情報である。なお、編集画面300では、ユーザが操作部54を用いてプログラミング言語情報326を編集することでテストプログラムを生成するときのFA制御プログラミング言語を指定することが可能となっている。
 また、例えば、編集画面300は、操作部54を用いてユーザが期待値選択タブ315を選択した場合、図7に示すように、情報表示部320に期待結果情報327をテーブルの形式で表示する。ここで、期待結果情報327では、例えば、期待値の番号を示す「No.」、期待値の条件式を示す「期待値条件式」をFA機器220からの出力値毎に特定可能な情報である。期待結果情報327では、例えば、番号が「1」の期待値は、条件式が「送り現位置=iSpeed * iTime」であると特定可能な情報である。なお、編集画面300では、ユーザが操作部54を用いて期待結果情報327を編集することで期待結果情報を指定することが可能となっている。
 なお、図示は省略するが、例えば、編集画面300は、操作部54を用いてユーザが用途選択タブ316を選択した場合、情報表示部320に用途情報を表示する。ここで、用途情報は、例えば、テストプログラムの用途としての「サーボON」、「サーボOFF」、「速度制御」、「位置決め」、「初期値設定」等を特定可能な情報である。なお、編集画面300では、ユーザが操作部54を用いて用途情報を編集することで予め定められた複数種類の用途のうちから一の用途を指定することが可能となっている。
 また、例えば、編集画面300は、操作部54を用いてテストプログラム一覧選択タブ317を選択した場合、図8に示すように、情報表示部320にテストプログラムの一覧を示す情報であるテストプログラム一覧情報328をテーブルの形式で表示する。また、このとき、情報表示部320には、テストプログラムを実行するときに操作されるテストプログラム実行ボタン329が表示される。
 ここで、図8に示すように、テストプログラム一覧情報328は、テストプログラムの番号を示す「No.」、テストプログラムを実行するか否かを示す「選択」、テストプログラムの名称を示す「名称」、テストプログラムの情報を示す「プログラム情報」、テストプログラムの実行結果を示す「実行結果」、テストプログラムが実行エラーであったときのエラーの詳細内容を示す「エラー詳細」の項目に対応する情報がテストプログラム毎に特定可能な情報である。テストプログラム一覧情報328では、例えば、番号が「1」のテストプログラムは、テストプログラム実行ボタン329が操作されたときに実行していることを特定可能である。また、テストプログラム一覧情報328では、例えば、番号が「1」のテストプログラムは、名称が「サーボON」であり、実行結果が「OK」であり、実行エラーがないことを特定可能である。
 なお、編集画面300では、ユーザが操作部54を用いてテストプログラム一覧情報328を編集することで、テストプログラム実行ボタン329が操作されたときに実行するテストプログラムを指定することが可能となっている。また、編集画面300では、ユーザが操作部54を用いてテストプログラム一覧情報328を編集することで、テストプログラムの各情報を確認可能としたり、後述する実行エラーの詳細内容を確認したりすることが可能となっている。また、編集画面300では、ユーザが操作部54を用いてテストプログラム実行ボタン329を操作することが可能となっている。
 図2に戻り、期待結果情報指定部122は、FAコントローラ210がテストプログラムを実行してFA機器220を制御したときのFA機器220からの出力値に対するユーザの期待値を示す情報を期待結果情報327として指定する。なお、期待結果情報327は、上述したように期待値の条件式を特定可能な情報であるため、テストプログラムを繰り返し実行したときの期待値を実行回数毎に特定可能な情報である。期待結果情報指定部122は、図7に示す編集画面300において操作部54を用いてユーザが入力した期待値の条件式を特定可能な情報を期待結果情報327として指定する。
 図2に戻り、プログラミング言語情報指定部123は、図6に示す編集画面300において操作部54を用いてユーザが選択したFA制御プログラミング言語を特定可能な情報をプログラミング言語情報326として指定する。
 図2に戻り、用途情報指定部124は、編集画面300において操作部54を用いてユーザが選択したテストプログラムの用途を特定可能な情報を用途情報として指定する。
 テストプログラム関連情報管理部125は、複数種類のテストプログラム関連情報をテストプログラム毎に管理する。ここで、図9に示すように、テストプログラム関連情報350は、テスト対象部分情報321、変数定義部分情報324、プログラミング言語情報326、期待結果情報327、用途情報351、テストプログラムのソースを示す情報であるソース情報352及びテストプログラムをコンパイルした結果を示す情報であるコンパイル情報353を含む情報である。図2に戻り、テストプログラム関連情報管理部125は、図4~図8に示す編集画面300において編集された情報を新たなテストプログラム関連情報350として取得して管理することが可能である。なお、テストプログラム編集画面表示部121は、テストプログラム関連情報管理部125が管理しているテストプログラム関連情報350を編集画面300に表示することが可能となっている。
 図2に戻り、エクスポート部126は、テストプログラム関連情報管理部125が管理しているテストプログラム関連情報350をテストプログラム関連情報記憶部171に記憶させることでテストプログラム関連情報350をエクスポートする。なお、テストプログラム関連情報管理部125は、例えば、管理している複数種類のテストプログラム関連情報350のうち、編集も実行もされないテストプログラムのテストプログラム関連情報350をエクスポート部126にエクスポートさせる。具体的には、テストプログラム関連情報管理部125は、図8に示す編集画面300のテストプログラム一覧情報328に表示されたテストプログラムのうち、編集、実行の選択がされていないテストプログラムのテストプログラム関連情報350をエクスポートさせる。
 図2に戻り、インポート部127は、テストプログラム関連情報記憶部171が記憶しているテストプログラム関連情報350を取得してテストプログラム関連情報管理部125に出力することでテストプログラム関連情報350をインポートする。なお、テストプログラム関連情報管理部125は、例えば、テストプログラム関連情報記憶部171が記憶しているテストプログラム関連情報350のうち、編集又は実行するテストプログラムのテストプログラム関連情報350をインポート部127にインポートさせる。具体的には、テストプログラム関連情報管理部125は、図8に示す編集画面300に表示されているテストプログラム一覧情報328のうち、編集の対象となっているテストプログラム又は実行の対象となっているテストプログラムのテストプログラム関連情報350をインポートさせる。
 テストプログラム生成部130は、編集画面300において編集されたテスト対象部分情報321、変数定義部分情報324、プログラミング言語情報326、期待結果情報327、用途情報351に基づいてテストプログラムを生成する。テストプログラム生成部130は、図4に示す編集画面300においてユーザが操作部54を用いて自動生成ボタン323を操作したとき、テストプログラムの生成を開始する。
 先ず、テストプログラム生成部130は、変数定義部分情報324から特定したローカル変数及びグローバル変数が定義されている部分である変数定義部分が適切であるか否かを判定する。なお、テストプログラム生成部130は、自動生成ボタン323が操作されていなくても、図5に示す編集画面300においてユーザが操作部54を用いて変数定義チェックボタン325を操作すればローカル変数及びグローバル変数が適切に定義されているか否かを判定する。
 また、テストプログラム生成部130は、期待結果情報327から特定した期待値の条件式が適切であるか否かを判定する。また、テストプログラム生成部130は、変数定義部分情報324、期待結果情報327以外のテスト対象部分情報321、プログラミング言語情報326、用途情報351といったテストプログラムの生成に必要な情報を全て取得する。また、テストプログラム生成部130は、テスト対象部分情報321から特定したテスト対象部分に基づいて、プログラミング言語情報326から特定したプログラミング言語で記述したテスト対象部分を生成する。このとき、テストプログラム生成部130は、テスト対象部分を抽出した元のプログラムのプログラミング言語とテストプログラムのプログラミング言語とが同一であれば、テスト対象部分情報321から特定したテスト対象部分をテストプログラムのテスト対象部分とする。
 また、テストプログラム生成部130は、変数定義部分情報324から特定した変数定義部分に基づいて、指定されたプログラミング言語で記述した変数定義部分を生成する。このとき、テストプログラム生成部130は、変数定義部分を抽出した元のプログラムのプログラミング言語とテストプログラムのプログラミング言語とが同一であれば、変数定義部分情報324から特定した変数定義部分をテストプログラムの変数定義部分とする。
 また、テストプログラム生成部130は、期待結果情報327から特定された期待値の条件式に基づく期待値とFA機器220からの出力値とを比較する処理を指定されたプログラミング言語で記述した部分である比較処理部分を生成する。
 また、テストプログラム生成部130は、実行結果情報を生成する処理を指定されたプログラミング言語で記述した部分である実行結果情報生成部分を生成する。ここで、実行結果情報は、FAコントローラ210がテストプログラムを実行したときに実行エラーが発生せず且つ期待値と出力値との差分値が予め定めた閾値を超えない場合、「TRUE」を示す戻り値が特定可能な情報である。また、実行結果情報は、FAコントローラ210がテストプログラムを実行したときに実行エラーが発生した場合、エラーコードを示す戻り値が特定可能な情報である。また、実行結果情報は、FAコントローラ210がテストプログラムを実行したときに実行エラーが発生しないが期待値と出力値との差分値が閾値を超えた場合、「FALSE」を示す戻り値が特定可能な情報である。
 また、テストプログラム生成部130は、用途情報351から特定された用途に基づいて、テストプログラムのIF(IntarFace)を定義した部分であるIF定義部分を生成する。また、テストプログラム生成部130は、テスト対象部分、変数定義部分、比較処理部分、実行結果情報生成部分、IF定義部分を組み合わせてテストプログラムのソース情報352を生成する。したがって、ソース情報352で特定されるテストプログラムのソースは、IF定義部分を除いた実際の処理を行う部分が、テスト対象部分、変数定義部分、比較処理部分、実行結果情報生成部分によって構成されている。そして、テストプログラム生成部130は、テストプログラムのソース情報352をコンパイルし、コンパイル情報353を一時記憶する。
 テストプログラム出力部141は、テストプログラムのコンパイル情報353をFA制御装置200のFAコントローラ210に出力する。なお、テストプログラム関連情報管理部125は、図8に示す編集画面300においてユーザが操作部54を用いてテストプログラム実行ボタン329を操作したとき、テストプログラム出力部141にテストプログラムのコンパイル情報353を出力させる。
 図2に戻り、実行結果情報取得部142は、FA制御装置200のFAコントローラ210から出力されたテストプログラムの実行結果情報を取得する。なお、テストプログラム関連情報管理部125は、テストプログラム出力部141にテストプログラムのコンパイル情報353を出力させた後、実行結果情報取得部142に実行結果情報を取得させ、実行結果情報に基づくテスト結果情報をテスト結果情報生成部150に生成させる。
 テストプログラム関連情報記憶部171は、エクスポート部126からエクスポートされた図9に示すテストプログラム関連情報350をテストプログラム毎に記憶する。
 図2に戻り、エラー原因情報記憶部172は、図10に示すエラー原因情報を記憶する。ここで、図10に示すように、エラー原因情報は、例えば、実行エラーの区分を示す「区分」、実行エラーのエラーコードを示す「コード」、実行エラーの詳細内容を示す「詳細内容」の項目に対応する情報が実行エラー毎に特定可能な情報である。例えば、エラー原因情報は、エラーコードが「0A01」の実行エラーについて、区分が「1」のエラーであり、詳細内容が「JOG始動時にJOG速度が設定範囲外になっている。」であると特定可能な情報である。
 テスト結果情報生成部150は、実行結果情報に基づいてテスト結果情報を生成する。テスト結果情報生成部150は、実行結果情報から「TRUE」を示す戻り値を特定した場合、「OK」を示すテスト結果情報を生成する。また、テスト結果情報生成部150は、実行結果情報から「FALSE」を示す戻り値を特定した場合、「NG」を示すテスト結果情報を生成する。また、テスト結果情報生成部150は、実行結果情報からエラーコードを示す戻り値を特定した場合、エラー原因情報記憶部172が記憶しているエラー原因情報を参照し、エラーコードに対応する詳細内容を特定し、「NG」及び実行エラーの詳細内容を特定可能なテスト結果情報を生成する。
 テスト結果情報表示部160は、図8に示す編集画面300にテスト結果情報を表示する。
(FA制御装置200の機能構成の詳細について)
 テストプログラム取得部211は、FA制御テスト支援装置100から出力されたテストプログラムのコンパイル情報353を取得する。
 テストプログラム実行部212は、コンパイル情報353を用いてテストプログラムを実行する。
 実行結果情報出力部213は、テストプログラムの実行結果情報をFA制御テスト支援装置100に出力する。
(プログラム編集処理について)
 次に、フローチャートを用いてFA制御テスト支援装置100がプログラムからテスト対象部分情報321及び変数定義部分情報324を抽出してテストプログラムの編集画面300に表示する動作について説明する。FA制御テスト支援装置100は、図示しないプログラムの編集画面を表示すると、図11に示すプログラム編集処理の実行を開始する。先ず、テスト対象部分情報指定部112は、ユーザによって編集画面において表示されているプログラムからテスト対象部分が選択されたか否かを判定する(ステップS101)。
 テスト対象部分情報指定部112は、テスト対象部分が選択されていない場合(ステップS101;N)、テスト対象部分が選択されるまでステップS101の処理を繰り返す。一方、テスト対象部分情報指定部112は、テスト対象部分が選択された場合(ステップS101;Y)、プログラムからテスト対象部分情報321を抽出する(ステップS102)。次に、変数定義部分情報抽出部113は、プログラムからテスト対象部分で使用されているローカル変数の変数定義部分情報324を抽出する(ステップS103)。次に、変数定義部分情報抽出部113は、プログラムからテスト対象部分で使用されているグローバル変数の変数定義部分情報324を抽出する(ステップS104)。
 次に、プログラム編集部110は、抽出したテスト対象部分情報321と変数定義部分情報324とをテストプログラム編集部120に出力する(ステップS105)。そして、テストプログラム編集部120は、テストプログラム編集画面表示部121によって図4及び図5に示すテストプログラムの編集画面300にテスト対象部分情報321及び変数定義部分情報324を表示させ(ステップS106)、処理を終了する。
(テストプログラム生成処理について)
 次に、フローチャートを用いてFA制御テスト支援装置100がテストプログラムを生成する動作について説明する。FA制御テスト支援装置100は、図4に示すテストプログラムの編集画面300において自動生成ボタン323が操作されると、図12に示すテストプログラム生成処理の実行を開始する。先ず、テストプログラム生成部130は、変数定義部分情報324から特定したローカル変数が適切に定義されているか否かを判定する(ステップS201)。テストプログラム生成部130は、ローカル変数が正しく定義されている場合(ステップS201;Y)、変数定義部分情報324から特定したグローバル変数が正しく定義されているか否かを判定する(ステップS202)。テストプログラム生成部130は、グローバル変数が正しく定義されている場合(ステップS202;Y)、期待結果情報327から特定した期待値の条件式が正しいか否かを判定する(ステップS203)。
 テストプログラム生成部130は、ローカル変数が正しく定義されていない場合(ステップS201;N)、又は、グローバル変数が正しく定義されていない場合(ステップS202;N)、又は、期待値の条件式が正しくない場合(ステップS203;N)、テストプログラムを作成せずに処理を終了する。一方、テストプログラム生成部130は、期待値の条件式が適切である場合(ステップS203;Y)、テストプログラムの生成に必要な情報を全て取得する(ステップS204)。
 次に、テストプログラム生成部130は、テスト対象部分情報321から特定したテスト対象部分に基づいてプログラミング言語情報326から特定したテストプログラムのプログラミング言語で記述したテスト対象部分を生成する(ステップS205)。次に、テストプログラム生成部130は、変数定義部分情報324から特定した変数定義部分に基づいてテストプログラムのプログラミング言語で記述した変数定義部分を生成する(ステップS206)。
 次に、テストプログラム生成部130は、期待結果情報327から特定された期待値の条件式に基づいて比較処理部分を生成し(ステップS207)、実行結果情報生成部分を生成する(ステップS208)。次に、テストプログラム生成部130は、用途情報351から特定された用途に基づいてIF定義部分を生成する(ステップS209)。次に、テストプログラム生成部130は、テスト対象部分、変数定義部分、比較処理部分、実行結果情報生成部分、IF定義部分を組み合わせてソース情報352を生成する(ステップS210)。そして、テストプログラム生成部130は、テストプログラムのソース情報352をコンパイルしてコンパイル情報を生成し(ステップS211)、コンパイル情報353を一時記憶し(ステップS212)、処理を終了する。
(テスト結果情報生成処理について)
 次に、フローチャートを用いてFA制御テスト支援装置100がテスト結果情報を生成、表示する動作について説明する。FA制御テスト支援装置100は、図8に示すテストプログラムの編集画面300においてテストプログラム実行ボタン329が操作されると、図13に示すテスト結果情報生成処理の実行を開始する。先ず、テストプログラム関連情報管理部125は、実行結果情報取得部142がFAコントローラ210から出力された実行結果情報を取得したか否かを判定する(ステップS301)。テストプログラム関連情報管理部125は、実行結果情報を取得していない場合(ステップS301;N)、実行結果情報を取得するまでステップS301の処理を繰り返す。
 一方、テストプログラム関連情報管理部125は、実行結果情報を取得した場合(ステップS301;Y)、実行結果情報に基づくテスト結果情報をテストプログラム生成部130に生成させる。具体的には、先ず、テストプログラム生成部130は、実行結果情報から「TRUE」又は「FALSE」を示す戻り値を特定したか否かを判定する(ステップS302)。テストプログラム生成部130は、実行結果情報から「TRUE」又は「FALSE」を示す戻り値を特定した場合(ステップS302;Y)、「OK」又は「NG」を示すテスト結果情報を生成する(ステップS303)。
 一方、テストプログラム生成部130は、実行結果情報から「TRUE」又は「FALSE」を示す戻り値を特定していない場合(ステップS302;N)、すなわち、実行結果情報からエラーコードを示す戻り値を特定した場合、エラー原因情報記憶部172が記憶しているエラー原因情報を参照する。また、テストプログラム生成部130は、エラー原因情報からエラーコードに対応する詳細内容を特定し、「NG」及び実行エラーの詳細内容を特定可能なテスト結果情報を生成する(ステップS304)。テストプログラム生成部130がテスト結果情報を生成した後、テストプログラム関連情報管理部125は、テスト結果情報表示部160によって図8に示すテストプログラムの編集画面300にテスト結果情報を表示させ(ステップS305)、処理を終了する。
 以上説明したように、本実施の形態に係るFA制御テスト支援システム1によれば、FA制御テスト支援装置100において、テスト対象部分情報指定部112は、プログラムのルーチンを構成する複数のコマンドのうちの一のコマンドを最小単位としてプログラムからテスト対象部分情報321を指定する。また、変数定義部分情報抽出部113は、プログラムからテスト対象部分において使用されている変数の変数定義部分情報324を抽出する。また、テストプログラム生成部130は、テスト対象部分情報321と変数定義部分情報324とに基づいてテストプログラムを生成する。また、テストプログラム出力部141は、テストプログラムをFA制御装置200に出力する。そして、FA制御装置200において、FAコントローラ210では、テストプログラム実行部212がテストプログラムを実行してFA機器220を制御可能である。
 このようにすることで、本実施の形態に係るFA制御テスト支援システム1は、プログラムのサブルーチンをテストの最小単位として当該プログラムから指定したテスト対象部分情報に基づいてテストプログラムを生成するFA制御テスト支援システムよりもテスト可能な項目が制限され難くなる。したがって、本実施の形態に係るFA制御テスト支援システム1は、プログラムにおけるユーザが確認したい任意の部分のテストを容易に生成し易くなる。このため、本実施の形態に係るFA制御テスト支援システム1は、テストプログラムを生成する作業量、作業時間といったコストを低減できるとともに、プログラムの問題を分析する時間を低減できる。この結果、本実施の形態に係るFA制御テスト支援システム1は、FA制御プログラミング言語で記述されたプログラムのテストの効率を向上できる。
 また、本実施の形態に係るFA制御テスト支援システム1によれば、FA制御テスト支援装置100において、期待結果情報指定部122は、図7に示す期待結果情報327を指定する。また、テストプログラム生成部130は、図4に示すテスト対象部分情報321と図5に示す変数定義部分情報324と期待結果情報327とに基づいてテストプログラムを生成する。また、FA制御装置200において、FAコントローラ210では、実行結果情報出力部213がテストプログラムを実行したときのFA機器220の出力値と期待値とを比較した結果を特定可能な実行結果情報をFA制御テスト支援装置100に出力する。また、FA制御テスト支援装置100において、テスト結果情報生成部150は、実行結果情報に基づいてテスト結果情報を生成し、テスト結果情報表示部160は、テスト結果情報を表示する。
 このようにすることで、本実施の形態に係るFA制御テスト支援システム1では、ユーザは、FA機器220の出力値と期待値との差分値についてユーザが許容できるか否かを自動的に判定した結果を確認できる。したがって、本実施の形態に係るFA制御テスト支援システム1は、実行結果情報に基づいてテスト結果情報を生成、表示しないFA制御テスト支援システムよりもプログラムの問題を分析する時間を低減できる。この結果、本実施の形態に係るFA制御テスト支援システム1は、プログラムのテストの効率を向上できる。
 ここで、上述した特許文献1~3のように、一般的なプログラミング言語で記述されたプログラムでは、サブルーチンを繰り返し実行した場合、通常であれば同一の入力値から同一の出力値が得られる。このため、一般的なプログラミング言語で記述されたプログラムのサブルーチンに基づくテストプログラムは、同一の入力値で繰り返し実行しても出力値の期待値が変化しない。しかしながら、FA制御プログラミング言語で記述されたプログラムに基づくテストプログラムは、繰り返し実行した場合、同一の入力値であってもFA機器220の出力値の期待値が変化することがある。
 例えば、サーボモータ222を通電させ制御を開始する指令であるサーボON指令をサーボアンプ221に出力するコマンドを含むプログラムについて考える。このプログラムに基づいて生成するテストプログラムの実行結果情報は、サーボアンプ221の外部からサーボON又はサーボOFFの状態を示す信号値である出力値と期待値とを比較した結果を特定可能な情報とする。この場合、サーボON指令が出力される前後で出力値であるサーボON又はサーボOFFの状態を示す信号値が変化する。このため、テストプログラムは、例えば、予め定めた期間が経過する度に繰り返し実行されることで、出力値の期待値も変化する。例えば、当該テストプログラムでは、1回目の期待値がサーボOFF、2回目の期待値がサーボON、2回目の期待値がサーボON、…である可能性がある。
 また、例えば、サーボモータ222を駆動して図示しない可動部材を3cmずつ移動させるコマンドを含むプログラムについて考える。このプログラムに基づいて生成するテストプログラムの実行結果情報は、基準位置からの移動距離の累積値である出力値と期待値とを比較した結果を特定可能な情報とする。この場合、テストプログラムを実行する度に移動距離の累積値が増加する。このため、テストプログラムは、繰り返し実行されることで、出力値の期待値も変化する。具体的には、当該テストプログラムでは、1回目の期待値が3cm、2回目の期待値が6cm、3回目の期待値が9cm、…である。
 しかしながら、上述した特許文献1~3のように、プログラムのサブルーチンに基づくテストプログラムは、繰り返し実行することで変化する可能性がある出力値と期待値とを比較することを想定して生成されていないため、正確な実行結果情報が得られない問題がある。
 これに対して、本実施の形態に係るFA制御テスト支援システム1によれば、テストプログラムを生成するときに使用する期待結果情報327は、テストプログラムを繰り返し実行したときに変化する可能性があるFA機器220の出力値に対する期待値を実行回数毎に特定可能な情報である。また、生成したテストプログラムの実行結果情報は、テストプログラムを繰り返し実行したときのFA機器220の出力値と期待値とを実行回数毎に比較した結果を特定可能な情報である。
 このようにすることで、本実施の形態に係るFA制御テスト支援システム1は、テストプログラムを繰り返し実行しても実行回数毎に変化する出力値と期待値とを比較することができ、正確な実行結果情報を得ることができる。
 また、本実施の形態に係るFA制御テスト支援システム1によれば、テストプログラム生成部130は、期待結果情報から特定された期待値の条件式に基づく期待値とFA機器220からの出力値とを比較する比較処理部分を生成する。
 このようにすることで、本実施の形態に係るFA制御テスト支援システム1は、比較処理部分を含むテストプログラムを実行することにより、元のプログラムにFA機器220の出力値を得るコマンドがなくても当該出力値と期待値とを比較できる。
 例えば、上述したサーボON指令を出力するコマンドを含むプログラムであれば、サーボON又はサーボOFFの状態を示す信号値を取得するコマンドが含まれていない場合がある。また、例えば、可動部材を3cmずつ移動させるコマンドを含むプログラムであれば、移動距離の累積値を取得するコマンドが含まれていない場合がある。これらの場合であっても、本実施の形態に係るFA制御テスト支援システム1では、上述した信号値、累積値といった出力値を示す変数を変数定義部分に追加した変数定義部分情報324と、当該出力値の期待値に基づく期待結果情報327とを使用すれば、生成されたテストプログラムには、比較処理部分に当該出力値を取得して期待値と比較するコマンドが含まれる。この結果、本実施の形態に係るFA制御テスト支援システム1では、元のプログラムに出力値を取得するコマンドがなくても出力値と期待値とを比較できる。
 また、本実施の形態に係るFA制御テスト支援システム1によれば、FA制御テスト支援装置100において、エクスポート部126は、テストプログラム関連情報350をテストプログラム関連情報記憶部171に記憶させる。また、インポート部127は、テストプログラム関連情報記憶部171が記憶しているテストプログラム関連情報350を取得する。
 このようにすることで、本実施の形態に係るFA制御テスト支援システム1では、ユーザは、テストプログラム関連情報記憶部171が記憶しているテストプログラム関連情報350を繰り返し利用できる。この結果、本実施の形態に係るFA制御テスト支援システム1は、テストプログラム関連情報350を繰り返し作成しなくてもよいので、テストプログラム関連情報をエクスポート及びインポートしないFA制御テスト支援システムよりもテストプログラム関連情報350が利用可能となるまでの作業量、作業時間といったコストを低減できるとともに、プログラムの問題を分析する時間を低減できる。
 また、このようにすることで、本実施の形態に係るFA制御テスト支援システム1は、テストプログラムを作成する業務とテストを実行する業務とを分離できるので、例えば、テストの担当者の業務レベルに応じて仕事の割り振りをするといったことが可能となる。
 また、本実施の形態に係るFA制御テスト支援システム1によれば、FA制御テスト支援装置100において、用途情報指定部124は、用途情報351を指定し、テストプログラム生成部130は、テスト対象部分情報321と変数定義部分情報324と用途情報351とに基づいてテストプログラムを生成する。
 このようにすることで、本実施の形態に係るFA制御テスト支援システム1は、用途に合わせたテストプログラムを生成できる。この結果、本実施の形態に係るFA制御テスト支援システム1は、用途情報351に基づいてテストプログラムを生成しないFA制御テスト支援システムよりも用途毎の定型のテスト項目のテストプログラムを作成する時間を短縮できる。
 また、本実施の形態に係るFA制御テスト支援システム1によれば、FA制御テスト支援装置100において、プログラミング言語情報指定部123は、プログラミング言語情報326を指定し、テストプログラム生成部130は、テスト対象部分情報321と変数定義部分情報324とプログラミング言語情報326とに基づいてテストプログラムを生成する。
 このようにすることで、本実施の形態に係るFA制御テスト支援システム1は、ユーザが選択したFA制御プログラミング言語で記述したテストプログラムを生成できる。この結果、本実施の形態に係るFA制御テスト支援システム1は、例えば、テスト対象部分を抽出した元のプログラムを記述したFA制御プログラミング言語でテストプログラムを生成したり、テストの内容を適切に記述可能なFA制御プログラミング言語でテストプログラムを生成したりすることができる。
 また、本実施の形態に係るFA制御テスト支援システム1によれば、テストプログラム生成部130は、テスト対象部分、変数定義部分、比較処理部分、実行結果情報生成部分、IF定義部分を組み合わせてテストプログラムのソースを生成する。
 このようにすることで、本実施の形態に係るFA制御テスト支援システム1は、これらの部分を組み合わせてテストプログラムのソースを生成しないFA制御テスト支援システムよりもソースからテストに不要な部分を低減でき、テストプログラムの情報量を低減できる。この結果、テストプログラム関連情報管理部125は、管理するテストプログラム関連情報350の情報量を低減でき、一時記憶量、演算の負荷といったコストを低減でき、管理性が向上する。また、テストプログラム関連情報記憶部171では、記憶するテストプログラム関連情報350の情報量を低減でき、記憶量を低減できる。
実施の形態2
 実施の形態1に係るFA制御テスト支援システム1は、FA制御テスト支援装置100、FA制御装置200を備えている。しかしながら、FA制御テスト支援システム1の構成については、FA制御テスト支援装置100がFA制御装置200を制御するプログラムのテストを支援できる限りにおいてこれに限定されない。例えば、テストプログラムは、実際のFA制御装置200ではなく、仮想のFA制御装置で実行されてもよい。以下、図14、図15を参照して、実施の形態2に係るFA制御テスト支援システム1について、詳細に説明する。なお、実施の形態2では、実施の形態1と異なる構成について説明し、実施の形態1と同一の構成については冗長であるため説明を省略する。
(FA制御テスト支援システム1について)
 図14に示すように、本開示の実施の形態2に係るFA制御テスト支援システム1は、FA制御装置200に替えてFA制御装置200のシミュレータであるFA制御装置シミュレータ400を備える。
(FA制御装置シミュレータ400について)
 図15に示すように、FA制御装置シミュレータ400は、例えば、FAコントローラ210のシミュレータであるFAコントローラシミュレータ410、FA機器220のシミュレータであるFA機器シミュレータ420を含む。FAコントローラシミュレータ410は、テストプログラム取得部211、テストプログラム実行部212、実行結果情報出力部213を含む。また、FA機器シミュレータ420は、例えば、サーボアンプ221のシミュレータであるサーボアンプシミュレータ421、サーボモータ222のシミュレータであるサーボモータシミュレータ422を含む。
(FA制御装置シミュレータ400のハードウェア構成について)
 なお、本実施の形態に係るFA制御装置シミュレータ400のハードウェア構成については、「FA制御装置200」を「FA制御装置シミュレータ400」、「FAコントローラ210」を「FAコントローラシミュレータ410」とすれば実施の形態1と同様の説明となる。よって、本実施の形態では、冗長な説明を低減するため、詳細な説明を省略する。
(FA制御テスト支援装置100の機能構成の詳細について)
 本実施の形態では、テストプログラム出力部141は、テストプログラムのコンパイル情報353をFAコントローラシミュレータ410に出力する。また、実行結果情報取得部142はFAコントローラシミュレータ410から出力されたテストプログラムの実行結果情報を取得する。
 なお、本実施の形態に係るFA制御テスト支援装置100のその他の機能構成の詳細については、実施の形態1と同様の説明となる。よって、本実施の形態では、冗長な説明を低減するため、詳細な説明を省略する。
 以上説明したように、本実施の形態に係るFA制御テスト支援システム1によれば、FA制御テスト支援装置100において、テストプログラム出力部141は、テストプログラムをFA制御装置シミュレータ400に出力する。そして、FA制御装置シミュレータ400において、FAコントローラシミュレータ410では、テストプログラム実行部212がテストプログラムを実行してFA機器220を制御可能である。
 また、FAコントローラシミュレータ410では、実行結果情報出力部213がテストプログラムを実行したときのFA機器220の出力値と期待値とを比較した結果を特定可能な実行結果情報をFA制御テスト支援装置100に出力する。そして、FA制御テスト支援装置100において、テスト結果情報生成部150は、実行結果情報に基づいてテスト結果情報を生成し、テスト結果情報表示部160は、テスト結果情報を表示する。
 このようにすることで、本実施の形態に係るFA制御テスト支援システム1は、実施の形態に係るFA制御装置200に替えてFA制御装置シミュレータ400がテストプログラムを取得、実行して実行結果情報をFA制御テスト支援装置100に出力することができる。その他、本実施の形態に係るFA制御テスト支援システム1は、上記の実施の形態1に係るFA制御テスト支援システム1と同様の作用効果を奏する。
[変更例]
 なお、上記の実施の形態2では、FA制御装置シミュレータ400をFA制御テスト支援装置100とは別体の装置としたが、FA制御装置シミュレータ400をFA制御テスト支援装置100と一体の装置としてもよい。この場合、例えば、FA制御テスト支援装置100は、FA制御装置シミュレータ400の機能をプログラムによって実現してもよい。すなわち、FA制御テスト支援装置100は、制御部51が主記憶部52、外部記憶部53、操作部54、表示部55及び送受信部56を資源として用いることによって、FAコントローラシミュレータ410、FA機器シミュレータ420の機能を実現してもよい。
 なお、上記の実施の形態1、2のように、ユーザがテストプログラムを記述するFA制御プログラミング言語を選択可能であることが好ましいが、ユーザがテストプログラムを記述するFA制御プログラミング言語を選択可能でなくてもよい。例えば、テストプログラムを記述するFA制御プログラミング言語が予め定められていてもよい。
 なお、上記の実施の形態1、2のように、ユーザがテストプログラムの用途を選択可能であることが好ましいが、ユーザがテストプログラムの用途を選択可能でなくてもよい。この場合、例えば、テストプログラム生成部130がテスト対象部分情報321、変数定義部分情報324、期待結果情報327から推測される用途に基づいてテストプログラムを生成してもよい。また、例えば、テストプログラム生成部130が用途を特定せずに予め定めたテスト形式に基づいてテストプログラムを生成してもよい。
 なお、上記の実施の形態1、2のように、テスト結果情報生成部150が実行結果情報に基づいてテスト結果情報を生成し、テスト結果情報表示部160がテスト結果情報を表示することが好ましいが、テスト結果情報を生成、表示しなくてもよい。この場合、ユーザがFAコントローラ210、FAコントローラシミュレータ410が出力した実行結果情報を確認したり、FA機器220、FA機器シミュレータ420が制御された結果を確認したりしてテストの結果を分析する必要がある。
 なお、上記の実施の形態1、2のように、期待結果情報327がテストプログラムを繰り返し実行したときに変化する可能性があるFA機器220、FA機器シミュレータ420の出力値に対する期待値を実行回数毎に特定可能な情報であることが好ましいが、これに限定されない。例えば、FA機器220、FA機器シミュレータ420の出力値がテストプログラムを繰り返し実行しても変化しない場合、期待結果情報327が当該出力値に対する一の期待値を特定可能な情報であってもよい。具体的には、期待結果情報327が期待値の条件式ではなく、一の期待値そのものであってもよい。
 なお、上記の実施の形態1、2のように、テスト結果情報生成部150がエラー原因情報を参照してエラーコードに対応する詳細内容を特定可能であることが好ましいが、テスト結果情報生成部150がエラーコードに対応する詳細内容を特定しなくてもよい。この場合、ユーザがテスト結果情報、FA機器220、FA機器シミュレータ420の制御結果を分析して詳細情報に相当するエラー原因を特定する必要がある。
 なお、上記の実施の形態1、2では、テストプログラム生成部130は、用途情報351から特定された用途に基づいてIF定義部分を生成したが、用途に基づいて生成するテストプログラムの部分についてはこれに限定されない。例えば、テストプログラム生成部130は、用途情報351から特定された用途と期待結果情報327から特定された期待値の条件式とに基づいて比較処理部分を生成してもよい。また、例えば、テストプログラム生成部130は、用途情報351から特定された用途に基づいて実行結果情報生成部分を生成してもよい。
 なお、制御部51、主記憶部52、外部記憶部53、操作部54、表示部55、送受信部56、内部バス50等を備える各装置100、200、400が処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、前記の動作を実行するためのコンピュータプログラムとしてのFA制御テスト支援プログラムを、コンピュータが読み取り可能な記録媒体、例えば、フラッシュメモリ、DVD-ROM(Read-Only Memory)等に格納して配布し、当該FA制御テスト支援プログラムをインストールすることにより、上記の処理を実行するコンピュータを構成してもよい。また、LAN(Local Area Network)、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該FA制御テスト支援プログラムを格納しておき、通常のコンピュータシステムがダウンロードすることでコンピュータを構成してもよい。
 また、各装置100、200、400の機能は、OS(オペレーティングシステム)とアプリケーションプログラムの分担、又はOSとアプリケーションプログラムとの協働により実現する場合には、アプリケーションプログラム部分のみを記録媒体又は記憶装置に格納してもよい。
 また、搬送波にFA制御テスト支援プログラムを重畳し、通信ネットワークを介して提供することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)にFA制御テスト支援プログラムを掲示し、ネットワークを介してFA制御テスト支援プログラムを提供してもよい。そして、FA制御テスト支援プログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行してもよい。
 本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。つまり、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。
1…FA制御テスト支援システム、50…内部バス、51…制御部、52…主記憶部、53…外部記憶部、54…操作部、55…表示部、56…送受信部、59…制御プログラム、100…FA制御テスト支援装置、110…プログラム編集部、111…プログラム編集画面表示部、112…テスト対象部分情報指定部、113…変数定義部分情報抽出部、120…テストプログラム編集部、121…テストプログラム編集画面表示部、122…期待結果情報指定部、123…プログラミング言語情報指定部、124…用途情報指定部、125…テストプログラム関連情報管理部、126…エクスポート部、127…インポート部、130…テストプログラム生成部、140…テストプログラム通信部、141…テストプログラム出力部、142…実行結果情報取得部、150…テスト結果情報生成部、160…テスト結果情報表示部、170…記憶部、171…テストプログラム関連情報記憶部、172…エラー原因情報記憶部、200…FA制御装置、210…FAコントローラ、220…FA機器、211…テストプログラム取得部、212…テストプログラム実行部、213…実行結果情報出力部、221…サーボアンプ、222…サーボモータ、300…編集画面、310…情報選択部、311…テスト対象部分選択タブ、312…ローカル変数選択タブ、313…グローバル変数選択タブ、314…プログラミング言語選択タブ、315…期待値選択タブ、316…用途選択タブ、317…テストプログラム一覧選択タブ、320…情報表示部、321…テスト対象部分情報、322…テストプログラム名称情報、323…自動生成ボタン、324…変数定義部分情報、325…変数定義チェックボタン、326…プログラミング言語情報、327…期待結果情報、328…テストプログラム一覧情報、329…テストプログラム実行ボタン、350…テストプログラム関連情報、351…用途情報、352…ソース情報、353…コンパイル情報、400…FA制御装置シミュレータ、410…FAコントローラシミュレータ、420…FA機器シミュレータ、421…サーボアンプシミュレータ、422…サーボモータシミュレータ。

Claims (7)

  1.  コンピュータを、
     FA制御プログラミング言語で記述されたプログラムのルーチンを構成する複数のコマンドのうちの一のコマンドを最小単位として、前記プログラムからテストの対象となる部分を示す情報であるテスト対象部分情報を指定するテスト対象部分情報指定部、
     前記プログラムから前記テストの対象となる部分において使用されている変数を定義している部分を示す情報である変数定義部分情報を抽出する変数定義部分情報抽出部、
     前記テスト対象部分情報と前記変数定義部分情報とに基づいてテストプログラムを生成するテストプログラム生成部、
     として機能させるFA制御テスト支援プログラム。
  2.  前記コンピュータを、
     前記プログラムを実行することで被制御部を制御するFA制御装置の制御部が前記テストプログラムを実行したときにユーザが期待する結果を示す情報である期待結果情報を指定する期待結果情報指定部、
     前記テスト対象部分情報と前記変数定義部分情報と前記期待結果情報とに基づいてテストプログラムを生成する前記テストプログラム生成部、
     前記制御部が前記テストプログラムを実行したときの実行結果を示す情報である実行結果情報に基づいて前記テストの結果を示す情報であるテスト結果情報を生成するテスト結果情報生成部、
     前記テスト結果情報を表示するテスト結果情報表示部、
     として機能させ、
     前記期待結果情報は、前記テストプログラムを繰り返し実行したときに変化する可能性がある前記被制御部の出力値に対する前記ユーザの期待値を実行回数毎に特定可能な情報であり、
     前記実行結果情報は、前記テストプログラムを繰り返し実行したときの前記出力値と前記期待値とを実行回数毎に比較した結果を特定可能な情報である、
     請求項1に記載のFA制御テスト支援プログラム。
  3.  前記コンピュータを、
     少なくとも前記テスト対象部分情報と前記変数定義部分情報と前記テストプログラムとを含む情報であって前記テストプログラムに関連する情報であるテストプログラム関連情報を記憶部に記憶させるエクスポート部、
     前記記憶部が記憶している前記テストプログラム関連情報を取得するインポート部、
     として機能させる請求項1に記載のFA制御テスト支援プログラム。
  4.  前記コンピュータを、
     前記テストプログラムを実行して被制御部の制御を行う用途を示す情報である用途情報を指定する用途情報指定部、
     前記テスト対象部分情報と前記変数定義部分情報と前記用途情報とに基づいてテストプログラムを生成する前記テストプログラム生成部、
     として機能させる請求項1に記載のFA制御テスト支援プログラム。
  5.  FA制御プログラミング言語で記述されたプログラムのテストを支援するFA制御テスト支援装置であって、
     前記プログラムのルーチンを構成する複数のコマンドのうちの一のコマンドを最小単位として、前記プログラムから前記テストの対象となる部分を示す情報であるテスト対象部分情報を指定するテスト対象部分情報指定部と、
     前記プログラムから前記テストの対象となる部分において使用されている変数を定義している部分を示す情報である変数定義部分情報を抽出する変数定義部分情報抽出部と、
     前記テスト対象部分情報と前記変数定義部分情報とに基づいてテストプログラムを生成するテストプログラム生成部と、
     を備えるFA制御テスト支援装置。
  6.  FA制御プログラミング言語で記述されたプログラムのテストを支援するFA制御テスト支援方法であって、
     前記プログラムのルーチンを構成する複数のコマンドのうちの一のコマンドを最小単位として、コンピュータが前記プログラムから前記テストの対象となる部分を示す情報であるテスト対象部分情報を指定するテスト対象部分情報指定ステップと、
     前記コンピュータが前記プログラムから前記テストの対象となる部分において使用されている変数を定義している部分を示す情報である変数定義部分情報を抽出する変数定義部分情報抽出ステップと、
     前記コンピュータが前記テスト対象部分情報と前記変数定義部分情報とに基づいてテストプログラムを生成するテストプログラム生成ステップと、
     を含むFA制御テスト支援方法。
  7.  FA制御プログラミング言語で記述されたプログラムによって制御するFA制御装置と、前記プログラムのテストを支援するFA制御テスト支援装置とを備えたFA制御テスト支援システムであって、
     前記FA制御装置は、
      前記プログラムを実行することで被制御部を制御する制御部、
     を含み、
     前記FA制御テスト支援装置は、
      前記プログラムのルーチンを構成する複数のコマンドのうちの一のコマンドを最小単位として、前記プログラムから前記テストの対象となる部分を示す情報であるテスト対象部分情報を指定するテスト対象部分情報指定部と、
      前記プログラムから前記テストの対象となる部分において使用されている変数を定義している部分を示す情報である変数定義部分情報を抽出する変数定義部分情報抽出部と、
      前記テスト対象部分情報と前記変数定義部分情報とに基づいてテストプログラムを生成するテストプログラム生成部と、
      前記テストプログラムを前記FA制御装置に出力するテストプログラム出力部と、
     を含み、
     前記制御部は、前記テストプログラムを実行して前記被制御部を制御可能である、
     FA制御テスト支援システム。
PCT/JP2021/047688 2021-12-22 2021-12-22 Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム WO2023119519A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202180100104.8A CN117642727A (zh) 2021-12-22 2021-12-22 Fa控制测试辅助程序、fa控制测试辅助装置、fa控制测试辅助方法及fa控制测试辅助系统
JP2022529932A JP7208441B1 (ja) 2021-12-22 2021-12-22 Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム
PCT/JP2021/047688 WO2023119519A1 (ja) 2021-12-22 2021-12-22 Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/047688 WO2023119519A1 (ja) 2021-12-22 2021-12-22 Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム

Publications (1)

Publication Number Publication Date
WO2023119519A1 true WO2023119519A1 (ja) 2023-06-29

Family

ID=84939288

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/047688 WO2023119519A1 (ja) 2021-12-22 2021-12-22 Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム

Country Status (3)

Country Link
JP (1) JP7208441B1 (ja)
CN (1) CN117642727A (ja)
WO (1) WO2023119519A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165677A (ja) * 1991-12-16 1993-07-02 Mitsubishi Electric Corp テストプログラム作成装置
JP2003140714A (ja) * 2001-11-05 2003-05-16 Mitsubishi Heavy Ind Ltd 図形言語プログラム作成プログラム、及び図形言語プログラム作成装置
JP2005043931A (ja) * 2003-07-22 2005-02-17 Hitachi Ltd プログラム自動生成システム及びプログラム自動生成方法
US20050193263A1 (en) * 2003-09-15 2005-09-01 Bae Systems Plc Test systems or programs
JP2005310056A (ja) * 2004-04-26 2005-11-04 Mitsubishi Electric Corp プログラム実行制御方式
JP2012103791A (ja) * 2010-11-08 2012-05-31 Mitsubishi Electric Corp プログラム試験装置、プログラム試験方法およびプログラム試験用プログラム
WO2015170382A1 (ja) * 2014-05-08 2015-11-12 三菱電機株式会社 エンジニアリングツール、プログラム編集装置およびプログラム編集システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2939571B2 (ja) * 1992-08-24 1999-08-25 三菱電機株式会社 機能テストプログラム生成システム
JP2660163B2 (ja) * 1994-10-11 1997-10-08 有限会社アレフロジック アルゴリズム教育支援システム
JP3819639B2 (ja) * 1999-07-09 2006-09-13 株式会社東芝 プログラミング装置
JP2002148317A (ja) * 2000-11-07 2002-05-22 Yokogawa Electric Corp テストプログラム作成装置及びテストプログラム作成方法
JP4379687B2 (ja) * 2003-07-25 2009-12-09 オムロン株式会社 シミュレーション支援ツールおよびラダープログラムの検証システムならびにプログラム製品
JP2007249785A (ja) * 2006-03-17 2007-09-27 Fujitsu Ltd コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法
JP5230587B2 (ja) * 2009-11-26 2013-07-10 三菱電機株式会社 ラダープログラムのプログラム試験装置、ラダープログラムのプログラム試験方法およびラダープログラムのプログラム試験用プログラム
JP6037976B2 (ja) * 2013-08-26 2016-12-07 三菱電機株式会社 ソースコード生成装置
JP2017166967A (ja) * 2016-03-16 2017-09-21 株式会社ジェイテクト 検査システム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165677A (ja) * 1991-12-16 1993-07-02 Mitsubishi Electric Corp テストプログラム作成装置
JP2003140714A (ja) * 2001-11-05 2003-05-16 Mitsubishi Heavy Ind Ltd 図形言語プログラム作成プログラム、及び図形言語プログラム作成装置
JP2005043931A (ja) * 2003-07-22 2005-02-17 Hitachi Ltd プログラム自動生成システム及びプログラム自動生成方法
US20050193263A1 (en) * 2003-09-15 2005-09-01 Bae Systems Plc Test systems or programs
JP2005310056A (ja) * 2004-04-26 2005-11-04 Mitsubishi Electric Corp プログラム実行制御方式
JP2012103791A (ja) * 2010-11-08 2012-05-31 Mitsubishi Electric Corp プログラム試験装置、プログラム試験方法およびプログラム試験用プログラム
WO2015170382A1 (ja) * 2014-05-08 2015-11-12 三菱電機株式会社 エンジニアリングツール、プログラム編集装置およびプログラム編集システム

Also Published As

Publication number Publication date
CN117642727A (zh) 2024-03-01
JPWO2023119519A1 (ja) 2023-06-29
JP7208441B1 (ja) 2023-01-18

Similar Documents

Publication Publication Date Title
CN108351764B (zh) 数据处理方法和系统
CN107220172B (zh) 通过模型驱动技术进行自动用户界面(ui)测试的方法和系统
US8788239B2 (en) Methods, apparatus and articles of manufacture to test batch configurations
US20130144409A1 (en) Control program generation device, control program generation program, and control program generation method
US20080276221A1 (en) Method and apparatus for relations planning and validation
Julius et al. Transformation of GRAFCET to PLC code including hierarchical structures
EP3647941B1 (en) Engineering apparatus, control method of engineering apparatus, and program
US20190196798A1 (en) Executable program creation device, executable program creation method, and executable program creation program
EP2799981A1 (en) Method for providing code, code generator and software development environment
WO2015075790A1 (ja) シーケンスプログラム作成支援装置
KR101350798B1 (ko) 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법
CN110554861B (zh) 具有编译和读取-评估-打印-循环操作的软件开发环境
JP3805776B2 (ja) グラフィカルプログラミング装置及びプログラマブル表示器
WO2023119519A1 (ja) Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム
CN108304184B (zh) 编译方法及装置
JP4735854B2 (ja) Plcのプログラム開発支援装置
US10048972B2 (en) Method for model-based generation of startup configurations of embedded systems
JP6794668B2 (ja) プログラミング装置
Julius et al. A model-driven approach for transforming GRAFCET specification into PLC code including hierarchical structures
US20180267680A1 (en) Screen creation apparatus, simulation apparatus and recording medium
JP2008003841A (ja) ビルド処理方法、ビルド処理装置、及びプログラム
US20230134007A1 (en) Support device, non-transitory computer-readable storage medium, and support method
JP7403732B1 (ja) 翻訳プログラム、翻訳装置及び翻訳方法
JP5224926B2 (ja) エンジニアリングツール
JP2011165051A (ja) 開発支援装置及び方法並びにプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2022529932

Country of ref document: JP

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

Ref document number: 21968956

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180100104.8

Country of ref document: CN