WO2018220923A1 - プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム - Google Patents
プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム Download PDFInfo
- Publication number
- WO2018220923A1 WO2018220923A1 PCT/JP2018/007413 JP2018007413W WO2018220923A1 WO 2018220923 A1 WO2018220923 A1 WO 2018220923A1 JP 2018007413 W JP2018007413 W JP 2018007413W WO 2018220923 A1 WO2018220923 A1 WO 2018220923A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- control program
- simulation
- sequence control
- hmi
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23258—GUI graphical user interface, icon, function bloc editor, labview
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23283—Debugging, breakpoint
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23291—Process, graphic programming of a process, text and images
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23456—Model machine for simulation
Definitions
- This invention relates to a program development support technology for supporting the development of a control program for a control device and an HMI (Human Machine Interface) program.
- HMI Human Machine Interface
- a display device having an HMI is connected to such a sequence control device.
- the operator performs setting to the sequence control device by an operation input to the display.
- the sequence control device operates based on the sequence control program, and the display device operates based on the HMI control program.
- Such sequence control program and HMI control program are generally subjected to an operation simulation before being mounted on a control device or a display. And, by this simulation, debugging of each program is executed.
- Patent Document 1 describes a simulation program for debugging a controller control program (sequence control program).
- sequence control program sequence control program
- various simulation programs for the HMI control program have been put into practical use.
- the simulator for the sequence control program and the simulator for the HMI control program may operate in different processes. Some will work.
- the sequence control program and the HMI control program are debugged separately. That is, the sequence control program and the HMI control program cannot be debugged in synchronization. For this reason, for example, when a breakpoint is provided in the simulation of the sequence control program, the simulation of the sequence control program stops, but the simulation of the HMI control program does not stop at the corresponding location.
- an object of the present invention is to provide a program development support technology capable of simulating a sequence control program and an HMI control program in synchronization.
- the program development support apparatus of the present invention includes a sequence control editing unit, an HMI control editing unit, and an integrated simulation management unit.
- the sequence control editing unit edits the sequence control program.
- the HMI control editing unit edits the HMI control program.
- the integrated simulation management unit manages synchronization between the simulation of the sequence control program and the simulation of the HMI control program.
- the integrated simulation management unit includes a variable management unit. The variable management unit delivers a common variable to the sequence control program and the HMI control program when the simulation of the sequence control program and the simulation of the HMI control program are being executed.
- variables set in the sequence control program are delivered to the HMI control program, and variables set in the HMI control program are delivered to the sequence control program.
- the integrated simulation management unit includes a feedback processing unit.
- the feedback processing unit detects the code of the HMI control program in which the variable is set, from the variable when the simulation of the sequence control program stops at the conditional breakpoint.
- the integrated simulation management unit displays call stack information including the variable detected by the feedback processing unit and related information of the variable.
- the stop factor can be seen by the programmer.
- the integrated simulation management unit moves the edit point of the HMI control program to the code of the HMI control program detected by the feedback processing unit.
- This configuration makes it easy to edit stop factors.
- the sequence control program and the HMI control program can be synchronized and simulated.
- FIG. 1 is a schematic configuration diagram of an information processing apparatus and a program development support system including a program development support apparatus according to a first embodiment of the present invention. It is a figure which shows an example of the display screen of information processing apparatus. It is a figure which shows the concept of variable management. It is a flowchart of the simulation which set the break point in the program development assistance method which concerns on embodiment of this invention. It is a schematic block diagram of the information processing apparatus containing the program development assistance apparatus which concerns on the 2nd Embodiment of this invention, and a program development assistance system. It is a figure which shows the concept of a feedback process. It is a figure which shows an example of the display screen containing a call stack. It is a flowchart which shows the feedback process with respect to a conditional breakpoint in the program development assistance method which concerns on embodiment of this invention.
- FIG. 1 is a schematic configuration diagram of an information processing apparatus and a program development support system including a program development support apparatus according to the first embodiment of the present invention.
- the program development support system 1 includes an information processing apparatus 10, a sequence control simulator 30, an HMI control simulator 40, and a network 100.
- the information processing apparatus 10, the sequence control simulator 30, and the HMI control simulator 40 are connected by a network 100.
- the information processing apparatus 10, the sequence control simulator 30, and the HMI control simulator 40 can perform data communication with each other via the network 100.
- the information processing apparatus 10 includes a program development support unit 11, an operation input unit 12, a communication control unit 13, and a display unit 14.
- the information processing apparatus 10 is realized by a personal computer or the like.
- the operation input unit 12 is, for example, a mouse or a keyboard.
- the programmer accepts various operations and inputs for the program development support unit 11 using the operation input unit 12.
- the communication control unit 13 is connected to the network 100.
- the communication control unit 13 controls data communication with the sequence control simulator 30 and the HMI control simulator 40 in the information processing apparatus 10. Further, the communication control unit 13 performs communication control with a sequence control device (not shown).
- the display unit 14 is, for example, a liquid crystal display.
- the display unit 14 displays an image from the program development support unit 11.
- the display unit 14 displays an image as shown in FIG. 2 when editing and simulating the sequence control program and the HMI control program.
- FIG. 2 is a diagram illustrating an example of a display screen of the information processing apparatus.
- the display screen 140 includes a sequence control program editing window 141, an HMI control program editing window 142, a multi-view explorer window 411, a tool box window 412, a simulation operation window 413, and an HMI screen display window 420. Is displayed.
- the simulation operation window 413 and the HMI screen display window 420 are displayed on the display screen 140 when a simulation operation input is performed.
- the positions and sizes of the plurality of windows on the display screen 140 can be changed by the operation input unit 12.
- the program development support unit 11 includes a calculation unit 111 and a storage unit 112.
- the storage unit 112 stores a program development support program 210.
- the program development support program 210 includes a sequence control editing program 211, an HMI control editing program 212, and an integrated simulation management program 220.
- the integrated simulation management program 220 includes a variable management process 221.
- the calculation unit 111 reads the sequence control editing program 211 from the storage unit 112 and executes it. As a result, the “sequence control editing unit” of the present application is realized.
- the sequence control editing program 211 is a program for creating and editing a sequence control program, and the created state and edited state are displayed in the above-described sequence control program editing window 141.
- the calculation unit 111 reads the HMI control editing program 212 from the storage unit 112 and executes it.
- the HMI control editing program 212 is a program for creating and editing an HMI control program, and the created state and edited state are displayed in the above-described HMI control program edit window 142.
- the global variable is set in the sequence control program and the HMI control program.
- the control by the sequence control program and the display and setting by the HMI control program are related by this global variable.
- the sequence control program and the HMI control program can operate in synchronization.
- the calculation unit 111 reads the integrated simulation management program 220 from the storage unit 112 and executes it. Thereby, the “integrated simulation management unit” of the present application is realized. Further, when the calculation unit 111 executes the variable management processing 221 of the integrated simulation management program 220, the “variable management unit” of the present application is realized.
- the integrated simulation management unit executes a simulation of the sequence control program edited by the sequence control editing unit and the HMI control program edited by the HMI control editing unit. Then, the transition of the display of the HMI by this simulation is displayed in the above-mentioned HMI screen display window 420. Further, the integrated simulation management unit manages the execution of the simulation and the like by operation inputs such as an execution button, a pause button, and a step execution button on the simulation operation window 413.
- the integrated simulation management unit manages synchronization between the runtime of the sequence control program by the sequence control simulator 30 and the runtime of the HMI control program by the HMI control simulator 40.
- the management of synchronization is to execute each program while confirming the passing of a common variable between the programs.
- a variable management process 221 is used for this synchronization management.
- FIG. 3 is a diagram showing the concept of variable management.
- FIG. 3 shows a case where variables are set from the runtime of the HMI control (HMI runtime) to the runtime of the sequence control program (sequence control runtime).
- HMI runtime is a program executed by the HMI control simulator 40 by simulation
- sequence control runtime is a program executed by the sequence control simulator 30.
- the integrated simulation management unit When the integrated simulation management unit receives an address request for variable setting from the HMI control simulator 40, the integrated simulation management unit converts the request to the specification of the sequence control simulator 30 and passes the address request to the sequence control simulator 30. As a result, an address request from the HMI runtime to the sequence control runtime is executed.
- the integrated simulation management unit receives the variable setting address transmission from the sequence control simulator 30 and converts it to the specification of the HMI control simulator 40 and passes the address to the HMI control simulator 40. Thereby, address transmission from the sequence control runtime to the HMI runtime is executed.
- variable setting between the HMI control simulator 40 and the sequence control simulator 30 is managed by the integrated simulation management unit, and specification conversion is performed as appropriate.
- a variable request from the HMI runtime to the sequence control runtime, a variable transmission from the sequence control runtime to the HMI runtime, and a variable setting from the HMI runtime to the sequence control runtime are executed in this order. That is, common variables are exchanged between the HMI control program and the sequence control program.
- conditional breakpoint is a point on the runtime (program execution process) that sets a condition and stops when the condition is met, or stops when the condition is not met.
- FIG. 4 is a flowchart of a simulation in which breakpoints are set in the program development support method according to the embodiment of the present invention.
- the program development support unit 11 validates the sequence control editing program (S11) and validates the HMI editing program (S12).
- the validation of the program means that the program is in a state where simulation is possible.
- the program development support unit 11 sets a breakpoint for the runtime of the sequence control editing program or the runtime of the HMI editing program (S13).
- the program development support unit 11 starts a simulation according to an operation input to the simulation operation window 413 (S14).
- the program development support unit 11 executes simulation by synchronizing sequence control and HMI control by passing variables (global variables) described in both programs (S15).
- the program development support unit 11 When the program development support unit 11 detects a breakpoint (S16: YES), the program development support unit 11 temporarily stops the simulation of both programs according to the breakpoint (S17). For example, the program development support unit 11 refers to a variable used for a breakpoint and temporarily stops the simulation of both programs.
- step S18 If the resumption of simulation is selected (S18: YES), the program development support unit 11 returns to step S15 and executes the simulation in synchronization with the sequence control and the HMI control. Note that the program development support unit 11 returns to step S17 and holds the paused state during a period in which simulation resumption is not selected (S18: NO).
- step S16 If no breakpoint is detected (S16: NO), the program development support unit 11 returns to step S15 until the end of the simulation is detected (S19: NO), continues the simulation, and detects the end of the simulation. (S19: YES), the integrated simulation is terminated.
- FIG. 5 is a schematic configuration diagram of an information processing apparatus and a program development support system including a program development support apparatus according to the second embodiment of the present invention.
- the program development support unit 11A according to the second embodiment is different from the program development support unit 11 according to the first embodiment in that a feedback process of a simulation breakpoint is added.
- Other configurations of the program development support unit 11A are the same as those of the program development support unit 11, and the description of the same parts is omitted.
- the integrated simulation management program 220A of the program development support program 210A includes a feedback process 222.
- the calculation unit 111 reads out and executes the feedback processing 222, thereby realizing the “feedback processing unit” of the present application.
- FIG. 6 is a diagram showing the concept of feedback processing.
- STOP stop
- the feedback processing unit detects a variable that causes the stop in the sequence control program corresponding to the sequence control runtime. Further, the feedback processing unit detects the code (so-called source code) of the HMI control program related to the variable of the stop factor and the setting of the variable.
- source code code of the HMI control program related to the variable of the stop factor and the setting of the variable.
- the integrated simulation management unit realized by the integrated simulation management program 220A displays it as one item of the call stack including the detected variable and the related information of the variable.
- variable related information include setting values and data types for variables.
- the call stack is information indicating where to return when returning to the calling side when a plurality of programs are being executed.
- FIG. 7 is a diagram illustrating an example of a display screen including a call stack. As shown in FIG. 7, the call stack is displayed in the call stack display window 143. Each item displayed in the call stack display window 143 can be selected by an operation by the operation input unit 12. When the item displayed in the call stack display window 143 is selected, the integrated simulation management unit moves the edit point to the code of the program associated with the selected item.
- FIG. 8 is a flowchart showing feedback processing for a conditional breakpoint in the program development support method according to the embodiment of the present invention.
- the integrated simulation management unit detects whether a stop condition is satisfied (S102) when a conditional breakpoint is reached (S101). When detecting that the stop condition is satisfied (S102: YES), the integrated simulation management unit stops the simulation, that is, stops the sequence control runtime and the HMI runtime (S103). When the integrated simulation management unit detects that the stop condition is not satisfied (S102: NO), the simulation is continued.
- the integrated simulation management unit detects a code in which a variable serving as a stop factor is set (S104) after stopping the simulation (S103).
- the integrated simulation management unit adds the detected variable and the related information of the variable as one item of the call stack (S105) and displays it.
- the integrated simulation management unit moves the editing point (S107).
- program development support system 10 information processing apparatus 11, 11A: program development support unit 12: operation input unit 13: communication control unit 14: display unit 30: sequence control simulator 40: HMI control simulator 100: network 111: calculation unit 112: Storage unit 140: Display screen 141: Sequence control program edit window 142: HMI control program edit window 143: Call stack display window 210: Program development support program 210A: Program development support program 211: Sequence control edit program 212: HMI control Editing program 220: Integrated simulation management program 220A: Integrated simulation management program 221: Variable management processing 222: Feedback processing 411: Multiview Explorer window 412: tool box window 413: simulation operation window 420: HMI screen display window
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
シーケンス制御プログラムとHMI制御プログラムとを同期させてシミュレーションする。プログラム開発支援部(11)は、演算部(111)および記憶部(112)を備える。記憶部(112)には、シーケンス制御編集部を実現するためのシーケンス制御編集プログラム(211)、HMI制御編集部を実現するためのHMI制御編集プログラム(212)、統合シミュレーション管理部を実現するための統合シミュレーション管理プログラム(220)が記憶されている。統合シミュレーション管理部は、シーケンス制御プログラムのシミュレーションとHMI制御プログラムのシミュレーションとの同期を管理する。統合シミュレーション管理部は、変数管理処理(221)を実行する。変数管理処理(221)では、シーケンス制御プログラムのシミュレーションとHMI制御プログラムのシミュレーションとの実行中に、シーケンス制御プログラムとHMI制御プログラムとに共通の変数の受け渡しを行う。
Description
この発明は、制御機器の制御プログラムおよびHMI(ヒューマン マシン インターフェース)プログラムの開発を支援するプログラム開発支援技術に関する。
シーケンス制御装置が多く実用化されている。このようなシーケンス制御装置には、HMIを備える表示器が接続されている。オペレータは、当該表示器への操作入力によって、シーケンス制御装置への設定を行う。
シーケンス制御装置は、シーケンス制御プログラムに基づいて動作し、表示器は、HMI制御プログラムに基づいて動作する。
このようなシーケンス制御プログラムおよびHMI制御プログラムは、制御機器や表示器への実装前に、一般的には動作シミュレーションが実行される。そして、このシミュレーションによって、各プログラムのデバッグ等が実行される。
例えば、このようなシミュレーションプログラムとして、特許文献1には、コントローラの制御プログラム(シーケンス制御プログラム)のデバッグを行うためのシミュレーションプログラムが記載されている。同様に、HMI制御プログラム用のシミュレーションプログラムも各種実用化されている。
しかしながら、シーケンス制御プログラムとHMI制御プログラムとは、目的とする処理が全く異なるので、シーケンス制御プログラム用シミュレータとHMI制御プログラム用のシミュレータとは、異なるプロセスで動作するものもあり、ひいては、異なるOSで動作するものもある。
このような場合、シーケンス制御プログラムとHMI制御プログラムとは、個別にデバッグされる。すなわち、シーケンス制御プログラムとHMI制御プログラムとを同期させてデバッグすることはできない。このため、例えば、シーケンス制御プログラムのシミュレーションにブレークポイントを設けた場合、シーケンス制御プログラムのシミュレーションはストップするが、HMI制御プログラムのシミュレーションは、対応箇所でストップしない。
このため、シーケンス制御プログラムとHMI制御プログラムとの効率的なデバッグを行うことが難しかった。
したがって、本発明の目的は、シーケンス制御プログラムとHMI制御プログラムとを同期させてシミュレーションすることができるプログラム開発支援技術を提供することにある。
この発明のプログラム開発支援装置は、シーケンス制御編集部、HMI制御編集部、統合シミュレーション管理部を備える。シーケンス制御編集部は、シーケンス制御プログラムの編集を行う。HMI制御編集部は、HMI制御プログラムの編集を行う。統合シミュレーション管理部は、シーケンス制御プログラムのシミュレーションとHMI制御プログラムのシミュレーションとの同期を管理する。統合シミュレーション管理部は、変数管理部を備える。変数管理部は、シーケンス制御プログラムのシミュレーションとHMI制御プログラムのシミュレーションとが実行されているときに、シーケンス制御プログラムとHMI制御プログラムとに共通の変数の受け渡しを行う。
この構成では、シミュレーションの進行にしたがって、シーケンス制御プログラムで設定された変数がHMI制御プログラムに引き渡され、HMI制御プログラムで設定された変数がシーケンス制御プログラムに引き渡される。
また、このプログラム開発支援装置では、統合シミュレーション管理部は、フィードバック処理部を備える。フィードバック処理部は、シーケンス制御プログラムのシミュレーションが条件付きブレークポイントで停止した際の変数から、該変数が設定されたHMI制御プログラムのコードを検出する。
この構成では、シーケンス制御プログラムの停止要因がHMI制御プログラムにあっても、この停止要因となるHMI制御プログラムのコードが検出される。
また、このプログラム開発支援装置では、統合シミュレーション管理部は、フィードバック処理部において検出された変数と該変数の関連情報とを含むコールスタック情報を表示する。
この構成では、停止要因をプログラマに視認させられる。
また、このプログラム開発支援装置では、統合シミュレーション管理部は、フィードバック処理部で検出したHMI制御プログラムのコードに、HMI制御プログラムの編集点を移動させる。
この構成では、停止要因に対する編集が容易になる。
この発明によれば、シーケンス制御プログラムとHMI制御プログラムとを同期させてシミュレーションできる。
本発明の第1の実施形態に係るプログラム開発支援技術について、図を参照して説明する。図1は、本発明の第1の実施形態に係るプログラム開発支援装置を含む情報処理装置およびプログラム開発支援システムの概略構成図である。
図1に示すように、プログラム開発支援システム1は、情報処理装置10、シーケンス制御シミュレータ30、HMI制御シミュレータ40、および、ネットワーク100を備える。情報処理装置10、シーケンス制御シミュレータ30、および、HMI制御シミュレータ40は、ネットワーク100によって接続されている。情報処理装置10、シーケンス制御シミュレータ30、および、HMI制御シミュレータ40は、このネットワーク100を介して、相互にデータ通信できる。
情報処理装置10は、プログラム開発支援部11、操作入力部12、通信制御部13、および、表示部14を備える。情報処理装置10は、パーソナルコンピュータ等によって実現される。
操作入力部12は、例えば、マウスやキーボードである。プログラマは、操作入力部12を用いて、プログラム開発支援部11に対する各種の操作、入力を受け付ける。
通信制御部13は、ネットワーク100に接続されている。通信制御部13は、情報処理装置10における、シーケンス制御シミュレータ30およびHMI制御シミュレータ40に対するデータ通信を制御する。また、通信制御部13は、シーケンス制御装置(図示を省略している。)との通信制御を行う。
表示部14は、例えば、液晶ディスプレイ等である。表示部14は、プログラム開発支援部11からの画像を表示する。例えば、表示部14には、シーケンス制御プログラムおよびHMI制御プログラムの編集およびシミュレーション時に、図2に示すような画像が表示される。図2は、情報処理装置の表示画面の一例を示す図である。図2に示すように、表示画面140には、シーケンス制御プログラム編集ウィンドウ141、HMI制御プログラム編集ウィンドウ142、マルチビューエクスプローラーウィンドウ411、ツールボックスウィンドウ412、シミュレーション操作ウィンドウ413、および、HMI画面表示ウィンドウ420が表示される。なお、シミュレーション操作ウィンドウ413、および、HMI画面表示ウィンドウ420は、シミュレーションの操作入力が行われた場合に、表示画面140に表示される。なお、これらの複数のウィンドウの表示画面140における位置および大きさは、操作入力部12によって変更可能である。
プログラム開発支援部11は、演算部111、記憶部112を備える。記憶部112には、プログラム開発支援プログラム210が記憶されている。プログラム開発支援プログラム210は、シーケンス制御編集プログラム211、HMI制御編集プログラム212、および、統合シミュレーション管理プログラム220を有する。統合シミュレーション管理プログラム220には、変数管理処理221が含まれている。
演算部111は、シーケンス制御編集プログラム211を記憶部112から読み出して実行する。これによって、本願の「シーケンス制御編集部」が実現される。このシーケンス制御編集プログラム211は、シーケンス制御プログラムの作成、編集を行うプログラムであり、この作成状態、編集状態が上述のシーケンス制御プログラム編集ウィンドウ141に表示される。
演算部111は、HMI制御編集プログラム212を記憶部112から読み出して実行する。これによって、本願の「HMI制御編集部」が実現される。このHMI制御編集プログラム212は、HMI制御プログラムの作成、編集を行うプログラムであり、この作成状態、編集状態が上述のHMI制御プログラム編集ウィンドウ142に表示される。
シーケンス制御プログラムとHMI制御プログラムには、グローバル変数が設定されている。シーケンス制御プログラムによる制御とHMI制御プログラムによる表示、設定とは、このグローバル変数によって関連付けられている。そして、このグローバル変数を用いることによって、シーケンス制御プログラムとHMI制御プログラムとは、同期した動作が可能になる。
演算部111は、統合シミュレーション管理プログラム220を記憶部112から読み出して実行する。これによって、本願の「統合シミュレーション管理部」が実現される。また、演算部111が統合シミュレーション管理プログラム220の変数管理処理221を実行することによって、本願の「変数管理部」が実現される。
統合シミュレーション管理部は、シーケンス制御編集部で編集されたシーケンス制御プログラムと、HMI制御編集部で編集されたHMI制御プログラムとのシミュレーションを実行する。そして、このシミュレーションによるHMIの表示の遷移が上述のHMI画面表示ウィンドウ420に表示される。また、シミュレーション操作ウィンドウ413の実行ボタン、一時停止ボタン、ステップ実行ボタン等の操作入力によって、統合シミュレーション管理部は、シミュレーションの実行等を管理する。
この際、統合シミュレーション管理部は、シーケンス制御シミュレータ30によるシーケンス制御プログラムのランタイムと、HMI制御シミュレータ40によるHMI制御プログラムのランタイムとの同期を管理する。ここでの同期の管理とは、お互いのプログラムで共通の変数の受け渡しを確認しながら、それぞれのプログラムを実行することである。この同期の管理に、変数管理処理221が用いられる。
図3は、変数管理の概念を示す図である。図3は、HMI制御のランタイム(HMIランタイム)からシーケンス制御プログラムのランタイム(シーケンス制御ランタイム)へ変数の設定を行う場合を示す。HMIランタイムは、HMI制御シミュレータ40でHMI制御プログラムをシミュレーションで実行したものであり、シーケンス制御ランタイムは、シーケンス制御シミュレータ30でシーケンス制御プログラムを実行したものである。
統合シミュレーション管理部は、HMI制御シミュレータ40から変数設定用のアドレス要求を受け付けると、シーケンス制御シミュレータ30の仕様に変換して、シーケンス制御シミュレータ30に、アドレス要求を渡す。これにより、HMIランタイムからシーケンス制御ランタイムへのアドレス要求が実行される。
統合シミュレーション管理部は、シーケンス制御シミュレータ30から変数設定用のアドレス送信を受け付けると、HMI制御シミュレータ40の仕様に変換して、HMI制御シミュレータ40に、アドレスを渡す。これにより、シーケンス制御ランタイムからHMIランタイムへのアドレス送信が実行される。
以下、HMI制御シミュレータ40とシーケンス制御シミュレータ30との間の変数設定に関する通信は、統合シミュレーション管理部によって管理され、適宜仕様変換が行われる。これにより、HMIランタイムからシーケンス制御ランタイムへの変数要求、シーケンス制御ランタイムからHMIランタイムへの変数送信、および、HMIランタイムからシーケンス制御ランタイムへの変数設定が、この順で実行される。すなわち、HMI制御プログラムとシーケンス制御プログラムとによる共通の変数の受け渡しが行われる。
このような構成および処理を用いることによって、シーケンス制御シミュレータ30とHMI制御シミュレータ40とが異なるプロセス、ひいては異なるOSで実行されるものであっても、シーケンス制御ランタイムとHMIランタイムとの同期が可能になる。すなわち、シーケンス制御プログラムのシミュレーションとHMI制御プログラムのシミュレーションとを、同期して行うことができる。
また、このような同期が可能になることで、一方のプログラムにブレークポイント(本発明の条件付きブレークポイント)を設定した場合に、当該ブレークポイントに対応して両方のプログラムを一時停止させることができる。条件付きブレークポイントとは、条件を設定し、条件を満たした場合に停止する、または、条件を満たさない場合に停止する、ランタイム(プログラムの実行処理)上のポイントである。
図4は、本発明の実施形態に係るプログラム開発支援方法におけるブレークポイントを設定したシミュレーションのフローチャートである。
プログラム開発支援部11は、シーケンス制御編集プログラムを有効化し(S11)、HMI編集プログラムを有効化する(S12)。ここで、プログラムの有効化とは、当該プログラムをシミュレーション可能な状態にすることである。
プログラム開発支援部11は、シーケンス制御編集プログラムのランタイムまたはHMI編集プログラムのランタイムに対して、ブレークポイントを設定する(S13)。
プログラム開発支援部11は、シミュレーション操作ウィンドウ413への操作入力にしたがって、シミュレーションを開始する(S14)。プログラム開発支援部11は、両方のプログラムに記載された変数(グローバル変数)の引き渡しによって、シーケンス制御とHMI制御とを同期してシミュレーションを実行する(S15)。
プログラム開発支援部11は、ブレークポイントを検出すると(S16:YES)、このブレークポイントに応じて、両方のプログラムのシミュレーションを一時停止する(S17)。例えば、プログラム開発支援部11は、ブレークポイントに用いられる変数を参照して、両方のプログラムのシミュレーションを一時停止する。
プログラム開発支援部11は、シミュレーションの再開が選択されれば(S18:YES)、ステップS15に戻り、シーケンス制御とHMI制御とを同期してシミュレーションを実行する。なお、プログラム開発支援部11は、シミュレーションの再開が選択されない期間は(S18:NO)、ステップS17に戻り、一時停止状態を保持する。
プログラム開発支援部11は、ブレークポイントを検出しなければ(S16:NO)、シミュレーションの終了を検知するまで(S19:NO)、ステップS15に戻り、シミュレーションを継続し、シミュレーションの終了を検知することで(S19:YES)、統合シミュレーションを終了する。
このような処理を用いることによって、ブレークポイントを一方のプログラムに設定していても、このブレークポイントにしたがって両方のプログラムのシミュレーションが一時停止する。言い換えれば、ブレークポイントが設定されたプログラムのシミュレーションだけが一時停止し、ブレークポイントが設定されていないプログラムのシミュレーションが停止せずに実行し続けることを防止できる。
これにより、シーケンス制御プログラムとHMI制御プログラムとの統合的なデバッグが容易になり、プログラム開発速度の向上に繋げることができる。
次に、本発明の第2の実施形態に係るプログラム開発支援技術について、図を参照して説明する。図5は、本発明の第2の実施形態に係るプログラム開発支援装置を含む情報処理装置およびプログラム開発支援システムの概略構成図である。
第2の実施形態に係るプログラム開発支援部11Aは、第1の実施形態に係るプログラム開発支援部11に対して、シミュレーションのブレークポイントのフィードバック処理を追加した点で異なる。プログラム開発支援部11Aの他の構成は、プログラム開発支援部11と同様であり、同様の箇所の説明は省略する。
より具体的には、プログラム開発支援プログラム210Aの統合シミュレーション管理プログラム220Aには、フィードバック処理222が含まれている。演算部111がこのフィードバック処理222を読み出して実行することによって、本願の「フィードバック処理部」が実現される。
図6は、フィードバック処理の概念を示す図である。図6に示すように、フィードバック処理部は、シーケンス制御ランタイムの条件付きブレークポイントで停止(STOP)が発生すると、シーケンス制御ランタイムに対応するシーケンス制御プログラムにおけるこの停止要因となる変数を検出する。さらに、フィードバック処理部は、この停止要因の変数に関連するHMI制御プログラムのコード(所謂、ソースコード)と変数の設定とを検出する。これにより、プログラマは、条件付きブレークポイントでの停止要因を容易に把握でき、シーケンス制御プログラムのデバッグを容易に行うことができる。
統合シミュレーション管理プログラム220Aによって実現される統合シミュレーション管理部は、検出された変数と該変数の関連情報とを含むコールスタックの1項目として表示する。変数の関連情報としては、例えば変数に対する設定値、データ型等がある。コールスタックとは、複数のプログラムが実行されている時であって、呼び出し側に戻る時に、どこに戻ればいいかを示す情報である。図7は、コールスタックを含む表示画面の一例を示す図である。図7に示すように、コールスタックは、コールスタック表示ウィンドウ143に表示される。このコールスタック表示ウィンドウ143に表示された各項目は、操作入力部12による操作によって選択可能である。統合シミュレーション管理部は、コールスタック表示ウィンドウ143に表示された項目が選択されると、選択された項目に関連付けられたプログラムのコードに編集点を移動させる。
これにより、プログラマは、シーケンス制御プログラムのデバッグをさらに容易に行うことができる。
全体の処理フローとしては、図8の通りである。図8は、本発明の実施形態に係るプログラム開発支援方法における条件付きブレークポイントに対するフィードバック処理を示すフローチャートである。
統合シミュレーション管理部は、条件付きブレークポイントに到達すると(S101)、停止条件を満たすか否かを検出する(S102)。統合シミュレーション管理部は、停止条件を満たすことを検出すると(S102:YES)、シミュレーションの停止、すなわち、シーケンス制御ランタイムおよびHMIランタイムを停止する(S103)。なお、統合シミュレーション管理部は、停止条件を満たしていないことを検出すると(S102:NO)、シミュレーションを継続する。
統合シミュレーション管理部は、シミュレーションの停止(S103)の後、停止要因となる変数を設定したコードを検出する(S104)。統合シミュレーション管理部は、検出した変数と該変数の関連情報とを、コールスタックの1項目として追加し(S105)、表示する。
統合シミュレーション管理部は、コールスタックの項目が選択されると(S106)、編集点を移動する(S107)。
1:プログラム開発支援システム
10:情報処理装置
11、11A:プログラム開発支援部
12:操作入力部
13:通信制御部
14:表示部
30:シーケンス制御シミュレータ
40:HMI制御シミュレータ
100:ネットワーク
111:演算部
112:記憶部
140:表示画面
141:シーケンス制御プログラム編集ウィンドウ
142:HMI制御プログラム編集ウィンドウ
143:コールスタック表示ウィンドウ
210:プログラム開発支援プログラム
210A:プログラム開発支援プログラム
211:シーケンス制御編集プログラム
212:HMI制御編集プログラム
220:統合シミュレーション管理プログラム
220A:統合シミュレーション管理プログラム
221:変数管理処理
222:フィードバック処理
411:マルチビューエクスプローラーウィンドウ
412:ツールボックスウィンドウ
413:シミュレーション操作ウィンドウ
420:HMI画面表示ウィンドウ
10:情報処理装置
11、11A:プログラム開発支援部
12:操作入力部
13:通信制御部
14:表示部
30:シーケンス制御シミュレータ
40:HMI制御シミュレータ
100:ネットワーク
111:演算部
112:記憶部
140:表示画面
141:シーケンス制御プログラム編集ウィンドウ
142:HMI制御プログラム編集ウィンドウ
143:コールスタック表示ウィンドウ
210:プログラム開発支援プログラム
210A:プログラム開発支援プログラム
211:シーケンス制御編集プログラム
212:HMI制御編集プログラム
220:統合シミュレーション管理プログラム
220A:統合シミュレーション管理プログラム
221:変数管理処理
222:フィードバック処理
411:マルチビューエクスプローラーウィンドウ
412:ツールボックスウィンドウ
413:シミュレーション操作ウィンドウ
420:HMI画面表示ウィンドウ
Claims (7)
- シーケンス制御プログラムの編集を行うシーケンス制御編集部と、
HMI制御プログラムの編集を行うHMI制御編集部と、
前記シーケンス制御プログラムのシミュレーションと前記HMI制御プログラムのシミュレーションとの同期を管理する統合シミュレーション管理部と、
を備え、
前記統合シミュレーション管理部は、
前記シーケンス制御プログラムのシミュレーションと前記HMI制御プログラムのシミュレーションとが実行されているときに、前記シーケンス制御プログラムと前記HMI制御プログラムとに共通の変数の受け渡しを行う変数管理部、を備える、
プログラム開発支援装置。 - 前記統合シミュレーション管理部は、
前記シーケンス制御プログラムのシミュレーションが条件付きブレークポイントで停止した際の変数から、該変数が設定された前記HMI制御プログラムのコードを検出するフィードバック処理部、を備える、
請求項1に記載のプログラム開発支援装置。 - 前記統合シミュレーション管理部は、
前記フィードバック処理部において検出された変数と該変数の関連情報とを含むコールスタック情報を表示する、
請求項2に記載のプログラム開発支援装置。 - 前記統合シミュレーション管理部は、
前記フィードバック処理部で検出した前記HMI制御プログラムの前記コードに、前記HMI制御プログラムの編集点を移動させる、
請求項3に記載のプログラム開発支援装置。 - 請求項1乃至請求項4のいずれかに記載のプログラム開発支援装置と、
前記シーケンス制御プログラムのシミュレーションを実行するシーケンス制御シミュレータと、
前記HMI制御プログラムのシミュレーションを実行するHMI制御シミュレータと、
前記プログラム開発支援装置、前記シーケンス制御シミュレータ、および、前記HMI制御シミュレータが接続される通信ネットワークと、
を備える、プログラム開発支援システム。 - シーケンス制御プログラムの編集を行うシーケンス制御編集工程と、
HMI制御プログラムの編集を行うHMI制御編集工程と、
前記シーケンス制御プログラムのシミュレーションと前記HMI制御プログラムのシミュレーションとの同期を管理する統合シミュレーション管理工程と、
を有し、
前記統合シミュレーション管理工程では、
前記シーケンス制御プログラムのシミュレーションと前記HMI制御プログラムのシミュレーションとの実行中に、前記シーケンス制御プログラムと前記HMI制御プログラムとに共通の変数の受け渡しを行う、
プログラム開発支援方法。 - シーケンス制御プログラムの編集を行うシーケンス制御編集処理と、
HMI制御プログラムの編集を行うHMI制御編集処理と、
前記シーケンス制御プログラムのシミュレーションと前記HMI制御プログラムのシミュレーションとの同期を管理する統合シミュレーション管理処理と、
前記シーケンス制御プログラムのシミュレーションと前記HMI制御プログラムのシミュレーションとの実行中に、前記シーケンス制御プログラムと前記HMI制御プログラムとに共通の変数の受け渡しを行う変数受け渡し処理と、
を情報処理装置に実行させる、
プログラム開発支援プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201880024685.XA CN110506242B (zh) | 2017-05-30 | 2018-02-28 | 程序开发支持装置、系统、方法以及记录媒体 |
US16/603,588 US11287789B2 (en) | 2017-05-30 | 2018-02-28 | Program development support device, program development support system, program development support method, and non-transitory computer-readable recording medium |
EP18809072.4A EP3633471B1 (en) | 2017-05-30 | 2018-02-28 | Program development support device, program development support system, program development support method, and program development support program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-106948 | 2017-05-30 | ||
JP2017106948A JP6919338B2 (ja) | 2017-05-30 | 2017-05-30 | プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018220923A1 true WO2018220923A1 (ja) | 2018-12-06 |
Family
ID=64456184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/007413 WO2018220923A1 (ja) | 2017-05-30 | 2018-02-28 | プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11287789B2 (ja) |
EP (1) | EP3633471B1 (ja) |
JP (1) | JP6919338B2 (ja) |
CN (1) | CN110506242B (ja) |
WO (1) | WO2018220923A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000010769A (ja) * | 1998-06-17 | 2000-01-14 | Toshiba Corp | ユーザインタフェース設計装置及び方法 |
JP2008191963A (ja) * | 2007-02-06 | 2008-08-21 | Nec Corp | ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム |
JP2012194632A (ja) | 2011-03-15 | 2012-10-11 | Omron Corp | デバッグ装置 |
JP2014530392A (ja) * | 2011-09-12 | 2014-11-17 | マイクロソフト コーポレーション | トリアージダンプの生成方法及びコンピューティングデバイス |
JP2016224558A (ja) * | 2015-05-27 | 2016-12-28 | 株式会社キーエンス | プログラム作成支援装置、制御方法およびプログラム |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3897948B2 (ja) * | 2000-02-14 | 2007-03-28 | 富士通株式会社 | 支援システムおよび支援プログラムを記録したコンピュータ読み取り可能な記録媒体 |
WO2001095161A2 (en) * | 2000-06-02 | 2001-12-13 | Virtio Corporation | Method and system for virtual prototyping |
US7849416B2 (en) | 2000-06-13 | 2010-12-07 | National Instruments Corporation | System and method for graphically creating a sequence of motion control, machine vision, and data acquisition (DAQ) operations |
US20020199173A1 (en) * | 2001-01-29 | 2002-12-26 | Matt Bowen | System, method and article of manufacture for a debugger capable of operating across multiple threads and lock domains |
US6691301B2 (en) * | 2001-01-29 | 2004-02-10 | Celoxica Ltd. | System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures |
US20030028864A1 (en) * | 2001-01-29 | 2003-02-06 | Matt Bowen | System, method and article of manufacture for successive compilations using incomplete parameters |
JP2003044277A (ja) * | 2001-07-31 | 2003-02-14 | Digital Electronics Corp | プログラム開発支援装置、プログラム開発支援プログラムおよびそれを記録した記録媒体 |
US7080360B2 (en) * | 2001-12-14 | 2006-07-18 | International Business Machines Corporation | Breakpoint safety net |
US6981248B2 (en) | 2002-05-02 | 2005-12-27 | International Business Machines Corporation | Conditional breakpoint encountered indication |
US7178135B2 (en) * | 2002-05-16 | 2007-02-13 | International Business Machines Corporation | Scope-based breakpoint selection and operation |
JP4403794B2 (ja) | 2003-02-28 | 2010-01-27 | 株式会社デンソー | 制御プログラムの検査方法及び検査装置及び検査プログラム |
US7814463B2 (en) | 2003-05-16 | 2010-10-12 | Oracle International Corporation | User interface debugger for software applications |
US20050289396A1 (en) * | 2004-06-25 | 2005-12-29 | Hooper Donald F | Conditional breakpoint using breakpoint function and breakpoint command |
US20060288332A1 (en) * | 2005-06-21 | 2006-12-21 | Microsoft Corporation | Workflow debugger |
CN101071395A (zh) * | 2006-05-10 | 2007-11-14 | 应广科技股份有限公司 | 多重微控器的模拟系统及其方法和所用的集成式开发环境 |
CN101216802B (zh) * | 2008-01-16 | 2010-12-01 | 中兴通讯股份有限公司 | 一种交叉调试器中条件断点实现方法 |
JP4941674B2 (ja) * | 2008-03-14 | 2012-05-30 | オムロン株式会社 | シミュレーション・システム |
US8806447B2 (en) * | 2010-10-29 | 2014-08-12 | International Business Machines Corporation | Step-type operation processing during debugging by machine instruction stepping concurrent with setting breakpoints |
US8843899B2 (en) * | 2010-10-29 | 2014-09-23 | International Business Machines Corporation | Implementing a step-type operation during debugging of code using internal breakpoints |
CN102968372B (zh) * | 2012-11-29 | 2016-05-11 | 中国矿业大学 | 具有程序分析功能的程序调试系统 |
US9262299B1 (en) * | 2013-05-31 | 2016-02-16 | Cadence Design Systems, Inc. | Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system |
US9588870B2 (en) * | 2015-04-06 | 2017-03-07 | Microsoft Technology Licensing, Llc | Time travel debugging for browser components |
US9940220B2 (en) * | 2015-05-01 | 2018-04-10 | Teledyne Lecroy, Inc. | Integrating a protocol analysis device with features of a software development program |
US11150798B2 (en) * | 2016-03-28 | 2021-10-19 | Apple Inc. | Multifunction device control of another electronic device |
US9898385B1 (en) * | 2016-10-11 | 2018-02-20 | Green Hills Software, Inc. | Systems, methods, and devices for vertically integrated instrumentation and trace reconstruction |
-
2017
- 2017-05-30 JP JP2017106948A patent/JP6919338B2/ja active Active
-
2018
- 2018-02-28 EP EP18809072.4A patent/EP3633471B1/en active Active
- 2018-02-28 WO PCT/JP2018/007413 patent/WO2018220923A1/ja active Application Filing
- 2018-02-28 US US16/603,588 patent/US11287789B2/en active Active
- 2018-02-28 CN CN201880024685.XA patent/CN110506242B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000010769A (ja) * | 1998-06-17 | 2000-01-14 | Toshiba Corp | ユーザインタフェース設計装置及び方法 |
JP2008191963A (ja) * | 2007-02-06 | 2008-08-21 | Nec Corp | ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム |
JP2012194632A (ja) | 2011-03-15 | 2012-10-11 | Omron Corp | デバッグ装置 |
JP2014530392A (ja) * | 2011-09-12 | 2014-11-17 | マイクロソフト コーポレーション | トリアージダンプの生成方法及びコンピューティングデバイス |
JP2016224558A (ja) * | 2015-05-27 | 2016-12-28 | 株式会社キーエンス | プログラム作成支援装置、制御方法およびプログラム |
Non-Patent Citations (1)
Title |
---|
See also references of EP3633471A4 |
Also Published As
Publication number | Publication date |
---|---|
EP3633471A4 (en) | 2021-02-24 |
EP3633471A1 (en) | 2020-04-08 |
JP6919338B2 (ja) | 2021-08-18 |
JP2018205826A (ja) | 2018-12-27 |
CN110506242B (zh) | 2022-07-08 |
US20210088995A1 (en) | 2021-03-25 |
EP3633471B1 (en) | 2023-08-02 |
CN110506242A (zh) | 2019-11-26 |
US11287789B2 (en) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10025286B2 (en) | Simulation system, programmable controller, simulation device, and engineering tool | |
JP5951200B2 (ja) | 加工関連データ処理システム | |
JP6051546B2 (ja) | 情報処理装置、シミュレーション方法、およびプログラム | |
CN111993419B (zh) | 基于pdps的机器人离线制作方法及其装置、计算机终端设备 | |
KR20190046984A (ko) | 시뮬레이션 장치 | |
WO2018220923A1 (ja) | プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム | |
JP5602076B2 (ja) | ロボットプログラミング装置および方法 | |
JP5212508B2 (ja) | デバッグ装置 | |
JP2019174967A (ja) | 操作性を向上した統合シミュレーションシステム | |
JP2008165324A (ja) | プログラム作成支援装置 | |
KR101653925B1 (ko) | 엔지니어링 장치, 엔지니어링 시스템 및 다운로드 처리 방법 | |
CN109656556B (zh) | 一种自适应页面的生成方法及装置 | |
JP4301976B2 (ja) | プログラミングツール | |
WO2022185670A1 (ja) | 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体 | |
JP4387288B2 (ja) | 制御用表示装置、エディタ装置、プログラムおよび記録媒体 | |
JP2013235381A (ja) | データ編集装置およびデータ編集方法 | |
JP2018067054A (ja) | 安全システムの開発支援装置 | |
JP2009157534A (ja) | プログラム作成支援システム、そのプログラマブルコントローラ支援装置、プログラマブル表示器支援装置 | |
US20200041982A1 (en) | Numerical controller | |
CN112099906A (zh) | 一种Java代码远程调试方法、装置、系统、设备和介质 | |
KR20150132977A (ko) | Hmi 시스템의 프로젝트 화면 생성방법 | |
KR20120084832A (ko) | 생산현장의 작업안내 영상투영시스템 및 그 방법 | |
JPH07160536A (ja) | 対話型システムのプログラムテスト支援装置 | |
JPH11242590A (ja) | グラフィック画面プログラム生成支援装置 | |
JPS62249206A (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: 18809072 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2018809072 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2018809072 Country of ref document: EP Effective date: 20200102 |