JP2012194632A - デバッグ装置 - Google Patents
デバッグ装置 Download PDFInfo
- Publication number
- JP2012194632A JP2012194632A JP2011056383A JP2011056383A JP2012194632A JP 2012194632 A JP2012194632 A JP 2012194632A JP 2011056383 A JP2011056383 A JP 2011056383A JP 2011056383 A JP2011056383 A JP 2011056383A JP 2012194632 A JP2012194632 A JP 2012194632A
- Authority
- JP
- Japan
- Prior art keywords
- program
- debugging
- function
- thread
- debug
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Programmable Controllers (AREA)
Abstract
【解決手段】本発明のデバッグ装置は、シミュレーションプログラムとデバッグプログラムをコンピュータのOS上で実行させることで実現され、シミュレーションプログラムは、コントローラの機能をエミュレートするものであって、タスクスレッドと通信スレッドを含む1つのプロセスとして、上記OS上で動作するものであり、デバッグプログラムは、コンピュータを、デバッグ対象とする制御プログラムをシミュレーションプログラムに与えて、シミュレーションプログラムを動作させる動作手段、制御プログラムのブレークポイントでシミュレーションプログラムのプロセスを一時停止する停止手段、および、停止手段によるプロセスの一時停止後に、通信スレッドの動作を再開する再開手段、として機能させるものである。
【選択図】図5
Description
(1)まず、管理装置600等に実装されている開発環境(プログラミングツール)を用いて、マスター装置で実行させる制御プログラムのプログラムコードを作成する。プログラムは、例えば、ラダー言語、SFC言語、ストラクチャードテキスト等で記述される。最近では、複数の言語が混在していることも多い。
(2)作成した制御プログラムをコンパイル・ビルドすることにより、実行ファイルを作成する。
(3)作成した実行ファイルを管理装置600等に実装されているシミュレータソフトを用いて実行(シミュレーション)し、制御プログラムに不具合が無いこと(即ち、マスター装置が意図した動作を行うこと)を確認する。
(4)不具合が発見されたら(2)に戻りプログラムを修正し、(3)のシミュレーションを実行する。
(5)完成した実行ファイルをマスター装置のメモリにインストールする。
た。
尚、デバッガに関する先行技術としては、例えば、特許文献1〜5に開示されたものが知られている。
コントローラ用の制御プログラムをデバッグするためのデバッグ装置であって、
シミュレーションプログラムとデバッグプログラムをコンピュータのOS(Operating System)上で実行させることで実現され、
前記シミュレーションプログラムは、
前記コントローラの機能をエミュレートするものであって、
前記コントローラが制御プログラムを実行する機能をエミュレートするタスクスレッドと、前記コントローラが外部装置との通信を行う機能をエミュレートする通信スレッドとを含む1つのプロセスとして、前記OS上で動作するものであり、
前記デバッグプログラムは、前記コンピュータを、
デバッグ対象とする制御プログラムを前記シミュレーションプログラムに与えて、前記シミュレーションプログラムを動作させる動作手段、
前記OSが提供するデバッグ用の命令を使って、前記制御プログラムのブレークポイントで前記シミュレーションプログラムのプロセスを一時停止する停止手段、および、
前記停止手段による前記プロセスの一時停止後に、前記プロセスにおける前記通信スレッドの動作を再開する再開手段、として機能させるものである、
ことを特徴とする。
る制御プログラムの動作が停止するだけでなく、通信スレッドのように外部装置との通信を行う機能も停止してしまう。これでは、シミュレーションプログラムによりエミュレートされているPLC(以下、「仮想PLC」と称する。)の状態や内部変数などを外部から確認することができず、制御プログラムのデバッグを行うことができない。そこで、本発明では、シミュレーションプログラムのプロセスを一時停止した後に、通信スレッドの動作を強制的に再開させるという構成上の工夫を採用している。これにより、デバッグプログラムなどの外部のプロセスが、通信スレッドを通じて仮想PLCの状態や内部変数などの情報を取得することが可能となるため、制御プログラムのデバッグ作業を遂行することができる。
図1は、本実施形態に係るデバッグ装置の機能構成を示すブロック図である。このデバッグ装置1000は、コントローラの制御プログラムをデバッグするための装置である。本実施形態では、コントローラがプログラマブルコントローラ(PLC)130である場合を例に説明する。PLC130は、図7に例示したような産業用のネットワークシステムにおけるマスター装置(図7では符号200)として利用されるものである。産業用ネットワークには様々な規格が存在し、またPLC製品についても様々な仕様のものが存在するが、本実施形態のデバッグ装置1000はそのいずれにも適用可能である。
図1において、シミュレータ110は、シミュレーションプログラムにより実現される機能を示し、プログラミングツール120は、デバッグプログラムにより実現される機能を示す。なお、図1には、比較のために実機のPLC130も示している。実機のPLC130においても、その基本機能は、PLC用のリアルタイムOS上で動作するプログラムで実現されている。図1の例では、制御プログラムを実行して各種スレーブ装置を制御する機能をタスクスレッド132が担い、制御プログラムの内部変数、エラーコード、PLC130やスレーブ装置のステイタスなどの各種情報を外部装置との間で送受する機能を通信スレッド133が担っている。
デバッグ機能部121は、上記OSが提供するデバッグ用のAPI(Application Program Interface)を使って、デバッグ機能を果たす。例えば、上記OSが提供するデバッグ用の命令を使って、PLC130の制御プログラムのブレークポイントでシミュレーションプログラムのプロセスを一時停止する(停止手段)。
図3は、本実施形態に係るデバッグ装置のシミュレーション実行時の処理の流れの一例を示す図である。
上述したように、図1に示すようなデバッグ装置を用いることにより、PLCの制御プログラムのデバッガを簡単に実現することが可能となる。しかしながら、本実施形態に係るデバッグ装置では、シミュレータ110は1つのプロセス111として動作しており、デバッグ機能部121はOSが提供するデバッグ用のAPIを用いてデバッグ機能を果たしている。そのため、ブレークポイントで、タスクスレッド112のみではなく、プロセス111全体が一時停止してしまい、通信スレッド113との通信が途絶してしまう。これでは、プログラミングツール120から、シミュレータ110による仮想PLCの内部変数やステイタスなどを確認することができず、制御プログラムが正常に動作しているか否かを確認することができない。即ち、デバッグ装置がデバッガとして機能しなくなってしまう。
Sのサービスであるデバッグ用APIを利用してプロセスの一時停止を行う構成を採用したために、生じるものである。言い換えると、ステップ実行などのデバッグ機能を備える高機能なシミュレータを用いれば、発生しない課題である。しかしながら、このような高機能なシミュレータを作成するには前述のように多大な開発工数と開発コストが必要となるため好ましくない。そこで本実施形態では、別の工夫を加えることにより、上記課題を解決することとした。
上記課題を解決するために、本実施形態では、デバッグ機能部121によるプロセス111の一時停止後に、通信スレッド113の動作を自動で再開する処理を行う(再開手段)。なお、本実施形態では、当該処理はデバッグ機能部121により行われるものとするが、デバッグ機能部121以外の機能により行われてもよい。なお、再開するスレッドは通信スレッド113のみに限らない。タスクスレッド112以外の複数のスレッドの動作が自動で再開されてもよい。また、デバッグ装置をデバッガとして機能させるために必要なスレッド以外のスレッドが自動で再開されてもよい。
るして応答を得ることができ、所望の情報を表示装置に表示することができる。即ち、デバッグ装置をデバッガとして機能させることができる。
2 ディスプレイ
3 CPU
4 入力装置
31 記憶手段
32 取得手段
33 入力手段
34 生成手段
35 画像出力手段
100 フィールドネットワーク
110 シミュレータ
111 プロセス
112 タスクスレッド
113 通信スレッド
114 スケジューラ
115 スレッド情報出力スレッド
120 プログラミングツール
121 デバッグ機能部
122 表示制御部
123 エディタ
124 コンパイラ
125 タスク設定部
130 マスター装置
133 通信スレッド
200 マスター装置
300 スレーブ装置
301 ソースファイル
302 実行ファイル
303 デバッグ情報
304 タスク設定情報
400 ケーブル
401 位置情報
402 アドレス
500 ユニット
501 スレッド情報
600 管理装置
1000 デバッグ装置
Claims (5)
- コントローラ用の制御プログラムをデバッグするためのデバッグ装置であって、
シミュレーションプログラムとデバッグプログラムをコンピュータのOS上で実行させることで実現され、
前記シミュレーションプログラムは、
前記コントローラの機能をエミュレートするものであって、
前記コントローラが制御プログラムを実行する機能をエミュレートするタスクスレッドと、前記コントローラが外部装置との通信を行う機能をエミュレートする通信スレッドとを含む1つのプロセスとして、前記OS上で動作するものであり、
前記デバッグプログラムは、前記コンピュータを、
デバッグ対象とする制御プログラムを前記シミュレーションプログラムに与えて、前記シミュレーションプログラムを動作させる動作手段、
前記OSが提供するデバッグ用の命令を使って、前記制御プログラムのブレークポイントで前記シミュレーションプログラムのプロセスを一時停止する停止手段、および、
前記停止手段による前記プロセスの一時停止後に、前記プロセスにおける前記通信スレッドの動作を再開する再開手段、として機能させるものである、
ことを特徴とするデバッグ装置。 - 前記シミュレーションプログラムの少なくともタスクスレッドの部分は、前記コントローラのファームウェアのソースコードを利用して作成されたものである
ことを特徴とする請求項1に記載のデバッグ装置。 - コントローラ用の制御プログラムをデバッグするためのプログラムであって、
コンピュータのOS上で実行されるシミュレーションプログラムとデバッグプログラムを含み、
前記シミュレーションプログラムは、
前記コントローラの機能をエミュレートするものであって、
前記コントローラが制御プログラムを実行する機能をエミュレートするタスクスレッドと、前記コントローラが外部装置との通信を行う機能をエミュレートする通信スレッドとを含む1つのプロセスとして、前記OS上で動作するものであり、
前記デバッグプログラムは、前記コンピュータに、
デバッグ対象とする制御プログラムを前記シミュレーションプログラムに与えて、前記シミュレーションプログラムを動作させる動作ステップと、
前記OSが提供するデバッグ用の命令を使って、前記制御プログラムのブレークポイントで前記シミュレーションプログラムのプロセスを一時停止する停止ステップと、
前記停止ステップによる前記プロセスの一時停止後に、前記プロセスにおける前記通信スレッドの動作を再開する再開ステップと、
を実行させる
ことを特徴とするプログラム。 - 請求項3に記載のプログラムを記録していることを特徴とするコンピュータ読取可能な記録媒体。
- コントローラ用の制御プログラムをデバッグするためのデバッグ方法であって、
コンピュータが、シミュレーションプログラムとデバッグプログラムを前記コンピュータのOS上で実行することで実現され、
前記シミュレーションプログラムは、
前記コントローラの機能をエミュレートするものであって、
前記コントローラが制御プログラムを実行する機能をエミュレートするタスクスレッ
ドと、前記コントローラが外部装置との通信を行う機能をエミュレートする通信スレッドとを含む1つのプロセスとして、前記OS上で動作するものであり、
前記コンピュータが、前記デバッグプログラムを実行することにより、デバッグ対象とする制御プログラムを前記シミュレーションプログラムに与えて、前記シミュレーションプログラムを動作させる動作ステップと、
前記コンピュータが、前記デバッグプログラムを実行することにより、前記OSが提供するデバッグ用の命令を使って、前記制御プログラムのブレークポイントで前記シミュレーションプログラムのプロセスを一時停止する停止ステップと、
前記コンピュータが、前記デバッグプログラムを実行することにより、前記停止ステップによる前記プロセスの一時停止後に、前記プロセスにおける前記通信スレッドの動作を再開する再開ステップと、
を有することを特徴とするデバッグ方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011056383A JP5212508B2 (ja) | 2011-03-15 | 2011-03-15 | デバッグ装置 |
PCT/JP2011/057021 WO2012124162A1 (ja) | 2011-03-15 | 2011-03-23 | デバッグ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011056383A JP5212508B2 (ja) | 2011-03-15 | 2011-03-15 | デバッグ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012194632A true JP2012194632A (ja) | 2012-10-11 |
JP5212508B2 JP5212508B2 (ja) | 2013-06-19 |
Family
ID=46830270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011056383A Active JP5212508B2 (ja) | 2011-03-15 | 2011-03-15 | デバッグ装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5212508B2 (ja) |
WO (1) | WO2012124162A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018220923A1 (ja) | 2017-05-30 | 2018-12-06 | オムロン株式会社 | プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム |
JP2019053729A (ja) * | 2017-09-15 | 2019-04-04 | 富士通株式会社 | スマートコントラクトのテスト方法及びテスト装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7241931B2 (ja) * | 2020-11-16 | 2023-03-17 | バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド | ミニプログラムをデバッグする方法、装置、電子機器、記憶媒体及びコンピュータプログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05274177A (ja) * | 1992-03-26 | 1993-10-22 | Yokogawa Electric Corp | リアルタイム・システム・デバッグ装置 |
JPH06161817A (ja) * | 1992-11-18 | 1994-06-10 | Yokogawa Electric Corp | スレッドオンラインデバッグ装置 |
JP2000250777A (ja) * | 1999-02-25 | 2000-09-14 | Canon Inc | 情報処理装置と情報処理方法、及び記憶媒体 |
JP2009193109A (ja) * | 2008-02-12 | 2009-08-27 | Advantest Corp | デバッグ中にツールを使用可能な試験システム及び方法 |
-
2011
- 2011-03-15 JP JP2011056383A patent/JP5212508B2/ja active Active
- 2011-03-23 WO PCT/JP2011/057021 patent/WO2012124162A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05274177A (ja) * | 1992-03-26 | 1993-10-22 | Yokogawa Electric Corp | リアルタイム・システム・デバッグ装置 |
JPH06161817A (ja) * | 1992-11-18 | 1994-06-10 | Yokogawa Electric Corp | スレッドオンラインデバッグ装置 |
JP2000250777A (ja) * | 1999-02-25 | 2000-09-14 | Canon Inc | 情報処理装置と情報処理方法、及び記憶媒体 |
JP2009193109A (ja) * | 2008-02-12 | 2009-08-27 | Advantest Corp | デバッグ中にツールを使用可能な試験システム及び方法 |
Non-Patent Citations (1)
Title |
---|
JPN6011028435; 栗山和也 外1名: 'シミュレーションによるリアルタイムシステム開発環境' 計測と制御 第31巻,第7号, 199207, p.811-815, 社団法人 計測自動制御学会 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018220923A1 (ja) | 2017-05-30 | 2018-12-06 | オムロン株式会社 | プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム |
US11287789B2 (en) | 2017-05-30 | 2022-03-29 | Omron Corporation | Program development support device, program development support system, program development support method, and non-transitory computer-readable recording medium |
JP2019053729A (ja) * | 2017-09-15 | 2019-04-04 | 富士通株式会社 | スマートコントラクトのテスト方法及びテスト装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5212508B2 (ja) | 2013-06-19 |
WO2012124162A1 (ja) | 2012-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3101547A1 (en) | Control system, method, program and information processing device | |
CN104898546B (zh) | 一种基于soc的plc在线调试系统和方法 | |
US20150100832A1 (en) | Method and system for selecting and executing test scripts | |
JP2009265668A (ja) | 工学プロジェクトの訓練シミュレータ | |
JP2015060600A (ja) | 仮想制御装置をリアルタイムテストするためのテスト装置 | |
US20150100830A1 (en) | Method and system for selecting and executing test scripts | |
EP2816427B1 (en) | Plc simulation system, plc simulator, recording medium, and simulation method | |
CN105740139B (zh) | 一种基于虚拟环境的嵌入式软件调试方法 | |
CN103218293A (zh) | 一种plc在线调试系统和方法 | |
US9117018B2 (en) | Method of debugging software and corresponding computer program product | |
JP5212508B2 (ja) | デバッグ装置 | |
JP5891891B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN103853147A (zh) | 一种嵌入式系统的在线调试系统及方法 | |
JP6362821B2 (ja) | 制御装置、制御方法および命令セット | |
CN110209565B (zh) | 一种元数据模型调试方法及其装置 | |
CN109144849B (zh) | 一种嵌入式软件调测方法 | |
CN100517265C (zh) | 一种微控制器仿真系统 | |
CN112579460B (zh) | 一种基于多核嵌入式系统的多级调试方法 | |
JP2019179284A (ja) | シミュレーションシステム、及びシミュレーションプログラム | |
JP2011018107A (ja) | シミュレーションシステム | |
US20220297731A1 (en) | Train signal system and linkage method therefor | |
JP2007004516A (ja) | 組込みシステムのプログラムデバッグ方法 | |
US8914274B1 (en) | Method and system for instruction set simulation with concurrent attachment of multiple debuggers | |
EP3633471B1 (en) | Program development support device, program development support system, program development support method, and program development support program | |
CN114518734B (zh) | 一种控制模型集成方法、装置及其介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121023 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121225 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130211 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5212508 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160308 Year of fee payment: 3 |