WO2013136918A1 - 情報処理装置、シミュレーション方法、およびプログラム - Google Patents

情報処理装置、シミュレーション方法、およびプログラム Download PDF

Info

Publication number
WO2013136918A1
WO2013136918A1 PCT/JP2013/053961 JP2013053961W WO2013136918A1 WO 2013136918 A1 WO2013136918 A1 WO 2013136918A1 JP 2013053961 W JP2013053961 W JP 2013053961W WO 2013136918 A1 WO2013136918 A1 WO 2013136918A1
Authority
WO
WIPO (PCT)
Prior art keywords
variable
simulation
control program
value
information processing
Prior art date
Application number
PCT/JP2013/053961
Other languages
English (en)
French (fr)
Other versions
WO2013136918A9 (ja
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 CN201380013393.3A priority Critical patent/CN104204976B/zh
Priority to EP13761416.0A priority patent/EP2816426A4/en
Priority to US14/384,406 priority patent/US10635464B2/en
Publication of WO2013136918A1 publication Critical patent/WO2013136918A1/ja
Publication of WO2013136918A9 publication Critical patent/WO2013136918A9/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
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13152Modification of program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13174Pc, computer connected to plc to simulate machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13179Reiterate simulation for different conditions or subsystems

Definitions

  • the present invention relates to an information processing device, a simulation method, and a program, and more particularly to an information processing device capable of executing a simulation of a control program, a simulation method in the information processing device, and a program for controlling the information processing device.
  • controller support device capable of executing a simulation of a control program including a sequence control portion and a motion control portion, which is executed at each control cycle in a controller that controls the movement of a machine.
  • Patent Document 1 when executing a simulation of a control program including motion control, it is possible to re-execute from a control cycle in the middle from the start to the end of execution.
  • a controller support device is disclosed. Specifically, the controller support device performs simulation execution of the sequence control portion of the control program for one cycle, and generates an execution result related to the sequence control portion.
  • the controller support device executes a simulation of the motion control portion for one period, and generates an execution result related to the motion control portion. Then, the controller support device increments and updates the control cycle number.
  • the controller support device determines whether or not it is a resumable control cycle, and if it is determined that it is a resumable control cycle, the contents of the resuming data buffer updated in the previous control cycle are stored in the resuming data storage unit To do.
  • Patent Document 1 it is not possible to simulate the control program again by using a variable input and / or a variable output during execution of the control program simulation. For this reason, when the user executes the simulation again when the control program is corrected, the user has to input the variables again.
  • the present invention has been made in view of the above-described problems, and an object thereof is to provide an information processing apparatus that supports a controller, a simulation method, and a program capable of easily setting input variables used for simulation. It is in.
  • the information processing apparatus simulates a control program executed at each control cycle in a controller that controls the movement of the machine.
  • An information processing apparatus includes a storage unit that stores a control program, a simulation execution unit that simulates a control program stored in the storage unit, a display control unit that displays a simulation result on a display device, and an arbitrary timing during simulation.
  • the acquisition part which acquires the value of the at least 1 variable in and identification information for identifying the said variable, and the change part which changes the control program memorize
  • the simulation execution unit simulates the changed control program using the value of the variable specified by the acquired identification information as the value of the acquired variable.
  • the display control unit displays the simulation result of the changed control program on the display device.
  • the acquisition unit acquires the values of a plurality of variables at an arbitrary timing in association with a plurality of pieces of identification information for identifying each variable.
  • the simulation execution unit sets the value of the specified variable as the value of the acquired variable associated with the identification information of the variable, Simulate the modified control program.
  • the plurality of variables include a changeable variable used for simulation input and a non-changeable variable output by executing the simulation.
  • the simulation execution unit simulates the changed control program using only the variable that can be changed among the variable and the variable that cannot be changed.
  • the arbitrary timing is at the start of the simulation of the control program or immediately after the start.
  • the variable identification information is a variable name.
  • the display control unit causes the display device to display a list of the names of the acquired variables.
  • the information processing apparatus includes: a reception unit that accepts designation of one or more variables from a plurality of listed variables; an extraction unit that extracts a value of the variable for each variable designated from the values of the plurality of variables; Is further provided.
  • the simulation execution unit simulates the changed control program using the extracted variable values.
  • the simulation method is executed in an information processing apparatus that simulates a control program executed in each control cycle in a controller that controls the movement of a machine.
  • the simulation method includes a step of simulating a control program, a step of displaying a result of the simulation, a step of acquiring a value of at least one variable and identification information for identifying the variable at an arbitrary timing during the simulation, A step of changing the control program, a step of simulating the changed control program using the value of the variable specified by the acquired identification information as the value of the acquired variable, and a result of the simulation of the changed control program Displaying.
  • the program is used to control an information processing apparatus that simulates a control program executed at each control cycle in a controller that controls the movement of the machine.
  • the program includes a step of simulating a control program, a step of displaying a simulation result, a step of obtaining a value of at least one variable at an arbitrary timing during the simulation and identification information for identifying the variable, The step of changing the control program, the step of simulating the changed control program using the value of the variable specified by the acquired identification information as the value of the acquired variable, and the result of the simulation of the changed control program And causing the processor of the information processing device to execute the displaying step.
  • FIG. 1 is a diagram illustrating the configuration of the control system.
  • a control system 1 according to an embodiment of the present invention includes a server 2, a network 4, a PC (personal computer) 6, a controller 14, and a control target device 16.
  • PC personal computer
  • the server 2 is connected to the PC 6 via the network 4.
  • the PC 6 is communicably connected to a controller 14 that controls the control target device 16.
  • the PC 6 that is an information processing device functions as a controller support device.
  • a controller support program 8 is installed in the PC 6, and a control program 10 created by the user is stored.
  • a CD-ROM (Compact Disc-Read Only Memory) 12 stores a controller support program 8.
  • the controller support program 8 installed on the PC 6 is installed from the CD-ROM 12.
  • the controller 14 controls the movement of the control target device 16.
  • a PLC Programmable Logic Controller
  • the controller 14 stores a control program 15 that defines the control contents for the control target device 16.
  • the controller 14 executes the control program 15 once for each control cycle.
  • the control program 15 stored in the controller 14 is copy data obtained by copying the control program 10 stored in the PC 6, and is transmitted from the PC 6.
  • the control target device 16 includes a motor 18 such as a servo motor or a stepping motor, and a motor driver 17 that drives the motor.
  • a motor 18 such as a servo motor or a stepping motor
  • a motor driver 17 that drives the motor.
  • the motor 18 is supplied with drive current from the motor driver 17.
  • the motor driver 17 is given a position command value for each control cycle from the controller 14 that executes the control program 15, and supplies a drive current corresponding to the command value to the motor 18.
  • the motor 18 is a servo motor
  • the motor 18 is provided with an encoder, and an actual measurement value of the rotational position of the motor 18 is detected by the encoder. The measured value of the rotational position of the motor is used by the motor driver 17 for feedback control.
  • controller support program is installed in the PC 6 via the CD-ROM 12
  • the present invention is not limited to this, and the controller support program may be downloaded from the server 2 to the PC 6 via the network 4.
  • the control program may be downloaded from the server 2 to the PC 6 via the network 4.
  • FIG. 2 is a diagram for explaining a simulation executed in the PC 6.
  • the PC 6 executes a first simulation using a control program 10 prepared in advance based on a user instruction.
  • the PC 6 executes the snapshot.
  • “Snapshot” is a process of acquiring the state in memory at a certain point in time and storing it separately as data. Specifically, “snapshot” is a process of acquiring the state of a memory variable at a certain point in time and saving the acquired state of the variable in a file.
  • the PC 6 acquires the value of a variable at an arbitrary timing during simulation, identification information for identifying the variable, and the type of the variable by using a snapshot.
  • the PC 6 acquires the values of the plurality of variables, the plurality of identification information for identifying each variable, and the type of each variable in association with each other.
  • the file format for example, the csv format can be used.
  • variables include variables that can be changed (written) used for simulation input and variables that cannot be changed (written) that are output when the simulation is executed.
  • identification information the name of a variable (henceforth, variable name) is mentioned, for example.
  • variable types include bool, int, and string.
  • variable information information including three pieces of information, that is, a variable name, a variable value, and a variable type is also referred to as “variable information”. That is, “variable information” is information including a variable name, a variable value, and a variable type. One or more pieces of variable information are acquired by the snapshot.
  • the PC 6 stores the acquired variable information (variable name, variable value, variable type) as a file.
  • the acquired variable information is stored in the file 201.
  • “variable name, value, type” “Var_A, True, Bool”, “Var_B, False, Bool”, “Var_C, 1000, int”, “Var_D, Tuer, Bool”, It is assumed that “Var_E, 2000, int” and “Var_F, 3000, int” are stored in the file 201.
  • the user confirms each variable of the file 201.
  • the user changes (corrects) the control program 10 and performs a second simulation.
  • “Restore” refers to using a variable value obtained by snapshot as a simulation variable value (returning the variable value). Specifically, “restore” means that the user selects an input variable necessary for executing the simulation from the variables in the file 201, and sets the value of the selected input variable to the value of the input variable in the memory. Overwriting process.
  • the PC 6 executes the simulation again using the overwritten variable value. For example, the PC 6 executes the simulation again using the value of the variable Var_A (Ture), the value of the variable Var_B (False), and the value of the variable Var_E (2000) among the values of the six variables.
  • the user can execute the restore by editing the file 201 to create a file 201A including the value of the selected input variable and causing the CPU 201 (see FIG. 3) to read the file 201A. .
  • the user changes the control program 10 again. Then, the PC 6 executes the third simulation using the file 201A used in the second simulation. Note that the number of simulations is not limited to three.
  • the user uses the variable obtained by the snapshot as an input variable (input condition) and causes the PC 6 to execute a simulation every time the control program 10 is changed. This eliminates the need for the user to input input variables each time the control program 10 is changed.
  • the user selects an input variable necessary for executing the simulation from the variables in the file 202, and the selected input variable is stored in the file 202A different from the file 202. (Variable name, variable value, variable type) are stored.
  • the user executes the second simulation using the file 202A. If a favorable result is not obtained even by the second simulation, the control program is changed again and the third simulation is executed.
  • the user may temporarily stop (interrupt) the simulation and restart the simulation using the file 201A or the file 202A.
  • the user may temporarily stop the simulation at time t2 and restart the simulation using the file 201A or the file 202A.
  • the user may temporarily stop the simulation at time t3 and restart the simulation using the file 201A or the file 202A.
  • the timing for performing the snapshot and the timing for performing the restoration are not particularly limited.
  • the above-mentioned “first example” is particularly mentioned.
  • a snapshot of the variable at the time of the stop is made and a part of the variable obtained by the snapshot is simulated. Restoration at the start (time t0) or immediately after the start.
  • the user can easily set the input variable after changing the control program by performing a snapshot.
  • the user since the user can use the PC 6 to execute a restore process by using a part (in some cases, all) of the variables obtained by the snapshot, even when the control program is changed each time, Multiple simulations can be easily executed.
  • the number of snapshots in the first simulation is not limited to one, and may be multiple.
  • variables (partial or all in some cases) obtained by any one of a plurality of snapshots can be used.
  • FIG. 3 is a diagram for explaining the hardware configuration of the PC 6.
  • PC 6 according to the embodiment of the present invention includes CPU 901, ROM 902, RAM 903, and HDD 904, CD-ROM drive device 908, communication IF 909, monitor 907, keyboard 905, and mouse 906. including. These parts are connected to each other via an internal bus 910.
  • the HDD 904 is typically a nonvolatile magnetic memory, and stores a controller support program read from the CD-ROM 12 by the CD-ROM driving device 908. A control program 15 is also stored.
  • the CPU 901 expands the controller support program 8 according to the present embodiment stored in the HDD 904 in the RAM 903 and executes it.
  • the RAM 903 is a volatile memory and is used as a work memory.
  • the ROM 902 generally stores programs such as an operating system (OS).
  • OS operating system
  • the communication IF 909 typically supports general-purpose communication protocols such as Ethernet (registered trademark) and USB (Universal Serial Bus), and provides data communication with the server 2 via the network 4 and the controller 14. Provide data communication to and from.
  • general-purpose communication protocols such as Ethernet (registered trademark) and USB (Universal Serial Bus)
  • the monitor 907 is composed of a liquid crystal display device, a CRT (Cathode Ray Tube), a plasma display device, and the like, and displays a processing result by the PC 6.
  • the keyboard 905 accepts key input by the user, and the mouse 906 accepts pointing operation by the user.
  • FIG. 4 is a diagram for explaining functional blocks realized by the CPU 901 executing the controller support program 8.
  • a user interface unit 802 a display data creation unit 804, a simulation unit 806, a control program storage unit 808, a control program editing unit 810, and a controller interface unit 812 are shown. ing.
  • the user interface unit 802 is a part that creates the contents of the window screen to be displayed on the monitor 907 of the PC 6 and accepts user operations with the keyboard 905 and the mouse 906.
  • the control program editing unit 810 allows the user to input and edit the control program.
  • the control program editing unit 810 also compiles when compiling is necessary to execute the control program.
  • the created control program is sent to the controller 14 via the controller interface unit 812.
  • the created control program is stored in a control program storage unit 808 that is a predetermined area of the HDD 904.
  • the control program editing unit 810 can read and edit the control program 15 stored in the controller 14 via the controller interface unit 812.
  • the control program editing unit 810 receives a control program change (for example, correction) instruction from the user, and changes the control program based on the instruction.
  • the simulation unit 806 is a simulator of the controller 14.
  • the simulation unit 806 simulates the operation of the controller 14 executing the control program 15 according to the control program 10 stored in the control program storage unit 808, and calculates the command value of the position that the controller 14 should output every control cycle. To do.
  • the simulation unit 806 simulates a state in which an external signal arrives and affects the operation of the control program, or the execution of the control program 15 itself causes the internal contents of the controller 14 to be stored in the memory of the controller 14. It is possible to simulate a state in which the state changes and the change affects the operation of the control program 15.
  • the simulation unit 806 accepts a user instruction regarding simulation execution via the user interface unit 802. That is, the user interface unit 802 also functions as a means for receiving a user instruction to the simulation unit 806.
  • the display data creation unit 804 creates display data for displaying temporal changes in the execution result data created by the simulation unit 806.
  • the display data creation unit 804 displays the display data on the monitor 907 of the PC 6 in the form of a graph or characters by sending the created display data to the user interface unit 802.
  • FIG. 5 is a flowchart for explaining the flow of processing when the PC 6 executes a snapshot.
  • step S502 CPU 901 of PC 6 starts simulation of control program 10 based on a user's simulation start instruction.
  • the CPU 901 determines whether a snapshot instruction has been accepted.
  • step S504 When a positive determination is made in step S504 (in the case of YES), the CPU 901 temporarily stops the simulation in step S506. If a negative determination is made in step S504 (NO), CPU 901 advances the process to step S516.
  • step S508 the CPU 901 acquires a variable name, a variable type, and a variable value. That is, the CPU 901 obtains variable information at the time when a snapshot instruction is input.
  • step S510 the CPU 901 restarts the simulation. Note that the CPU 901 may restart the simulation triggered by the input of an instruction from the user to restart the simulation.
  • step S512 the CPU 901 accepts designation of a file name for storing variable information acquired by snapshot.
  • step S514 the CPU 901 stores variable information (variable name, variable type, and variable value) acquired with the specified file name.
  • step S5166 the CPU 901 determines whether or not the simulation has ended. When a positive determination is made in step S516 (in the case of YES), the CPU 901 ends a series of processes. If a negative determination is made in step S516 (NO), CPU 901 advances the process to step S504.
  • FIG. 6 is a flowchart for explaining the flow of processing when the PC 6 executes restoration.
  • CPU 901 of PC 6 starts simulation of control program 10 based on the user's simulation start instruction.
  • the CPU 901 determines whether a file to be used for restoration has been specified.
  • step S604 determines whether or not a restore instruction has been received from the user in step S606. If a negative determination is made in step S604 (in the case of NO), the CPU 901 advances the process to step S616.
  • step S606 When a positive determination is made in step S606 (in the case of YES), the CPU 901 temporarily stops the simulation in step S608. If a negative determination is made in step S606 (NO), CPU 901 advances the process to step S616.
  • step S610 the CPU 901 determines whether or not the variable to be restored exists on the memory (RAM 903). That is, the CPU 901 determines whether or not a variable having the same variable name as that described in the file appears as a variable when the simulation is temporarily stopped. If a positive determination is made in step S610 (in the case of YES), CPU 901 rewrites the value of the variable in step S612. If a negative determination is made in step S610 (in the case of NO), CPU 901 advances the process to step S614.
  • Var_A, True, Bool”, “Var_B, False, Bool”, “Var_E, 2000, int” are stored as the file 201A after the snapshot is executed.
  • Var_E the numerical value of only the variable Var_E is rewritten in step S612.
  • step S614 the CPU 901 restarts the simulation.
  • step S616 the CPU 901 determines whether the simulation has ended. If a positive determination is made in step S616 (in the case of YES), the CPU 901 ends the series of processes. If a negative determination is made in step S616 (in the case of NO), the CPU 901 advances the process to step S604.
  • FIG. 7 is a diagram showing a sequence chart when the PC 6 executes a snapshot. Referring to FIG. 7, in sequence SQ702, user interface unit 802 sends an instruction to execute a snapshot to communication processing unit 861 of simulation unit 806.
  • the communication processing unit 861 sends an instruction to read variable information (readMem ()) to the simulation execution unit 863 in sequence SQ704. In sequence SQ706, the simulation execution unit 863 notifies the communication processing unit 861 of variable information.
  • readMem read variable information
  • sequence SQ708 the communication processing unit 861 saves the acquired variable information in a file with a specified file name.
  • sequence SQ710 the communication processing unit 861 notifies the user interface unit 802 of a notification indicating that the variable information has been saved.
  • the user interface unit 802 receives the notification, the user interface unit 802 causes the monitor 907 to display content indicating that the variable information has been saved.
  • FIG. 8 is a sequence chart when the PC 6 executes restoration.
  • user interface unit 802 sends an instruction to execute restoration to communication processing unit 861 of simulation unit 806.
  • the communication processing unit 861 reads the file. That is, the communication processing unit 861 reads out variable information stored as a file in the memory.
  • the communication processing unit 861 sends an instruction to write variable information (WriteMem ()) to the simulation execution unit 863 in sequence SQ806.
  • the simulation execution unit 863 notifies the communication processing unit 861 that writing has been executed or that there is no variable to be written (error).
  • the communication processing unit 861 notifies the user interface unit 802 of the notified content.
  • the user interface unit 802 displays on the monitor 907 that the restoration has been completed, the restoration has failed, and the like.
  • FIG. 9 is a diagram showing variable information obtained by snapshot. Specifically, FIG. 9 is a diagram showing the contents (variable information) of the file 201 (or the file 202).
  • file 201 includes common information and variable information.
  • the common information refers to information shown in the “[Common]” column.
  • the variable information includes a global variable ([global]) and a program variable ([program ()]).
  • the user uses the global variable and / or part of the program variable (in some cases, all) to generate the file 201A used for restoration on the PC 6.
  • the input variable and the output variable are not shown in a distinguished state.
  • FIG. 10 is a diagram illustrating an example of a user interface used for generating data used for restoration. That is, FIG. 10 is a diagram showing data such as the files 201A and 202A.
  • the user interface unit 802 displays a list of a plurality of pieces of variable information (variable names, variable types, and variable values) acquired by the snapshot on the monitor 907. More specifically, the user interface unit 802 causes the monitor 907 to display a user interface 9071 that allows the user to select one or more pieces of variable information from among a plurality of pieces of variable information acquired by the snapshot.
  • the CPU 901 When the user designates one or more pieces of variable information from among a plurality of pieces of variable information displayed using a check box, the CPU 901 accepts the designation.
  • the CPU 901 extracts designated variable information from a file in which a plurality of variable information is stored.
  • CPU901 simulation execution part 863 simulates the said control program using the extracted variable information, when the instruction
  • the user can set the input variables used for the simulation again more easily.
  • control system 1 control system, 2 servers, 4 networks, 8 controller support programs, 10, 15 control programs, 12 CD-ROM, 14 controllers, 16 controlled devices, 17 motor drivers, 18 motors, 201, 201A, 202, 202A files, 802 User interface unit, 804 display data creation unit, 806 simulation unit, 808 control program storage unit, 810 control program editing unit, 812 controller interface unit, 861 communication processing unit, 863 simulation execution unit, 902 ROM, 903 RAM, 907 monitor 9071 user interface, 909 communication IF.

Abstract

 情報処理装置であるPCは、制御プログラム(10)をシミュレーションし、シミュレーションの結果をモニタに表示する。PCは、シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と変数名とを取得する。PCは、ユーザの指示に従い、制御プログラム(10)を変更する。PCは、取得された変数名によって特定される変数の値を取得された変数の値として、変更された制御プログラム(10)をシミュレーションする。PCは、変更された制御プログラム(10)のシミュレーションの結果をモニタに表示する。

Description

情報処理装置、シミュレーション方法、およびプログラム
 本発明は、情報処理装置、シミュレーション方法、およびプログラムに関し、特に、制御プログラムをシミュレーション実行することができる情報処理装置、情報処理装置におけるシミュレーション方法、および情報処理装置を制御するためのプログラムに関する。
 従来、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、シミュレーション実行することができるコントローラサポート装置が知られている。
 たとえば、特開2011-192016号公報(特許文献1)には、モーション制御を含む制御プログラムをシミュレーション実行する場合に、実行の開始から終了までの間の途中の制御周期からの再実行を可能にするコントローラサポート装置が開示されている。具体的には、当該コントローラサポート装置は、制御プログラムのシーケンス制御部分を1周期分シミュレーション実行し、シーケンス制御部分に関する実行結果を生成する。コントローラサポート装置は、モーション制御部分を1周期分シミュレーション実行し、モーション制御部分に関する実行結果を生成する。そして、次に、コントローラサポート装置は、制御周期番号をインクリメント更新する。コントローラサポート装置は、再開可能制御周期かどうかを判断し、再開可能制御周期であると判断した場合には、前の制御周期で更新された再開用データバッファの内容を再開用データ記憶部に保存する。
特開2011-192016号公報
 しかしながら、特許文献1では、制御プログラムのシミュレーションの実行中において入力される変数および/または出力される変数を用いて、再度、制御プログラムをシミュレーションすることはできない。このため、ユーザは、制御プログラムを修正等した場合にシミュレーションを再度実行する場合、変数を入力し直す必要があった。
 本願発明は、上記の問題点に鑑みなされたものであって、その目的は、容易にシミュレーションに用いる入力変数を設定可能な、コントローラをサポートする情報処理装置、シミュレーション方法、およびプログラムを提供することにある。
 本発明のある局面に従うと、情報処理装置は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする。情報処理装置は、制御プログラムを記憶する記憶部と、記憶部に記憶された制御プログラムをシミュレーションするシミュレーション実行部と、シミュレーションの結果を表示装置に表示させる表示制御部と、シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得する取得部と、記憶部に記憶された制御プログラムを変更する変更部とを備える。シミュレーションを実行部は、取得された識別情報によって特定される変数の値を取得された変数の値として、変更された制御プログラムをシミュレーションする。表示制御部は、変更された制御プログラムのシミュレーションの結果を表示装置に表示させる。
 好ましくは、取得部は、任意のタイミングにおける複数の変数の値と、各変数を識別するための複数の識別情報とを対応付けて取得する。シミュレーションを実行部は、複数の変数の中から少なくとも1つの変数が指定されたことに基づき、当該指定された変数の値を当該変数の識別情報に対応付けられた取得された変数の値として、変更された制御プログラムをシミュレーションする。
 好ましくは、複数の変数は、シミュレーションの入力に用いられる変更可能な変数と、シミュレーションの実行により出力される変更不可能な変数とを含む。シミュレーションを実行部は、変更可能な変数および変更不可能な変数のうちの当該変更可能な変数のみを用いて、変更された制御プログラムをシミュレーションする。
 好ましくは、任意のタイミングは、制御プログラムのシミュレーションの開始時、あるいは開始直後である。
 好ましくは、変数の識別情報は、変数の名称である。表示制御部は、取得された変数の名称を表示装置に一覧表示させる。情報処理装置は、一覧表示された複数の変数の中から1つ以上の変数の指定を受け付ける受付部と、複数の変数の値から指定された変数毎に当該変数の値を抽出する抽出部とをさらに備える。シミュレーションを実行部は、抽出された変数の値を用いて変更された制御プログラムをシミュレーションする。
 本発明の他の局面に従うと、シミュレーション方法は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置において実行される。シミュレーション方法は、制御プログラムをシミュレーションするステップと、シミュレーションの結果を表示するステップと、シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得するステップと、制御プログラムを変更するステップと、取得された識別情報によって特定される変数の値を取得された変数の値として、変更された制御プログラムをシミュレーションするステップと、変更された制御プログラムのシミュレーションの結果を表示するステップとを備える。
 本発明のさらに他の局面に従うと、プログラムは、機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置を制御するために用いられる。プログラムは、制御プログラムをシミュレーションするステップと、シミュレーションの結果を表示するステップと、シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得するステップと、制御プログラムを変更するステップと、取得された識別情報によって特定される変数の値を取得された変数の値として、変更された制御プログラムをシミュレーションするステップと、変更された制御プログラムのシミュレーションの結果を表示するステップとを、情報処理装置のプロセッサに実行させる。
 上記発明によれば、容易にシミュレーションに用いる入力変数を設定可能となる。
制御システムの構成を説明する図である。 PCにおいて実行されるシミュレーションを説明するための図である。 PCのハードウェア構成を説明する図である。 CPUがコントローラサポートプログラムを実行することにより実現される機能ブロックを説明する図である。 PCがスナップショットを実行する際の処理の流れを説明するためのフローチャートである。 PCがリストアを実行する際の処理の流れを説明するためのフローチャートである。 PCがスナップショットを実行するときのシーケンスチャートを示した図である。 PCがリストアを実行するときのシーケンスチャートを示した図である。 スナップショットにより得られた変数情報を表した図である。 リストアに用いるデータを生成するために用いられるユーザインターフェイスの一例を表した図である。
 以下、図面を参照しつつ、本発明の実施の形態に係る制御システムについて説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
 <A.システム構成>
 図1は、制御システムの構成を説明する図である。図1を参照して、本発明の実施の形態に従う制御システム1は、サーバ2と、ネットワーク4と、PC(パーソナルコンピュータ)6と、コントローラ14と、制御対象装置16とから構成されている。
 サーバ2は、ネットワーク4を介してPC6と接続されている。PC6は、制御対象装置16を制御するコントローラ14と通信可能に接続されている。
 情報処理装置であるPC6は、コントローラサポート装置として機能する。PC6には、コントローラサポートプログラム8がインストールされており、また、ユーザが作成した制御プログラム10が記憶されている。CD-ROM(Compact Disc-Read Only Memory)12は、コントローラサポートプログラム8を格納している。PC6にインストールされているコントローラサポートプログラム8は、このCD-ROM12からインストールされたものである。
 コントローラ14は、制御対象装置16の動きを制御する。本発明の実施の形態においては、コントローラ14として一例として、PLC(Programmable Logic Controller)が用いられる。すなわち、このPLCには、いわゆるモーションコントロール機能が備えられている。コントローラ14は、制御対象装置16に対する制御内容を規定する制御プログラム15を記憶している。コントローラ14は、制御周期ごとに制御プログラム15を一巡実行する。ここで、コントローラ14に記憶されている制御プログラム15は、PC6に記憶されている制御プログラム10をコピーしたコピーデータであり、PC6から送信されたものである。
 制御対象装置16は、サーボモータ、ステッピングモータなどのモータ18およびモータを駆動するモータドライバ17を含む。
 モータ18はモータドライバ17から駆動電流を供給される。モータドライバ17は、制御プログラム15を実行するコントローラ14から制御周期ごとに位置の指令値を与えられ、それに応じた駆動電流をモータ18に供給する。モータ18がサーボモータである場合、モータ18にはエンコーダが備えられており、モータ18の回転位置の実測値がエンコーダによって検出される。モータの回転位置の実測値は、モータドライバ17がフィードバック制御に利用する。
 なお、上記においては、CD-ROM12を介して、PC6にコントローラサポートプログラムをインストールする場合について説明したが、特にこれに限られず、サーバ2からネットワーク4を介してコントローラサポートプログラムをPC6にダウンロードするようにしても良い。制御プログラムについても同様である。
 <B.処理の概要>
 図2は、PC6において実行されるシミュレーションを説明するための図である。図2を参照して、PC6は、ユーザの指示に基づき、予め用意した制御プログラム10を用いて1回目のシミュレーションを実行する。この際、ユーザが、たとえばプログラムのシミュレーションの開始時(t=t0)において、スナップショットの指示をPC6に入力した場合、PC6はスナップショットを実行する。
 「スナップショット」とは、ある時点におけるメモリ内の状態を取得して、データとして別途保存する処理である。具体的には、「スナップショット」とは、ある時点におけるメモリの変数の状態を取得して、当該取得された変数の状態をファイルに保存する処理である。本実施の形態では、PC6が、スナップショットによって、シミュレーション中の任意のタイミングにおける変数の値と、当該変数を識別するための識別情報と、当該変数の型とを取得するものとして説明する。なお、PC6は、取得される変数が複数の場合、複数の変数の値と、各変数を識別するための複数の識別情報と各変数の型とを対応付けて取得する。なお、ファイル形式としては、たとえば、csv形式を用いることができる。
 上記変数としては、シミュレーションの入力に用いられる変更(書き込み)可能な変数と、シミュレーションの実行により出力される変更(書き込み)不可能な変数とが含まれる。また、識別情報としては、たとえば、変数の名称(以下、変数名)が挙げられる。変数の型としては、たとえば、bool、int、stringが挙げられる。
 以下では、変更可能な変数の一例として入力変数を、変更不可能な変数の一例として出力変数を例に挙げて説明する。また、説明の便宜上、変数名と変数の値と変数の型との3つの情報を含めた情報を、「変数情報」とも称する。つまり、「変数情報」は、変数名と変数の値と変数の型とを含んだ情報であるとする。スナップショットにより、1つ以上の変数情報が取得されることになる。
 (b1.第1の例)
 PC6は、スナップショットを実行すると、取得した変数情報(変数名、変数の値,変数の型)をファイルとして保存する。ここでは、説明の便宜上、時間t=t0におけるスナップショットにより、たとえば6つの変数情報が取得され、当該取得された変数情報がファイル201に保存されたとする。具体的には、スナップショットにより、「変数名,値,型」=「Var_A,True,Bool」,「Var_B,False,Bool」,「Var_C,1000,int」,「Var_D,Tuer,Bool」,「Var_E,2000,int」,「Var_F,3000,int」がファイル201に保存されたとする。
 ここで、ユーザは、ファイル201の各変数を確認する。ユーザは、各変数の値に問題があると判断した場合、制御プログラム10を変更(修正)し、2回目のシミュレーションを行なう。
 この場合、ユーザは、リストアの処理を実行する。「リストア」とは、スナップショットで得られた変数の値を、シミュレーションの変数の値として利用する(変数の値を戻す)ことをいう。具体的には、「リストア」とは、ファイル201の変数の中からシミュレーションの実行に必要な入力変数をユーザが選択し、当該選択された入力変数の値をメモリ上の当該入力変数の値に上書きする処理である。PC6は、当該上書きされた変数の値を用いて、再度シミュレーションを実行する。たとえば、PC6は、上記6つの変数の値のうち、変数Var_Aの値(Ture)と変数Var_Bの値(False)と変数Var_Eの値(2000)とを用いて、再度シミュレーションを実行する。
 たとえば、ユーザは、ファイル201を編集して当該選択された入力変数の値を含むファイル201Aを作成し、ファイル201AをCPU901(図3参照)に読み込ませることにより、上記リストアを実行することができる。
 2回目のシミュレーションでも好ましい結果が得られない場合、ユーザは、再度、制御プログラム10を変更する。そして、PC6は、2回目のシミュレーションで利用したファイル201Aを用いて、3回目のシミュレーションを実行する。なお、シミュレーションの回数は、3回に限定されるものではない。
 以上のように、ユーザは、スナップショットで得られた変数を入力変数(入力条件)として利用し、制御プログラム10を変更する都度、シミュレーションをPC6に実行させる。これにより、制御プログラム10を変更する都度、入力変数をユーザが入力する必要がなくなる。
 (b2.第2の例)
 ユーザの指示により、PC6が、時間t=t0より後の時間t1においてスナップショットを行なったとする。この場合に得られた変数情報を記憶したファイルをファイル202とする。
 この場合も、第1の例と同様に、ユーザは、ファイル202の変数の中からシミュレーションの実行に必要な入力変数をユーザが選択し、ファイル202とは別のファイル202Aに当該選択した入力変数(変数名、変数の値、変数の型)を記憶させる。
 次いで、ユーザは、制御プログラムの変更後、ファイル202Aを用いて2回目のシミュレーションを実行する。2回目のシミュレーションによっても好ましい結果が得られない場合には、制御プログラムを再度変更した上で3回目のシミュレーションを実行することになる。
 (b3.その他の例)
 ユーザは、シミュレーションを一旦停止(中断)し、ファイル201Aまたはファイル202Aを用いてシミュレーションを再開させてもよい。たとえば、制御プログラムを変更した後の2回目のシミュレーションの際には、ユーザは、時間t2においてシミュレーションを一旦停止し、ファイル201Aまたはファイル202Aを用いてシミュレーションを再開させてもよい。また、制御プログラムをさらに変更した後の3回目のシミュレーションの際には、ユーザは、時間t3においてシミュレーションを一旦停止し、ファイル201Aまたはファイル202Aを用いてシミュレーションを再開させてもよい。
 (b4.まとめ)
 以上のように、スナップショットを行なうタイミング、およびリストアを行なうタイミングは、特に限定されるものではない。好適な使用方法の一例としては、特に、上述した「第1の例」が挙げられる。また、好適な使用方法の他の例としては、シミュレーション途中に制御対象の動作が停止した場合、当該停止した時点での変数をスナップショットし、当該スナップショットにより得られた変数の一部をシミュレーションの開始時(時間t0)または開始直後のタイミングでリストアすることが挙げられる。
 いずれの場合であっても、ユーザは、スナップショットを行なうことにより、制御プログラムを変更した後の入力変数の設定が容易になる。つまり、ユーザは、PC6を用いることにより、スナップショットで得られた変数の一部(場合によっては全部)を利用してリストア処理を実行できるため、制御プログラムを都度変更した場合であっても、複数回のシミュレーションを容易に実行可能となる。
 なお、1回目のシミュレーションにおけるスナップショットの回数は、1回に限定されるものではなく、複数回であってもよい。この場合、リストアには、複数回のスナップショットのうちいずれかの回のスナップショットで得られた変数(一部、または場合によっては全部)を用いることができる。
 <C.PC6について>
 図3は、PC6のハードウェア構成を説明する図である。図3を参照して、本発明の実施の形態に従うPC6は、CPU901と、ROM902、RAM903、およびHDD904と、CD-ROM駆動装置908と、通信IF909と、モニタ907と、キーボード905およびマウス906とを含む。なお、これらの部位は、内部バス910を介して互いに接続される。
 HDD904は、典型的には不揮発性の磁気メモリであり、CD-ROM駆動装置908によりCD-ROM12から読取られたコントローラサポートプログラムを格納する。また、制御プログラム15も格納している。
 CPU901は、HDD904に格納されている、本実施の形態に従うコントローラサポートプログラム8をRAM903などに展開して実行する。
 RAM903は、揮発性メモリであり、ワークメモリとして使用される。ROM902は、一般的に、オペレーティングシステム(OS:Operating System)等のプログラムを格納している。
 通信IF909は、典型的にはイーサネット(登録商標)およびUSB(Universal Serial Bus)といった汎用的な通信プロトコルをサポートし、ネットワーク4を介してサーバ2との間でデータ通信を提供するとともに、コントローラ14との間でデータ通信を提供する。
 モニタ907は、液晶表示装置、CRT(Cathode Ray Tube)、プラズマディスプレイ装置などで構成され、PC6による処理結果などを表示する。キーボード905は、ユーザによるキー入力を受付け、マウス906は、ユーザによるポインティング操作を受付ける。
 図4は、CPU901がコントローラサポートプログラム8を実行することにより実現される機能ブロックを説明する図である。図4を参照して、ここでは、ユーザインターフェイス部802と、表示データ作成部804と、シミュレーション部806と、制御プログラム記憶部808と、制御プログラム編集部810と、コントローラインタフェース部812とが示されている。
 ユーザインターフェイス部802は、PC6のモニタ907に表示するウインドウ画面の内容を作成し、また、キーボード905やマウス906によるユーザの操作を受け付ける部位である。
 制御プログラム編集部810は、制御プログラムの入力および編集をユーザに行わせる。制御プログラム編集部810は、制御プログラムを実行するためにコンパイルが必要である場合はコンパイルも行う。作成された制御プログラムは、コントローラインタフェース部812を介してコントローラ14に送られる。また、作成された制御プログラムは、HDD904の所定領域である制御プログラム記憶部808に格納される。また、制御プログラム編集部810は、コントローラインタフェース部812を介してコントローラ14に記憶されている制御プログラム15を読み出して編集することもできる。制御プログラム編集部810は、たとえば、ユーザからの制御プログラムの変更(たとえば修正)指示を受け付け、当該指示に基づいて制御プログラムを変更する。
 シミュレーション部806は、コントローラ14のシミュレータである。シミュレーション部806は、制御プログラム記憶部808に記憶された制御プログラム10に従ってコントローラ14が制御プログラム15を実行する動作をシミュレートし、コントローラ14が制御周期ごとに出力するはずの位置の指令値を算出する。
 また、シミュレーション部806は、外部からの信号が到来して制御プログラムの動作に影響を与える状態をシミュレートしたり、制御プログラム15の実行自体によってコントローラ14のメモリの記憶内容などのコントローラ14の内部状態が変化して、その変化が制御プログラム15の動作に影響を与える状態をシミュレートしたりすることができる。
 また、シミュレーション部806は、ユーザインターフェイス部802を介してシミュレーション実行に関するユーザの指示を受け付ける。すなわち、ユーザインターフェイス部802は、シミュレーション部806に対するユーザの指示を受け付ける手段としても働く。
 表示データ作成部804は、シミュレーション部806によって作成された実行結果データの時間的な変化を表示するための表示データを作成する。表示データ作成部804は、作成した表示データをユーザインターフェイス部802に送ることによりPC6のモニタ907に表示データをグラフや文字の態様で表示する。
 <D.制御構造>
 次に、PC6における制御構造について説明する。
 (d1.スナップショットのフロー)
 図5は、PC6がスナップショットを実行する際の処理の流れを説明するためのフローチャートである。図5を参照して、ステップS502において、PC6のCPU901は、ユーザのシミュレーション開始指示に基づき、制御プログラム10のシミュレーションを開始する。CPU901は、スナップショットの指示を受け付けたか否かを判断する。
 CPU901は、ステップS504で肯定的な判断がなされた場合(YESの場合)、ステップS506において、シミュレーションを一時停止する。CPU901は、ステップS504において否定的な判断がなされた場合(NOの場合)、処理をステップS516に進める。
 ステップS508において、CPU901は、変数名、変数の型、および変数の値を取得する。つまり、CPU901は、スナップショットの指示が入力された時点における変数情報を取得する。ステップS510において、CPU901は、シミュレーションを再開する。なお、CPU901は、シミュレーションを再開させるユーザからの指示が入力されたことをトリガとして、シミュレーションを再開させてもよい。
 ステップS512において、CPU901は、スナップショットにより取得した変数情報を保存するファイル名の指定を受け付ける。ステップS514において、CPU901は、指定されたファイル名で取得した変数情報(変数名、変数の型、および変数の値)を保存する。
 ステップS516において、CPU901は、シミュレーションが終了したか否かを判断する。CPU901は、ステップS516において肯定的な判断がなされた場合(YESの場合)、一連の処理を終了する。CPU901は、ステップS516において否定的な判断がなされた場合(NOの場合)、処理をステップS504に進める。
 (d2.リストアのフロー)
 図6は、PC6がリストアを実行する際の処理の流れを説明するためのフローチャートである。図6を参照して、ステップS602において、PC6のCPU901は、ユーザのシミュレーション開始指示に基づき、制御プログラム10のシミュレーションを開始する。ステップS604において、CPU901は、リストアに用いるファイルの指定があったか否かを判断する。
 CPU901は、ステップS604において肯定的な判断がなされた場合(YESの場合)、ステップS606において、ユーザからリストアの指示を受け付けたか否かを判断する。CPU901は、ステップS604において否定的な判断がなされた場合(NOの場合)、処理をステップS616に進める。
 CPU901は、ステップS606において肯定的な判断がなされた場合(YESの場合)、ステップS608において、シミュレーションを一時停止する。CPU901は、ステップS606において否定的な判断がなされた場合(NOの場合)、処理をステップS616に進める。
 ステップS610において、CPU901は、リストア対象の変数がメモリ(RAM903)上に存在するか否かを判断する。すなわち、CPU901は、ファイルに記載された変数名と同じ変数名の変数が、シミュレーションを一時停止した時に変数として出現しているか否かを判断する。CPU901は、ステップS610において肯定的な判断がなされた場合(YESの場合)、ステップS612において変数の値を書き換える。CPU901は、ステップS610において否定的な判断がなされた場合(NOの場合)、処理をステップS614に進める。
 たとえば、スナップショットを実行した後、「Var_A,True,Bool」,「Var_B,False,Bool」,「Var_E,2000,int」をファイル201Aとして記憶させたとする。この場合に、ステップS608でシミュレーションを一時停止したときに現れている変数が「Var_E」だけであれば、ステップS612において変数Var_Eだけの数値を書き換える。
 ステップS614において、CPU901は、シミュレーションを再開する。ステップS616において、CPU901は、シミュレーションが終了したか否かを判断する。CPU901は、ステップS616において肯定的な判断がなされた場合(YESの場合)、一連の処理を終了する。CPU901は、ステップS616において否定的な判断がなされた場合(NOの場合)、処理をステップS604に進める。
 (d3.スナップショットのシーケンス)
 図7は、PC6がスナップショットを実行するときのシーケンスチャートを示した図である。図7を参照して、シーケンスSQ702において、ユーザインターフェイス部802は、スナップショットを実行する指示をシミュレーション部806の通信処理部861に送る。
 通信処理部861は、シーケンスSQ704において、変数情報を読み出す指示(readMem())を、シミュレーション実行部863に送る。シーケンスSQ706において、シミュレーション実行部863は、変数情報を通信処理部861に通知する。
 シーケンスSQ708において、通信処理部861は、取得した変数情報を指定されたファイル名でファイルに保存する。シーケンスSQ710において、通信処理部861は、変数情報を保存したことを示す通知をユーザインターフェイス部802に通知する。ユーザインターフェイス部802は、当該通知を受け取ると、変数情報を保存したことを表す内容をモニタ907に表示させる。
 (d4.リストアのシーケンス)
 図8は、PC6がリストアを実行するときのシーケンスチャートを示した図である。図8を参照して、シーケンスSQ802において、ユーザインターフェイス部802は、リストアを実行する指示をシミュレーション部806の通信処理部861に送る。シーケンスSQ804において、通信処理部861は、ファイルを読み出す。つまり、通信処理部861は、メモリにファイルとして保存された変数情報を読み出す。
 通信処理部861は、シーケンスSQ806において、変数情報を書き込む指示(WriteMem())を、シミュレーション実行部863に送る。シーケンスSQ808において、シミュレーション実行部863は、通信処理部861に対して、書き込みが実行されたこと、あるいは書き込む変数が存在しなかったこと(エラー)を通知する。
 シーケンスSQ810において、通信処理部861は、通知された内容をユーザインターフェイス部802に通知する。ユーザインターフェイス部802は、当該通知を受け取ると、リストアが終了したこと、リストアに失敗したこと等をモニタ907に表示させる。
 <E.データ構造>
 図9は、スナップショットにより得られた変数情報を表した図である。具体的には図9は、ファイル201(またはファイル202)の中身(変数情報)を表した図である。
 図9を参照して、ファイル201には、共通情報と、変数情報とが含まれている。共通情報は、「[Common]」の欄に示された情報を指す。変数情報としては、グローバス変数([global])と、プログラム変数([program()])とが含まれている。
 この場合、ユーザは、グローバル変数および/またはプログラム変数の一部(場合によっては全部)を用いて、リストアに使用するファイル201AをPC6で生成することになる。なお、図9に示した例では、入力変数と出力変数とは区別された状態では示されていない。
 <F.ユーザインターフェイス>
 図10は、リストアに用いるデータを生成するために用いられるユーザインターフェイスの一例を表した図である。つまり、図10は、たとえばファイル201A,202A等のデータを表した図である。
 図10を参照して、ユーザインターフェイス部802は、スナップショットにより取得された複数の変数情報(変数名、変数の型、および変数の値)をモニタ907に一覧表示させる。より詳しくは、ユーザインターフェイス部802は、スナップショットにより取得された複数の変数情報の中から1つ以上の変数情報をユーザが選択可能とするためのユーザインターフェイス9071をモニタ907に表示させる。
 ユーザがチェックボックスを利用して一覧表示された複数の変数情報の中から1つ以上の変数情報を指定すると、CPU901は、当該指定を受け付ける。CPU901は、複数の変数情報が記憶されたファイルから、指定された変数情報を抽出する。
 CPU901(シミュレーション実行部863)は、ユーザから、変更された制御プログラムを用いた再度のシミュレーションの指示を受け付けた場合には、抽出された変数情報を用いて当該制御プログラムをシミュレーションする。
 したがって、ユーザは、ユーザインターフェイス9071を用いることにより、ユーザは、再度のシミュレーションに用いる入力変数をさらに容易に設定することができる。
 今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 制御システム、2 サーバ、4 ネットワーク、8 コントローラサポートプログラム、10,15 制御プログラム、12 CD-ROM、14 コントローラ、16 制御対象装置、17 モータドライバ、18 モータ、201,201A,202,202A ファイル、802 ユーザインターフェイス部、804 表示データ作成部、806 シミュレーション部、808 制御プログラム記憶部、810 制御プログラム編集部、812 コントローラインタフェース部、861 通信処理部、863 シミュレーション実行部、902 ROM、903 RAM、907 モニタ、9071 ユーザインターフェイス、909 通信IF。

Claims (7)

  1.  機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置であって、
     前記制御プログラムを記憶する記憶部と、
     前記記憶部に記憶された制御プログラムをシミュレーションするシミュレーション実行部と、
     前記シミュレーションの結果を表示装置に表示させる表示制御部と、
     前記シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得する取得部と、
     前記記憶部に記憶された制御プログラムを変更する変更部とを備え、
     前記シミュレーションを実行部は、前記取得された識別情報によって特定される変数の値を前記取得された変数の値として、前記変更された制御プログラムをシミュレーションし、
     前記表示制御部は、前記変更された制御プログラムのシミュレーションの結果を前記表示装置に表示させる、情報処理装置。
  2.  前記取得部は、前記任意のタイミングにおける複数の変数の値と、各前記変数を識別するための複数の識別情報とを対応付けて取得し、
     前記シミュレーションを実行部は、前記複数の変数の中から少なくとも1つの変数が指定されたことに基づき、当該指定された変数の値を当該変数の識別情報に対応付けられた前記取得された変数の値として、前記変更された制御プログラムをシミュレーションする、請求項1に記載の情報処理装置。
  3.  前記複数の変数は、前記シミュレーションの入力に用いられる変更可能な変数と、前記シミュレーションの実行により出力される変更不可能な変数とを含み、
     前記シミュレーションを実行部は、前記変更可能な変数および前記変更不可能な変数のうちの当該変更可能な変数のみを用いて、前記変更された制御プログラムをシミュレーションする、請求項2に記載の情報処理装置。
  4.  前記任意のタイミングは、前記制御プログラムのシミュレーションの開始時、あるいは開始直後である、請求項1から3のいずれか1項に記載の情報処理装置。
  5.  前記変数の識別情報は、前記変数の名称であり、
     前記表示制御部は、前記取得された変数の名称を前記表示装置に一覧表示させ、
     前記情報処理装置は、
      前記一覧表示された複数の変数の中から1つ以上の変数の指定を受け付ける受付部と、
      前記複数の変数の値から前記指定された変数毎に当該変数の値を抽出する抽出部とをさらに備え、
     前記シミュレーションを実行部は、前記抽出された変数の値を用いて前記変更された制御プログラムをシミュレーションする、請求項2または3に記載の情報処理装置。
  6.  機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置におけるシミュレーション方法であって、
     前記制御プログラムをシミュレーションするステップと、
     前記シミュレーションの結果を表示するステップと、
     前記シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得するステップと、
     前記制御プログラムを変更するステップと、
     前記取得された識別情報によって特定される変数の値を前記取得された変数の値として、前記変更された制御プログラムをシミュレーションするステップと、
     前記変更された制御プログラムのシミュレーションの結果を表示するステップとを備える、シミュレーション方法。
  7.  機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置を制御するためのプログラムであって、
     前記制御プログラムをシミュレーションするステップと、
     前記シミュレーションの結果を表示するステップと、
     前記シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得するステップと、
     前記制御プログラムを変更するステップと、
     前記取得された識別情報によって特定される変数の値を前記取得された変数の値として、前記変更された制御プログラムをシミュレーションするステップと、
     前記変更された制御プログラムのシミュレーションの結果を表示するステップとを、前記情報処理装置のプロセッサに実行させる、プログラム。
PCT/JP2013/053961 2012-03-15 2013-02-19 情報処理装置、シミュレーション方法、およびプログラム WO2013136918A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201380013393.3A CN104204976B (zh) 2012-03-15 2013-02-19 信息处理装置、模拟方法及程序
EP13761416.0A EP2816426A4 (en) 2012-03-15 2013-02-19 Information processing apparatus, simulation method, and program
US14/384,406 US10635464B2 (en) 2012-03-15 2013-02-19 Information processing device, simulation method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-058276 2012-03-15
JP2012058276A JP6051546B2 (ja) 2012-03-15 2012-03-15 情報処理装置、シミュレーション方法、およびプログラム

Publications (2)

Publication Number Publication Date
WO2013136918A1 true WO2013136918A1 (ja) 2013-09-19
WO2013136918A9 WO2013136918A9 (ja) 2014-01-03

Family

ID=49160837

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/053961 WO2013136918A1 (ja) 2012-03-15 2013-02-19 情報処理装置、シミュレーション方法、およびプログラム

Country Status (5)

Country Link
US (1) US10635464B2 (ja)
EP (1) EP2816426A4 (ja)
JP (1) JP6051546B2 (ja)
CN (1) CN104204976B (ja)
WO (1) WO2013136918A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2961061A1 (en) * 2014-06-27 2015-12-30 Omron Corporation Information processing apparatus, information processing method, and program

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437226B2 (en) * 2015-04-23 2019-10-08 Mitsubishi Electric Corporation Positioning control apparatus
JP2018055654A (ja) * 2016-09-30 2018-04-05 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
JP7052250B2 (ja) * 2017-08-10 2022-04-12 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP6972873B2 (ja) * 2017-10-04 2021-11-24 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
AU2017438670B2 (en) * 2017-11-10 2020-07-23 Mitsubishi Electric Corporation Simulation device, simulation method, and simulation program
JP7147807B2 (ja) * 2020-06-26 2022-10-05 株式会社安川電機 エンジニアリング装置、上位制御装置、エンジニアリング方法、処理実行方法、及びプログラム
CN112182891A (zh) * 2020-09-30 2021-01-05 深圳市智物联网络有限公司 一种工业对象模拟方法、装置及设备
JP2023006299A (ja) * 2021-06-30 2023-01-18 オムロン株式会社 シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム
JP7413616B1 (ja) * 2022-02-25 2024-01-15 株式会社アルバック 表示装置、表示方法、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0854907A (ja) * 1994-08-12 1996-02-27 Yokogawa Electric Corp 検証支援システム
JP2011192016A (ja) 2010-03-15 2011-09-29 Omron Corp コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW421761B (en) 1994-04-12 2001-02-11 Yokogawa Electric Corp Verification support system
JPH10187212A (ja) * 1996-12-27 1998-07-14 Fanuc Ltd プログラマブルコントローラ
JP3803019B2 (ja) * 2000-08-21 2006-08-02 富士通株式会社 制御プログラム開発支援装置
US20020116699A1 (en) * 2000-12-18 2002-08-22 Armin Amrhein Apparatus and method for checking the status of control systems
US7392165B2 (en) * 2002-10-21 2008-06-24 Fisher-Rosemount Systems, Inc. Simulation system for multi-node process control systems
US20050234695A1 (en) * 2004-04-19 2005-10-20 Wang John C Timing control method of hardware-simulating program and application of the same
US8397220B1 (en) * 2007-02-12 2013-03-12 Synopsys, Inc. Simulation control techniques
WO2009103089A1 (en) * 2008-02-15 2009-08-20 Invensys Systems, Inc. System and method for autogenerating simulations for process control system checkout and operator training
JP5500820B2 (ja) * 2008-12-08 2014-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP2011018107A (ja) * 2009-07-07 2011-01-27 Fujitsu Ten Ltd シミュレーションシステム
KR101053104B1 (ko) * 2009-10-28 2011-08-02 엘에스산전 주식회사 전산기기 소프트웨어 테스트 방법 및 시스템
CN101876919B (zh) * 2009-11-13 2012-11-28 吴涛 一种实现数码设备仿真操作的系统和方法
CN101888658B (zh) * 2010-07-16 2012-10-03 北京市万网元通信技术有限公司 Gprs核心网仿真测试系统
CN101944159A (zh) * 2010-08-26 2011-01-12 王钰 一种基于实体的指挥机构仿真方法和模拟器
EP2612206A1 (en) 2010-08-31 2013-07-10 ABB Technology AG Method for debugging of process or manufacturing plant solutions comprising multiple sub-systems
CN101968742B (zh) * 2010-09-21 2013-05-22 清华大学 一种用于仿真系统的内部互锁管理方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0854907A (ja) * 1994-08-12 1996-02-27 Yokogawa Electric Corp 検証支援システム
JP2011192016A (ja) 2010-03-15 2011-09-29 Omron Corp コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体

Non-Patent Citations (1)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2961061A1 (en) * 2014-06-27 2015-12-30 Omron Corporation Information processing apparatus, information processing method, and program
CN105278402A (zh) * 2014-06-27 2016-01-27 欧姆龙株式会社 信息处理装置、信息处理方法以及程序

Also Published As

Publication number Publication date
WO2013136918A9 (ja) 2014-01-03
CN104204976A (zh) 2014-12-10
EP2816426A1 (en) 2014-12-24
EP2816426A4 (en) 2017-01-04
CN104204976B (zh) 2016-11-02
JP6051546B2 (ja) 2016-12-27
JP2013191129A (ja) 2013-09-26
US10635464B2 (en) 2020-04-28
US20150112460A1 (en) 2015-04-23

Similar Documents

Publication Publication Date Title
JP6051546B2 (ja) 情報処理装置、シミュレーション方法、およびプログラム
US10025286B2 (en) Simulation system, programmable controller, simulation device, and engineering tool
US10761513B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
WO2014097371A1 (ja) 数値制御装置
JP2008165399A (ja) シミュレーションデータ作成支援装置
JP5891891B2 (ja) 情報処理装置、情報処理方法、およびプログラム
KR102198204B1 (ko) 시뮬레이션 장치
JP2018502391A (ja) ユーザインタフェースを表示するためのコンピュータ実装方法
JP2005242682A (ja) グラフィカルプログラミング装置及びプログラマブル表示器
JP2008242572A (ja) 制御処理シミュレーション装置
JP2008165324A (ja) プログラム作成支援装置
JP2010033192A (ja) 情報処理装置装置、及びその制御方法、コンピュータプログラム、記憶媒体
JP6483507B2 (ja) 制御プログラム作成装置、及び制御プログラムのデバッグ方法
JP2008033572A (ja) 画面作成装置、画面作成プログラムおよびそれを記録した記録媒体
JP2006163657A (ja) プレイバックシミュレータ装置
JP2009244952A (ja) モーションコントローラ、シミュレーション方法及びシミュレーションプログラム
JP5840550B2 (ja) 操作手順書作成装置、操作手順書作成方法および操作手順書作成プログラム
JP2001209412A (ja) シーケンスプログラムのシミュレーション装置
JP6586841B2 (ja) 画像形成装置及び画像形成プログラム
WO2017212549A1 (ja) シミュレーション装置およびシミュレーションプログラム
JP2013235381A (ja) データ編集装置およびデータ編集方法
JP2020057262A5 (ja)
JP2009080738A (ja) シーケンスプログラムのシミュレーション方法
JP2010191571A (ja) シミュレータ構築装置
JP2011113304A (ja) 表示/制御・シミュレートシステム、そのプログラマブル表示器、シミュレータ装置

Legal Events

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

Ref document number: 13761416

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14384406

Country of ref document: US

Ref document number: 2013761416

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE