JP2008204023A - プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法 - Google Patents

プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法 Download PDF

Info

Publication number
JP2008204023A
JP2008204023A JP2007037301A JP2007037301A JP2008204023A JP 2008204023 A JP2008204023 A JP 2008204023A JP 2007037301 A JP2007037301 A JP 2007037301A JP 2007037301 A JP2007037301 A JP 2007037301A JP 2008204023 A JP2008204023 A JP 2008204023A
Authority
JP
Japan
Prior art keywords
instruction
break
programmable controller
address
nop
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.)
Pending
Application number
JP2007037301A
Other languages
English (en)
Inventor
Daisuke Yoshihara
大助 吉原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric FA Components and Systems Co Ltd
Original Assignee
Fuji Electric FA Components and Systems Co Ltd
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 Fuji Electric FA Components and Systems Co Ltd filed Critical Fuji Electric FA Components and Systems Co Ltd
Priority to JP2007037301A priority Critical patent/JP2008204023A/ja
Publication of JP2008204023A publication Critical patent/JP2008204023A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】追加のソフトウェアおよびハードウェア等の資源が少なくてすみ、汎用的な方法で、プログラマブルコントローラのデバッグを実現し、加えてブレーク(実行停止)時におけるデータアクセス検査処理に掛かる負荷を低減する。
【解決手段】ソースコードをコンパイル時に、機械語オブジェクトにNOPを挿入する。この挿入箇所は、ソースコードのシーケンス命令一つに対応する機械語命令群の前であり、NOPとその位置の関係を切れ目テーブルとする。また、機械語命令とアドレスの関係も抽出し、ユーザがデータアクセスする際の条件から、対象の機械語命令の一覧をテーブル化する。該テーブルと切れ目テーブルを用いて、機械語オブジェクトの必要な箇所のNOPを分岐命令に書き替えればよく、負荷量の少ないデバッグ環境を実現する。
【選択図】図1

Description

本発明は、プログラマブルコントローラのソフトウェア開発におけるデバッグ時のブレーク(命令停止)に関り、特にコンパイル時に命令とアドレスの関係を抽出することによりアドレスを対象としたブレーク設定を効率的に実行するプログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法に関する。
従来、プログラマブルコントローラはシーケンス命令実行を高速に行わせるための専用ハードウェア(大規模専用LSIなどに代表される)を備えるものが主流であった。専用ハードウェアであるので、デバッグ用のブレーク、ステップ実行もハードウェアによってサポートされていた。このようなハードウェアの場合、ブレーク設定された位置の命令を特殊な命令に置き換えて、割込みを発生させブレーク成立チェックルーチンへの分岐、成立した場合のブレーク状態を作り出すことが可能であった。
しかし、(1)専用ハードウェアは高価である、(2)専用のマシン語体系をもちシステムプログラム開発が比較的困難である、というデメリットも存在していた。
近年、パーソナルコンピュータ、携帯端末などの普及により、市販の汎用CPUの技術革新が進み、高速実行が可能なCPUを非常に安価に入手することが可能になってきた。また、汎用であるためファームウェアの開発ツールを市場から調達できるようになってきたため、汎用CPUを使ったプログラマブルコントローラも作られるようになってきている。
このようなプログラマブルコントローラシステムにおいては、ユーザはプログラミング支援装置にてプログラミングを行い、その後、プログラムをプログラマブルコントローラに転送してから実行させて、プログラムのテストを行う。
プログラムのテストにおいては、プログラミング支援装置におけるデバッグサポート機能も重要になるが、中でも指定した条件、例えば任意の命令位置で実行を一時中断するブレーク機能(条件停止とも呼ばれる)や、ブレーク状態からシーケンス命令を1つずつ実行してはブレークするステップ機能などが要求される。
特許文献1では、開発支援装置で制御プログラム(シーケンス命令)を作成し、該プログラムをコンパイルしてマイクロプロセッサ上で直接実行可能な実行コード(機械語)を作成する方法が記載されている。ここでは、シーケンス命令1つにつき、数個の機械語の組合せによってシーケンス命令の実行を実現する例が示されている。
なお、プログラマブルコントローラにおけるシーケンス命令は、ラダー図、テキスト記述言語などで代表される言語命令により構成されるが、本明細書中では特に断らない限り、プログラマブルコントローラにおける記述言語規格IEC61131−3に準ずるものとして言語命令の説明は割愛する。
特開2002−99312号公報
従来の方法においては、シーケンス命令単位でのブレーク指定、ステップ実行機能の実現要求の実現方法として、デバッガと呼ばれるソフトウェアをプログラミング支援装置に含み、かつ内部ではC言語ソースコード、Cソースデバッガ等を内蔵させており、制御プログラムの作成のために必要なハードウェア資源の他に多くの資源を準備しなければならない問題点がある。また、プログラマブルコントローラ側にもアプリケーション実行機能とは別にCソースデバッガとのインタフェース用のソフトウェア資源・ハードウェア資源が必要になる。
本発明は、上記従来の問題点を鑑みてなされたものであって、ブレーク指定の実現に必要となるプログラミング支援装置・プログラマブルコントローラのソフトウェア資源・ハードウェア資源を低減させ、加えてデータアクセス(任意のアドレスにアクセスが発生したことをトリガーとする)に伴うブレーク機能も有するプログラマブルコントローラシステムを提供することを目的とする。
上記の課題を解決する手段として、本発明は以下のように構成する。
第1に、シーケンス言語で記述された第1のプログラムをプログラマブルコントローラを構成するマイクロコンピュータが解釈実行できるマシン語で記述された第2のプログラムに変換する機能と、前記シーケンス言語の命令単位に対応して変換された前記マシン語群の各々の先頭に前記マシン語のNOP(ノーオペレーション)命令を挿入する機能と、前記第2のプログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルを生成する機能と、前記第2のプログラムのブレーク(実行停止)位置を前記シーケンス言語の命令単位で指定できるデバッグサポート機能を含み、前記NOP命令を挿入後の前記第2のプログラムと前記切れ目テーブルとブレーク位置を特定する情報とを、ターゲットである前記プログラマブルコントローラに送信するプログラミング支援装置と、前記プログラミング支援装置から受信したデータより前記ブレーク位置を決定し、該ブレーク位置に従って前記NOP命令をデバッグ処理への分岐命令に置き替えて前記ブレークを実現する機能とを有するように構成する。
第2に、前記プログラミング支援装置は、前記シーケンス言語の命令単位に対応して変換された前記マシン語群ごとの実行順番とアドレス情報とを関連付ける命令−アドレス対応表を生成する機能を有し、前記デバッグサポート機能は、前記命令−アドレス対応表より任意のアドレスにアクセスしたときにブレーク対象を特定する前記実行順番を全て抽出する機能を有するように構成する。
第3に、汎用のマイクロコンピュータを使用するプログラマブルコントローラのデバッグ方法であって、シーケンス言語で記述された第1プログラムを前記マイクロコンピュータのマシン語で記述された第2のプログラムに変換するときに、前記第2のプログラムにおける前記第1のプログラムの命令単位の切れ目に、前記マシン語のNOP(ノンオペレーション)命令を挿入するステップと、前記変換時に、前記マシン語の各命令の実行順番と該命令がアクセスするアドレスの情報とを、命令−アドレス対応表として生成するステップと、デバッグ時に、任意のアドレスにアクセスしたときのブレーク(実行停止)対象となるブレーク位置を特定する情報を、命令−アドレス対応表より全て抽出するステップと、前記命令−アドレス対応表と前記ブレーク位置を特定する情報とから、前記NOP命令を挿入後の前記第2のプログラムにおけるブレーク位置を特定し、前記NOP命令を挿入後の前記第2のプログラムのNOP命令をデバッグ処理へ分岐する分岐命令に置き替えるステップとを有する方法。
本発明により、プログラマブルコントローラ及びプログラミング支援装置のデバッグコードをユーザプログラム中に含める必要がないので、従来のように、デバッグ作業の都度、コンパイルとダウンロードとを行う必要がなくなる。特に細かく動作確認を行う場合に有効であり、プログラマブルコントローラシステムへの負荷量は低減し、作業量(時間効率)の面からも効果がある。
また、プログラミング支援装置では、コンパイルのときに命令単位でのアクセス先アドレスの情報を抽出するので、デバッグ時はこの一覧よりデータアクセスに伴うブレーク箇所を容易に抽出できる。一方、プログラマブルコントローラ側では、機械語の切れ目全てにおいて、対象のアドレスにアクセスしたか否かを確認する必要はなく、抽出結果に基づく機械語の切れ目でのみブレーク実行すれば良い。その結果、冗長な処理を回避し、プログラマブルコントローラの処理速度の向上に寄与するという効果を奏する。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。まず図1〜3、及び図4を用いて、動作の概略を説明する。その後、図4(b)及び図5〜6を用いて任意の変数(アドレス)へのアクセスをブレーク対象とした場合の具体的な処理方法を説明する。
図1は、本発明におけるブロック構成を示したものであり、動作対象であるプログラマブルコントローラ200と、これを支援するプログラミング支援装置100から構成される。通常、プログラミング支援装置100はローダ(開発環境)と呼ばれ、ユーザがプログラマブルコントローラ200を操作するのに必要になる機械語オブジェクトの生成や修正を支援する。
ユーザは、プログラミング支援装置100においてシーケンス言語を用いて制御プログラムを作成する。作成された制御プログラムは、ソースコードと呼ばれる。ソースコード2は、フロントエンドコンパイラ20により中間コード4に変換され、ファイルとして保存される。続けて、中間コード4はバックエンドコンパイラ40により変換され、機械語オブジェクト8、切れ目テーブル10、命令−アドレス対応表12が生成される。
ここで、機械語オブジェクト8は、ソースコード2を実行可能なバイナリコードに変換したものであり、中間コード4は両者の中間形態に相当する。変換過程において、ソースコード2を機械語オブジェクト8に直接変換するのではなく、抽象度が高い中間的なコードに変換することにより、中間コード4の段階では機種依存等によるアーキテクチャの制限を回避できるので、その結果、その後のコード最適化作業が進め易い利点がある。
図2は、中間コードと機械語オブジェクトの一例を示したものであり、それぞれ中間コード4(図1参照)、機械語オブジェクト8(図1参照)に対応する。
中間コード4の一例である中間コード300は、演算子302とオペランド304を一組としたニーモニック言語で構成され、これが羅列されている。演算子302は演算の処理命令であり、オペランド304はアドレスや数値等の情報である。ここでは、中間コード300の1行がソースコード2のシーケンス1命令に相当する。
機械語オブジェクト8の一例である機械語オブジェクト400は、処理部402とデータ部404を一組(以下、ブロックと呼ぶ)としたもので構成され、これが羅列されている。
中間コード300の1行は、機械語オブジェクト400の1ブロックに相当し、演算子302と処理部402、オペランド304とデータ部404がそれぞれ対応する。通常、一つの演算子は複数の処理命令から構成されるので、演算子302と処理部402の対応関係は1対1でも、内部の命令数では1対多になる場合が多い。なお、ここでの中間コード300の一例は、ソースコード2を字句解析し、予約語などを数値に変換しただけの状態として示したが、更に変換を進めバイトコードのようなものであっても構わない。
図3は、切れ目テーブルが生成される過程を示したものである。先に説明したように、中間コード500の1行は機械語オブジェクト600の1ブロックに変換される。ここで、機械語オブジェクト600の各ブロックの前にNOP602を挿入する。NOP(ノーオペレーション:No Operation)とは、命令の一つで「何も処理しない」処理を表す。
このようなNOP602とブロックとの羅列である機械語オブジェクト600において、その先頭位置を0とし、ここからのオフセット量をオフセット604とする。各NOP602ごとに、オフセット604を求める。ここでは、1番目のNOP602がX1、2番目のNOP602がX2、…、最後のNOP602がXNのオフセット量を有している。このNOP602とオフセット604の関係を一覧にしたものが、切れ目テーブル700である。
中間コード500の何番目の命令かが分かれば、切れ目テーブル700を用いる事により、機械語オブジェクト600におけるオフセット量が求められるので、結果、機械語オブジェクト600における対応する命令の場所を特定できる。
図4は、命令−アドレス対応表とデータアクセスデバッグ情報の一例を示したものである。命令−アドレス対応表12(図4(a)参照)は、命令番号、種別、データ型、開始アドレス、終了アドレス、アクセス方法の各情報から構成される。ここでは、一例として図2(a)の中間コード300の3つの命令について示している。
なお、データ型は本願発明においては必須情報では無いが、発明を拡張する際に有効な情報なので具備することが望ましい。
以下に、命令−アドレス対応表12の各項目について説明する。
命令番号は、中間コード300における命令の出現順番の番号である。
種別は、オペランド304のアドレス表現の形式であり、直接・範囲・ポインタの3種類がある。直接とは、オペランドにアドレスが直接記述されている場合である。範囲とは、配列など、あるアドレスからのインデックスでデータにアクセスする場合である。ポインタとは、オペランドに指定したアドレスの中に実際にアクセスするアドレス情報が格納されている場合である。
データ型は、設定されている変数の型である。例えば、WI(16ビット列)は型の一つであり、16ビットの情報量を有する。
開始アドレス・終了アドレスは、アドレス番地の情報であるが、上記の種別によって登録方法が異なる。種別が直接の場合、一つのアドレスが指定されるので、開始アドレスか終了アドレスのいずれかに登録する。種別が範囲の場合、開始アドレス・終了アドレスの双方を登録する。種別がポインタの場合、オペランド304の指定している情報だけではアクセスするアドレスを特定できないので何も登録しない。
アクセス方法は、アドレスへのアクセス方法に関する情報であり、読み取り・書き込みの2種類がある。これらは、演算子302の種類から一意に決まる。例えば、演算子がLDやADDの場合は読み取りで、STの場合は書き込みになる。
なお、中間コード300の例では単項のオペランド304しかないが、オペランド304が2項以上の場合は命令番号は同一とした上で、オペランド304の項数と同数分の行を登録する。
これらの手続きにより、命令−アドレス対応表12が生成される。生成された命令−アドレス対応表12を用いて、データアクセスデバッグ情報6を生成し、ユーザが指定するソースコードの任意の変数(アドレス)におけるブレークを支援する機能が、デバッグサポート機能30である。図4(b)は、データアクセスデバッグ情報6の一例であり、命令番号、種別、データ型、アドレス、アクセス方法の各情報から構成される。
プログラミング支援装置100は、通信手段50によって、機械語オブジェクト8、切れ目テーブル10、データアクセスデバッグ情報6を、操作対象であるプログラマブルコントローラ200に送信する。
プログラマブルコントローラ200は、機械語オブジェクト8、切れ目テーブル10、データアクセスデバッグ情報6を受信し、その後、実行停止実現機能60により、データアクセスデバッグ情報6を解析し、切れ目テーブル10からオフセット量を求め、ブレーク対象である機械語オブジェクト8の該当箇所のNOPを分岐命令に置き替える。この置換後のファイルが、機械語オブジェクト(分岐命令)14である。プログラマブルコントローラ200は、機械語オブジェクト(分岐命令)14を実行すると、分岐命令によりデータアクセス検査処理に移行し、ブレーク条件を満たす場合にブレーク状態となる。データアクセス検査処理とは、任意のアドレスにアクセスが発生したか否かをチェックする処理である。本発明においては、一例として、変数(アドレス)へのアクセスとそのアクセス方法をブレーク条件としているが、この他の条件を設定しても構わない。変数(アドレス)へのアクセスとそのアクセス方法だけをブレーク条件とする場合、データアクセスデバッグ情報6で対象の命令を抽出するので、データアクセス検査処理では無条件でブレークさせても構わない。
以上が本発明の基本動作になるが、データアクセスデバッグ情報6の生成方法と展開方法について、より具体的に説明する。図5は、ユーザがプログラミング支援装置100のデバッグサポート機能30によって、データアクセスデバッグ情報6を生成し、通信手段50によって動作対象のプログラマブルコントローラ200に送信するまでのフローチャートを示している。また、図6は、プログラマブルコントローラ200の実行停止実現手段60が、受信したデータアクセスデバッグ情報6を展開するフローチャートを示している。
以下に、プログラミング支援装置100における処理を説明する。
ユーザはブレーク条件を指定する。デバッグサポート機能30はユーザインターフェース機能を有し、変数(アドレス)と条件(データへのアクセス方法)との指定をユーザから受ける(ステップS802)。例えば、変数Aの情報に読み取りでアクセスがあった場合、とユーザに指定されると、デバッグサポート機能30では、変数Aをアドレスに置き換え、条件である読み取りをアクセス方法として特定することになる。ここでは、データアクセスを想定したブレーク条件の設定方法の簡易な例として、アドレスとアクセス方法とを対象としたが、他に条件を設定しても構わないし、より簡易にアドレスだけとしても構わない。
その後、バックエンドコンパイラ40により生成されている命令−アドレス対応表12を1行分だけ読み込む(ステップS804)。読み込んだデータでは、種別によりアドレスの指定方法が異なるので、アドレスがユーザの指定のものか否かを判断していく。
・種別が直接(ステップS806)で、開始アドレスがユーザ指定アドレスである(ステップS808)場合
・種別が範囲で(ステップS806、ステップS812)で、ユーザ指定アドレスが読み込んだアドレスの
範囲にある(ステップS814)場合
・種別が直接でも範囲でも無い(ステップS806、ステップS812)場合
以上の3通りの場合において、さらに、アクセス方法がユーザ指定のアクセス方法と一致した場合(ステップS810)はブレーク対象であり、データアクセスデバッグ情報6として命令番号、種別、データ型、アドレス、アクセス方法の各情報を登録(ステップS816)する。
これ以外の場合である、開始アドレスがユーザ指定アドレスでない(ステップS808)場合、ユーザ指定アドレスが読み込んだアドレスの範囲にない(ステップS814)場合、アクセス方法がユーザ指定のアクセス方法と一致しない(ステップS810)場合は、データアクセスデバッグ情報6を登録せずにステップS818に分岐する。
その後、命令−アドレス対応表12に次行があればステップS804に戻り、処理を繰り返す(ステップS818)。命令−アドレス対応表12の全ての行を処理終了した場合、生成したデータアクセスデバッグ情報6を通信手段50により対象に送信して処理を終了する(ステップS820)。ここで、通信手段50では、ネットワークや無線LAN等の通信網を経由しても良いし、磁気媒体やフラッシュメモリ等を介して遣り取りをしても構わない。
以下に、プログラマブルコントローラ200における処理を説明する。
プログラマブルコントローラ200は、機械語オブジェクト8、切れ目テーブル10、データアクセスデバッグ情報6を受信する(ステップS902)。これらの情報を、同時に受信しても構わないが、機械語オブジェクト8、切れ目テーブル10はバックエンドコンパイラ40がコンパイル時に生成されるので、ユーザが指定してから生成されるデータアクセスデバッグ情報6よりも先に受信しても構わない。
次に実行停止実現機能60はデータアクセスデバッグ情報6から1行分だけ読み込む(ステップS904)。データアクセスデバッグ情報6の命令番号から、切れ目テーブル10で該当するオフセット(図3参照)を取得する(ステップS906)。
その後、データアクセスデバッグ情報6の種別とアクセス方法からデータアクセス検査処理を決定する(ステップS908)。この処理は、先に記載したステップS802と対応し、ここではブレーク条件として、アドレスとアクセス方法とを対象としているので、この条件をデータアクセス検査処理とする。
その後、機械語オブジェクト8において、取得したオフセットの位置のNOP命令をデータアクセス検査処理への分岐命令に置き替える(ステップS910)。
その後、データアクセスデバッグ情報6に次行があればステップS904に戻り、処理を繰り返し、全ての行を処理終了した場合は処理を終了する(ステップS912)。
これらの一連の動作により、機械語オブジェクト(分岐命令)14が生成される。
以上の本発明の説明から明らかなように、プログラマブルコントローラ及びプログラミング支援装置のデバッグコードをユーザプログラム中に含める必要がないので、デバッグ作業の都度、コンパイルとダウンロードとを行う必要がない。
また、プログラミング支援装置では、コンパイルのときにシーケンス命令単位でのアクセス先アドレスの情報を抽出するので、デバッグ時はこの一覧よりデータアクセスに伴うブレーク箇所を容易に抽出できる。一方、プログラマブルコントローラ側では、機械語の切れ目全てにおいて、対象のアドレスにアクセスしたかを確認する必要はなく、抽出結果に基づく機械語の切れ目でブレーク実行しても良い。よって、冗長な処理を回避し、プログラマブルコントローラの処理速度の向上に寄与する。
もしデータアクセスデバッグ情報6を用いないでシステムの実現を試行すると、図7に示すようにNOP命令ごとに、目的のアドレスにアクセスしたかのデータアクセス検査処理が必要になり、処理が冗長になるのは避けられない。
本発明におけるブロック構成を示す説明図 中間コード、機械語オブジェクトの一例を示す説明図 中間コード、機械語オブジェクト、切れ目テーブルの作用の一例を示す説明図 命令−アドレス対応表、データアクセスデバッグ情報の一例を示す説明図 データアクセスデバッグ情報の生成・転送フローチャートの説明図 データアクセスデバッグ情報の受信・展開フローチャートの説明図 データアクセスデバッグ情報を用いないデバッグ概略の説明図
符号の説明
2 ソースコード
4 中間コード
6 データアクセスデバッグ情報
8 機械語オブジェクト
10 切れ目テーブル
12 命令−アドレス対応表
14 機械語オブジェクト(分岐命令)
20 フロントエンドコンパイラ
30 デバッグサポート機能
40 バックエンドコンパイラ
50 通信手段
60 実行停止実現機能
100 プログラミング支援装置
200 プログラマブルコントローラ
300、500 中間コード(一例)
302 演算子
304 オペランド
400、600 機械語オブジェクト(一例)
402 処理部
404 データ部
602 NOP(ノーオペレーション)
604 オフセット
700 切れ目テーブル
800 データアクセス検査処理
S802〜S912 データアクセスデバッグ情報の処理方法に関するステップ

Claims (3)

  1. シーケンス言語で記述された第1のプログラムをプログラマブルコントローラを構成するマイクロコンピュータが解釈実行できるマシン語で記述された第2のプログラムに変換する機能と、前記シーケンス言語の命令単位に対応して変換された前記マシン語群の各々の先頭に前記マシン語のNOP(ノーオペレーション)命令を挿入する機能と、前記第2のプログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルを生成する機能と、前記第2のプログラムのブレーク(実行停止)位置を前記シーケンス言語の命令単位で指定できるデバッグサポート機能を含み、前記NOP命令を挿入後の前記第2のプログラムと前記切れ目テーブルとブレーク位置を特定する情報とを、ターゲットであるプログラマブルコントローラに送信するプログラミング支援装置と、
    前記プログラミング支援装置から受信したデータより前記ブレーク位置を決定し、該ブレーク位置に従って前記NOP命令をデバッグ処理への分岐命令に置き替えて前記ブレークを実現する機能を備えた前記プログラマブルコントローラと、
    を有することを特徴とするプログラマブルコントローラシステム。
  2. 請求項1に記載のプログラマブルコントローラシステムにおいて、
    前記プログラミング支援装置は、前記シーケンス言語の命令単位に対応して変換された前記マシン語群ごとの実行順番とアドレス情報とを関連付ける命令−アドレス対応表を生成する機能を有し、
    前記デバッグサポート機能は、前記命令−アドレス対応表より任意のアドレスにアクセスしたときにブレーク対象を特定する前記実行順番を全て抽出する機能を有すること、
    を特徴とするプログラマブルコントローラシステム。
  3. 汎用のマイクロコンピュータを使用するプログラマブルコントローラのデバッグ方法であって、
    シーケンス言語で記述された第1プログラムを前記マイクロコンピュータのマシン語で記述された第2のプログラムに変換するときに、前記第2のプログラムにおける前記第1のプログラムの命令単位の切れ目に、前記マシン語のNOP(ノンオペレーション)命令を挿入するステップと、
    前記変換時に、前記マシン語の各命令の実行順番と該命令がアクセスするアドレスの情報とを、命令−アドレス対応表として生成するステップと、
    デバッグ時に、任意のアドレスにアクセスしたときのブレーク(実行停止)対象となるブレーク位置を特定する情報を、命令−アドレス対応表より全て抽出するステップと、
    前記命令−アドレス対応表と前記ブレーク位置を特定する情報とから、前記NOP命令を挿入後の前記第2のプログラムにおけるブレーク位置を特定し、前記NOP命令を挿入後の前記第2のプログラムのNOP命令をデバッグ処理へ分岐する分岐命令に置き替えるステップと、
    を有することを特徴とするプログラマブルコントローラのデバッグ方法。
JP2007037301A 2007-02-19 2007-02-19 プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法 Pending JP2008204023A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007037301A JP2008204023A (ja) 2007-02-19 2007-02-19 プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007037301A JP2008204023A (ja) 2007-02-19 2007-02-19 プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法

Publications (1)

Publication Number Publication Date
JP2008204023A true JP2008204023A (ja) 2008-09-04

Family

ID=39781494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007037301A Pending JP2008204023A (ja) 2007-02-19 2007-02-19 プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法

Country Status (1)

Country Link
JP (1) JP2008204023A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012043215A (ja) * 2010-08-19 2012-03-01 Fuji Electric Co Ltd デバッグ方法
JP2013084112A (ja) * 2011-10-07 2013-05-09 Fuji Electric Co Ltd プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
US10041998B2 (en) 2015-10-22 2018-08-07 Lsis Co., Ltd. Method of debugging PLC by using general-purpose microprocessor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012043215A (ja) * 2010-08-19 2012-03-01 Fuji Electric Co Ltd デバッグ方法
JP2013084112A (ja) * 2011-10-07 2013-05-09 Fuji Electric Co Ltd プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
US10041998B2 (en) 2015-10-22 2018-08-07 Lsis Co., Ltd. Method of debugging PLC by using general-purpose microprocessor

Similar Documents

Publication Publication Date Title
US8776024B2 (en) Software application fine-tuning method, system, and corresponding computer program product
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
CN101667154A (zh) 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
JP2008269569A (ja) コード変換装置
JP2007304840A (ja) コンパイル方法、デバッグ方法、コンパイルプログラムおよびデバッグプログラム
US8225286B2 (en) Debugging interpreted input
CN103207771A (zh) 一种plc程序执行器ip核
JP2008293138A (ja) ソフトウェア開発支援プログラム、ソフトウェア開発支援方法
JP6550268B2 (ja) プログラム作成支援装置、プログラムおよび判別方法
CN111954854B (zh) 支持装置以及计算机可读取存储介质
JP2008204023A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法
JP2009251762A (ja) デバッガ装置、デバッグ方法およびプログラム
JP2008052688A (ja) プログラムのパッチデータ生成装置
JP2008305337A (ja) プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム
JP5141095B2 (ja) プラントコントローラシステム
EP2336883B1 (en) Programming system in multi-core environment, and method and program of the same
US20090319994A1 (en) System for debugging computer program
US9606779B2 (en) Data processing system and data simulation method in the system
US11630757B1 (en) System and method for developing, testing and debugging software for microcontrollers
JP4808016B2 (ja) マイクロコンピュータの初期化装置および車載用制御装置
JP3745968B2 (ja) 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体
JP2007188366A (ja) コンパイル装置
US20160209835A1 (en) Control system having function for optimizing control software of numerical controller in accordance with machining program
JP2006323609A (ja) プログラマブルコントローラ
JP2007114934A (ja) コンパイラシステム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Effective date: 20080919

Free format text: JAPANESE INTERMEDIATE CODE: A712

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20081215

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090219