JP4802775B2 - コントローラ支援装置およびプログラマブルコントローラ - Google Patents

コントローラ支援装置およびプログラマブルコントローラ Download PDF

Info

Publication number
JP4802775B2
JP4802775B2 JP2006064365A JP2006064365A JP4802775B2 JP 4802775 B2 JP4802775 B2 JP 4802775B2 JP 2006064365 A JP2006064365 A JP 2006064365A JP 2006064365 A JP2006064365 A JP 2006064365A JP 4802775 B2 JP4802775 B2 JP 4802775B2
Authority
JP
Japan
Prior art keywords
instruction
controller
code
user program
execution
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.)
Active
Application number
JP2006064365A
Other languages
English (en)
Other versions
JP2007241728A (ja
Inventor
幸輝 湯尾
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 Co Ltd
Original Assignee
Fuji Electric 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 Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2006064365A priority Critical patent/JP4802775B2/ja
Publication of JP2007241728A publication Critical patent/JP2007241728A/ja
Application granted granted Critical
Publication of JP4802775B2 publication Critical patent/JP4802775B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Programmable Controllers (AREA)

Description

本発明はコントローラ支援装置およびプログラマブルコントローラに係り、特に、ユーザ側のアプリケーションプログラム(以下、「アプリケーション」と略称する)を実行するCPUとして汎用マイコンが使用される場合のプログラマブルコントローラと、ユーザプログラムデバッグ機能により、このプログラマブルコントローラを支援するコントローラ支援装置およびプログラマブルコントローラに関する。
プログラマブルコントローラは、FA(Factory Automation)などの用途に使用されているコンピュータである。
従来、プログラマブルコントローラの制御対象は、スイッチのON/OFFなど、ビット操作が主だったため、ビット演算を高速に行える専用LSI(ASIC)が用いられることが多かった。しかしながら、ASICは高価であって、低性能で済ませるべき製品や、低コストにすることが要求される製品には用いることができなかった。また、近年のLSIの高速化に伴い、ASICを用いなくても高速の汎用マイコンを用いることで十分に要求する演算性能が得られることがあるので、実際、ユーザプログラムの実行LSIとしては、ASICの代用として汎用マイコンを用いたプログラマブルコントローラも多数存在する。
このような汎用マイコンの中でも、RISC(縮小命令セットコンピュータ)命令を使用したマイコン(以下、「汎用RISCマイコン」と称する)は、その命令セットの簡潔さから、処理速度の高速化に適しており、かつCISC(複合命令セットコンピュータ)命令を用いたマイコンよりもコードの移植性に優れているので、コントローラの専用ASICで実行されていたコントローラ専用機械語の実行処理の移植が可能なCPUとして使用されている。
なお、プログラマブルコントローラのためのデバッグシステムとしては、例えば、特許文献1に開示されているように、制御プログラムを変更することなく、1行ずつのステップ実行を可能にしたものが提案されている。
特開平9−265413号公報
ところで、上記背景技術で述べた従来のプログラマブルコントローラにあっては、例えば、前述の汎用RISCマイコンを使ったコントローラの場合、ユーザプログラムのデバッグ機能を提供することが一つの課題となっており、このようなデバッグ機能の1例として、ブレーク機能を挙げることができる。
このブレーク機能では、単にユーザプログラムの実行を停止するのみでなく、その時点での演算結果の参照や演算実行フラグの情報表示など、幾つかの実行したい処理が有り、それらの複雑な処理をユーザがブレーク対象に選んだ1命令に対して行う必要がある。
ASICを用いてユーザプログラムの実行を実現している従来のコントローラでは、現在実行しているユーザプログラムのプログラム番号(以下、「実行PC」と略称する)と、ユーザが停止させたいプログラム位置とを、ASIC内部の比較回路(コンパレータ)によってハードウェア的に比較し、一致した場合に内部割込み信号を発生して、その割込み処理内で前記ブレーク機能を実現することができるように構成されている。
けれども、汎用マイコンを用いたコントローラでは、前記のようなハードウェアを用いる手段での実行アドレスの比較は不可能なので、ユーザプログラムの中の実行を停止させたい位置にブレーク処理を行うためのブレークコード埋め込んで予めコンパイルを行うこととし、実行時、制御の流れが、このブレーク処理に遭遇する都度、コントローラにダウンロードしてデバッグを行わせるようにしていた。
図11は、従来の汎用マイコンコントローラにおけるブレークコードの配置を示す説明図である。
図11(a)に示すように、コントローラメモリ71には、当初、ユーザプログラム72と、システムファームウェア74とが配置されているが、デバック機能を実行させる場合、図11(b)に示すように、ユーザプログラム72には、ユーザプログラム72aとユーザプログラム72aとの間にブレーク処理のコード73が挿入される。
しかしながら、このように構成した場合、
(1) ユーザプログラム領域の多くがデバッグ機能のサブルーチンで消費されてしまう、
(2) デバッグ完了の時点では、ユーザが明示的にデバッグ処理を削除した正規のユーザプログラムをダウンロードしない限り、ユーザプログラムにデバッグコードが埋め込まれたままとなり、誤動作の原因になる、
という問題点があり、この解決も本発明の課題であった。
本発明は、上記従来の問題点に鑑みてなされたものであって、デバッグコードをユーザプログラム中に含める手間を無くすと共に、デバッグ作業に付随するコンパイルとダウンロードとを不要にすることができるコントローラ支援装置を提供することを目的としている。
本発明の他の目的は、運転中のいかなるタイミングであっても、ユーザプログラム中の指定された命令を自動的にデバッグコードで置き換えることができるプログラマブルコントローラを提供することにある。
上記課題を解決するために、本発明に係るコントローラ支援装置は、デバッグ機能を備え、ブレーク設定等のデバッグ指示命令を含むユーザプログラムを実行するコントローラ支援装置であって、前記ユーザプログラムを読み込む手段と、前記ユーザプログラムを構成するコントローラ専用機械語を汎用マイコンの実行コードに翻訳する翻訳手段と、縮小命令セットに対応し、前記汎用マイコンの実行コードに変換されたユーザプログラムを実行する実行手段と、前記汎用マイコンの実行コードに変換されたユーザプログラム内の擬似命令コードに、デバッグ用のコントローラファームウェアへの絶対分岐命令を埋め込む手段と、を備え、ユーザからのブレーク設定等のデバッグ指示によりブレーク指定されたユーザプログラムコードを、前記擬似命令コード内の絶対分岐命令への相対分岐命令に置き換えることで、前記実行手段の実行中に、デバッグ機能を有効化させることを特徴とする。
また、前記コントローラ支援装置において、前記実行手段は、RISC(即ち、縮小命令セット・コンピュータ命令)を使用したマイコンにより実現されることを特徴とする。
また、本発明に係るプログラマブルコントローラは、請求項1または請求項2記載のコントローラ支援装置における実行手段を構成するプログラマブルコントローラであって、デバッグ処理への分岐命令をテーブルとして、固定番地に配置することで、コントローラ内のデバッグ処理ファームウェアのコードアドレス変更が前記コントローラ支援装置へ影響しないように構成されたことを特徴とする。
本発明では、デバッグ処理手続きを予めコントローラ本体のシステムファームウェア上に構成し、ユーザアプリケーションの中の、支援ツールで参照するためだけに使われるコントローラでは実行されないコード(以下、「擬似命令コード」と呼称する)内にコントローラシステムファームウェア内のデバッグ処理への絶対分岐命令を埋め込んでおき、ユーザからのブレーク設定などのデバッグ操作が行われた段階で、ブレーク対象の命令を、予め埋め込んでおいた前記絶対分岐命令への相対分岐命令に置き換えることで、レジスタへの戻り番地の保存とシステムファームウェアへの分岐を実現している。
また、この時、分岐先をデバッグ処理そのものから分岐命令テーブルとすることで、コントローラのファームウェアの変更に起因する支援ツールの生成コードの修正を不要とし、また、コントローラと支援ツールとのバージョン依存性や機種依存性を排除するので、コントローラ本体、支援ツールとも独立して機能を更新することが可能となる。
以上説明したように、本発明のプログラマブルコントローラ及びその支援装置によれば、デバッグコードをユーザプログラム中に含める必要がないので、従来のように、デバッグ作業の都度、コンパイルとダウンロードとを行う必要がなくなる効果がある。
また、デバッグ完了時点でのデバッグ用コードの取り忘れなどの不具合を防ぐことができる効果がある。
さらに、運転中のいかなるタイミングであっても、指定されたユーザプログラムの命令を、自動的にデバッグコードに置き換えることができるので、コントローラ本体の機能アップや機種変更によるデバッグ処理コードのメモリ上の実装位置を支援ツール側で考慮する必要がなくなり、コントローラ本体と、その支援ツールとの変更の自由度が向上する効果がある。
以下、本発明のプログラマブルコントローラ及びその支援装置の最良の実施形態について、図面を参照して詳細に説明する。
図1は、本発明の実施形態に係るプログラマブルコントローラを含むコントローラ支援装置の概念的な構成を示す構成図である。
同図において、本実施形態のコントローラ支援装置は、ユーザのプログラムを入力するコントローラ支援部10と、前記入力されたプログラムを実行形式のプログラムに変換するコンパイラ11と、前記実行形式のプログラムを伝送する伝送装置12と、前記実行形式のプログラムを実行するコントローラ13(本発明の実施形態に係るプログラマブルコントローラ)と、を備える。
コントローラ支援部10は、前記ユーザのプログラムの入力を受け付ける入力装置15と、前記入力されたプログラムを表示する表示装置14と、前記入力されたプログラムを記憶するための記憶媒体16と、を備える。
なお、図1に示す構成では、コンパイラ11とコントローラ支援部10とを異なる構成要素として示しているが、両者は、デバッグ機能付きの同一のハードウェア(例えばパソコン)で構成されていてもよい。また、伝送装置12についても、これらと同一のハードウェア要素で構成されていてもよい。よって、本発明の実施形態に係るコントローラ支援装置の他の構成として、前記の構成に加えて、コンパイラ11と、伝送装置12まで含めた構成とすることも可能である。
以下、本実施形態のプログラマブルコントローラの機能について説明する。
ユーザのプログラムは、コントローラ支援部10の入力装置15に入力され、表示装置14に表示されると共に、記録媒体16に記録される。
コンパイラ11は、前記入力されたプログラムを実行形式のプログラム(オブジェクトコード)に変換する。
伝送装置12は、この実行形式のプログラムをコントローラ13に伝送する。
コントローラ13は、この伝送された実行形式のプログラムを一旦格納し、実行する。
本実施形態に係るコントローラ13は、汎用RISCマイコンを用いたコントローラであり、そのためコントローラ13の実行コードは、汎用マイコン用機械語である。よって、コンパイラ11は、ユーザプログラム→コントローラ用専用機械語→汎用マイコン用機械語の順で、コード変換を行うものとする。
以下、本実施形態に係るコントローラ13について説明する。
コントローラ13は、汎用RISCマイコン(図示は省略)と、ユーザプログラムと、ユーザプログラムが使用するデータのデータ領域を有するRAMと、システムファームウェアを格納するROMなどから成る(勿論、このコントローラ13の構成は、コントローラハードウェア機能の一部機能を実現するための構成であり、その他に、通信のためのインタフェース等があってもよい)。
ユーザプログラムは、書換え可能なROM(フラッシュメモリ等)に一旦格納しておき、そこで実行することも可能であるが、処理を高速化するため、ダウンロード時はフラッシュメモリに書込み、よりアクセス速度が高速のRAMに展開してから実行することが好ましい。
コントローラ13として、市販されている既成のコントローラ本体を使用する場合、そのシステムファームウェアは、本発明に係る支援ツールとは異なる汎用マイコン用ファームウェア開発環境で開発されたものである。また、このシステムファームウェアは、既に前記既成のコントローラ本体上に実装されている。
しかしながら、ユーザプログラムは、前述の支援ツール上で作成され、前述のとおり、コンパイラ11により、機械語に変換されており、ユーザプログラムによってアクセスされるのは、ユーザデータメモリとユーザプログラムに限られるので、通常、前記システムファームウェア上の関数のアドレスは、ユーザプログラム内からは参照されない。
以下、本発明で用いるRISCマイコンの分岐(ジャンプ)命令について説明する。分岐命令には相対分岐と絶対分岐がある。
相対分岐命令は、主にサブルーチンコールなどで用いられる命令である。ここで、相対という用語の意味は、当該実行命令(相対分岐命令)のアドレスをオリジンアドレスとして、前方何ワード(若しくは後方何ワード)分移動したアドレスに分岐せよという指定が可能であることを示している。
この相対分岐命令は、ジャンプサイズの違いなどはあるが、汎用のRISCマイコンの場合、1命令で構成されることが一般的である。また、呼び出されたサブルーチンは、その処理が終わった後の復帰先として、前記分岐命令の次の命令に戻る必要があるので、当該分岐実行時に、次の実行アドレス(戻りPC)がレジスタやスタックに退避され、当該サブルーチンの終了時に、この値をプログラムカウンタレジスタ(PC)にセットすることで、当該サブルーチンからの復帰を実現している。
一方、絶対分岐命令は、特定の物理番地をPCにセットすることで、分岐を実現する命令である。PCに設定可能な番地であれば、いかなる番地にも分岐可能である。マイコンによっては、絶対分岐用の命令は存在せず、汎用のレジスタ上にアドレスを生成し、それをPCに移動させることで、分岐を実現している。なお、絶対分岐命令においては、前述の相対分岐命令における戻りPCの退避は行われない。
以下、前述の相対分岐命令と絶対分岐命令を示す例として、ARM社の汎用RISCマイコンであるARMシリーズのアセンブラコードを参照して説明する。ARM社の汎用RISCマイコンは、汎用RISCマイコンのコアとして、世界中で広く用いられている(その仕様は、ARM社のマニュアル等を参照)。
図2は、ARM社の汎用RISCマイコンのレジスタを示す説明図である。
同図において、ARM社の汎用RISCマイコンは、汎用レジスタとしてR0〜R15(21)を備える。R14は戻りPCを保存するためのリンクレジスタ(LR)(22)として使用され、R15は実行PCを置数するレジスタ(PC)(23)として使用されている。
図3は、相対分岐命令と絶対分岐命令をARM社の汎用RISCマイコンのアセンブラコードで例示した説明図である。
同図において、blと書かれた命令(符号31)が相対分岐命令であり、この命令が実行されると、「Calc」というラベルの付いた命令への相対分岐が行われる。実際の機械語では、このようなラベルは、当該ラベルの付いた命令までの相対コード数に変換されている。この命令bl(符号31)にて、前記PC(図2の符号23で示す汎用レジスタ)への相対アドレスオフセットの加算と、前記LR(図2の符号22で示される汎用レジスタ)への戻りPC(図3の符号34で示す命令のPC)のセットとが同時に行われる。
図3の符号33で示すmov命令は、レジスタ間の値の移動命令であるが、ここでは前記LRから前記PCへ値を移動しており、制御の流れ(実行)を復帰先へ移す絶対分岐命令の役割を果たしている。よって、このmov命令の実行によって、符号31で示すbl命令の次の命令(即ち符号34で示すmov命令)のPCに分岐することになる。
以下、本発明で想定されるユーザプログラムの例を説明する。
一般に、プログラマブルコントローラで実行されるユーザプログラムには、プログラマブルコントローラ上のユーザプログラムだけで、前述の支援ツール上にユーザの作成したプログラムが復元できるように、様々な情報が埋め込まれている。これらの情報は擬似命令と呼ばれ、通常は実行されないコードとしてコントローラに格納される。
コントローラ13として汎用マイコンを用いた場合、この擬似命令は次に有効な実効命令へのジャンプ命令とし、このジャンプ命令とジャンプ先の命令との間に任意の情報を格納しておく。このようにして格納される任意の情報としては、プログラム名や、プログラムの作成年月日、プログラム画面表記時の改ページ情報などが挙げられる。
図4は、本実施形態に係るプログラマブルコントローラで実行されるユーザプログラムの1例を示す説明図である。
同図に示すように、コントローラ13で実行されるユーザプログラム(ユーザアプリケーション)は、複数のプログラムから構成されるため、それらを識別するためのプログラム番号(符号41)が、各プログラムに付けられる。その上で、ユーザは処理したいプログラムコード(符号42)を記述する。
図5は、図4で示したユーザプログラムのコントローラ専用コードへの変換例を示す説明図である。
同図において、DEF命令(符号51)は、プログラム番号(符号41)をコード内に保存しておくための擬似コードであり、コード実行上は無処理である。同様に、END命令(符号53)も、プログラムの終了位置を示すための擬似コードであり、コード実行上は無処理である。この例では、簡単のため、実行コード(符号52)中に、A、B、及びCなる変数名を使用しているが、通常はコントローラ13のアドレス番号が割り付けられている。
図6は、実際にコントローラで実行される汎用マイコンのコードの1例を示す説明図である。
同図に示すように、図5のDEF命令(符号51)は、実際にコントローラで実行される汎用マイコンのコードでは、b命令(符号61)、PG0の情報(符号62)、及びジャンプラベル(符号63)に変換される。
前記b命令は、分岐命令の一種であって、LRへの戻りPCの退避を行わない分岐命令である。ここでは、前述の支援ツールで使用するための前記PG0の情報(符号62)部分を読み飛ばし、ジャンプラベル(符号63)へ実行を移すために使用している。PG0の情報は、通常のプログラム実行では実行されることはないので、保存しておきたい任意の情報を格納しておくことが可能である。なお、符号64,65,66で示すコードは、図5に示す実行コードが汎用マイコンのコードで表記されたものであるが、本発明では重要部分ではないので、説明は省略する。
図7は、デバッグ処理への絶対分岐命令を含むユーザプログラムの1例を示す説明図である。
本発明では、前述のとおり、問題点(1)および(2)を解決することを課題としている。よって、デバッグ用の処理を予めシステムファームウェアとしてコントローラ13に組み込んでおき、かつ図7の符号81に示すように、そのシステムファームウェア内のデバッグコードのアドレスへの絶対分岐命令をユーザプログラム内の擬似命令内に置いておく。本来、支援ツールでは、システムファームウェアの関数アドレス(図7の符号83で示すBREAK_ADDR)は、参照の必要はないが、ブレーク関数のアドレスは高々1つのみであるので、コントローラファームウェアのコンパイル後に、そのアドレスを取得し、固定値として支援ツールに持たせることは難しいことではない。
図8は、本発明の実施形態に係るプログラマブルコントローラにおけるコントローラ13のメモリ配置を示す説明図である。
同図に示すように、ユーザプログラムは、コントローラ13が内蔵するメモリにおいて、符号92で示すプログラム領域の中に格納されている。また、ブレーク処理(符号95)は、予めシステムファームウェア(符号93)の中に定義されている。図7に示す擬似命令内で指定しているブレーク処理のアドレスは、符号94で示されるアドレスであり、システムファームウェアの生成時には確定したアドレスとなっている。今、ユーザ指示により、或る命令に対してブレーク設定を行うことを考える。支援ツール上で、ブレークしたい命令位置が選択されたら、その命令を置き換える分岐命令を生成する。ここで生成される分岐命令は、絶対分岐命令ではなく、擬似命令中の絶対分岐命令への相対分岐命令を用いる。
ちなみに、絶対分岐命令を用いた場合は、分岐先アドレスの汎用レジスタへの準備、PCへのセット、及び戻り番地の退避のため、最低でも3命令が必要となり、実行中の命令を置き換えるとユーザプログラムの動作が異常となる可能性がある。また、これを避けるためには、置き換え処理中の割込み禁止などの手段が必要となることや、ユーザプログラムの最後の命令が置き換えられない可能性がある。
ここで、システムファームウェア内のブレーク処理へ直接相対分岐としない理由は、アドレスオフセットが相対分岐可能範囲を超えている可能性があるからであり、また、そもそもユーザプログラムがコントローラメモリのどこに配置されるかは、実際にユーザプログラムがコントローラ13によってRAMに配置された時点で初めて分かることであり、前述の支援ツール上では把握できないことだからである。
ユーザプログラム内の特定の位置への相対分岐は、ユーザプログラムのジャンプやループ処理で一般的に行われているものであり、そのアドレス生成は、前述の支援ツールのコンパイラ機能などを用いれば難しくない。
説明を戻して、前述のブレークしたい命令位置の命令を置き換える分岐命令が生成されたならば、前述の支援ツールより、コントローラ13に対して、この命令の置換処理を依頼する。この場合、置き換え対象となる命令は、高々1命令(分岐命令1つ分)なので、特に割り込み禁止などの処理を行わなくても、運転中に誤動作を起こすことなく、この命令置換が可能となる。
このブレーク用の命令の置き換え処理は、前述の支援ツールを使用するユーザからのデバッグ操作があった段階でRAM上に展開されたユーザプログラムに対して行うこととする。このようにすれば、デバッグ終了後にはコントローラ13をリセット等さえすれば、フラッシュメモリから、デバッグ置き換えコードを含まないユーザプログラムが再展開されるので、デバッグ処理用コードの削除し忘れを無くすことができる。
図9は、ユーザプログラムのある命令をブレーク処理へのジャンプ命令に置き換えたユーザプログラムの1例を示す説明図である。
同図に示すユーザプログラムの処理を順に追っていくと、まず符号101で示す命令Bが実行され、その結果、PG0_CODEなるラベルのついた命令(符号104)に実行が移る。そこから符号105で示す一連の命令を実行し、置き換え命令(符号106)に到達する。この置き換え命令は、BL(相対分岐)命令であるので、LR(図2の符号22で示すレジスタ)に、次の命令(符号107)のアドレスが退避される。そして、ラベル(JMP_BREAK)に示された番地(符号102)(実際には実行中の命令からの相対オフセットが設定されている)へ移動する。すると、そこにはPCにアドレスをセットするコード(符号103)が記述されているので、PCへのアドレスセットを実行し、システムファームウェア上にあるブレーク処理を実行する。
このブレーク処理が完了したら、ブレーク処理内で置き換えた命令を元に戻し、LRに格納されたアドレスから、置き換えた命令の番地(符号106)を算出した後、制御の流れをユーザプログラムに戻す(ここで、ちなみにLRの示す番地に直接戻すようにすると、相対分岐命令に置き換えられた命令の処理が実行されないままとなる)。
図10は、ジャンプテーブルを参照してブレーク処理を実行させる方法を説明する説明図である。
なお、デバッグ関数のアドレスは、数は少ないものの、システムファームウェアが変更になるたびに変わるアドレスとなる。そのため、擬似命令中に埋め込む絶対分岐命令も、コントローラファームウェアの修正のたびに変更を行わなければならなくなる。しかしながら、本体ファームウェアの修正や変更は、支援ツールの変更と非同期に発生するものであり、本体ファームウェアが変更される度に支援ツールの変更を行っていたのでは非効率的である。
そこで、図10に示すように、支援ツールで生成する擬似命令中の絶対分岐先を、デバッグ処理そのものの先頭アドレスではなく、デバッグ処理へ分岐するジャンプテーブル111へのアドレスとする。その上で、ジャンプテーブル111の中身(符号112)を、実際のブレーク処理関数の先頭アドレス(符号113)への分岐命令としておけば、このジャンプテーブル111の位置が変更とならない限り、本体ファームウェアの修正が支援ツールに影響しないようになる。
本発明の実施形態に係るプログラマブルコントローラを含むコントローラ支援装置の概念的な構成を示す構成図である。 ARM社の汎用RISCマイコンのレジスタを示す説明図である。 相対分岐命令と絶対分岐命令をARM社の汎用RISCマイコンのアセンブラコードで例示した説明図である。 本実施形態に係るプログラマブルコントローラで実行されるユーザプログラムの1例を示す説明図である。 図4で示したユーザプログラムのコントローラ専用コードへの変換例を示す説明図である。 実際にコントローラで実行される汎用マイコンのコードの1例を示す説明図である。 デバッグ処理への絶対分岐命令を含むユーザプログラムの1例を示す説明図である。 本発明の実施形態に係るプログラマブルコントローラにおけるコントローラ13のメモリ配置を示す説明図である。 ユーザプログラムのある命令をブレーク処理へのジャンプ命令に置き換えたユーザプログラムの1例を示す説明図である。 ジャンプテーブルを参照してブレーク処理を実行させる方法を説明する説明図である。 従来の汎用マイコンコントローラにおけるブレークコードの配置を示す説明図である。
符号の説明
10 コントローラ支援部
11 コンパイラ
12 伝送装置
13 コントローラ(本発明に係るプログラマブルコントローラ)
14 表示装置
15 入力装置
16 記録媒体
21 汎用レジスタ
71 コントローラメモリ
72 ユーザプログラム
74 システムファームウェア
111 ジャンプテーブル

Claims (3)

  1. デバッグ機能を備え、ブレーク設定等のデバッグ指示命令を含むユーザプログラムを実行するコントローラ支援装置であって、
    前記ユーザプログラムを読み込む手段と、
    前記ユーザプログラムを構成するコントローラ専用機械語を汎用マイコンの実行コードに翻訳する翻訳手段と、
    縮小命令セットに対応し、前記汎用マイコンの実行コードに変換されたユーザプログラムを実行する実行手段と、
    前記汎用マイコンの実行コードに変換されたユーザプログラム内の擬似命令コードに、デバッグ用のコントローラファームウェアへの絶対分岐命令を埋め込む手段と、を備え、
    ユーザからのブレーク設定等のデバッグ指示によりブレーク指定されたユーザプログラムコードを、前記擬似命令コード内の絶対分岐命令への相対分岐命令に置き換えることで、前記実行手段の実行中に、デバッグ機能を有効化させることを特徴とするコントローラ支援装置。
  2. 前記実行手段は、RISC(即ち、縮小命令セット・コンピュータ命令)を使用したマイコンにより実現されることを特徴とする請求項1記載のコントローラ支援装置。
  3. 請求項1または請求項2記載のコントローラ支援装置における実行手段を構成するプログラマブルコントローラであって、デバッグ処理への分岐命令をテーブルとして、固定番地に配置することで、コントローラ内のデバッグ処理ファームウェアのコードアドレス変更が前記コントローラ支援装置へ影響しないように構成されたことを特徴とするプログラマブルコントローラ。
JP2006064365A 2006-03-09 2006-03-09 コントローラ支援装置およびプログラマブルコントローラ Active JP4802775B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006064365A JP4802775B2 (ja) 2006-03-09 2006-03-09 コントローラ支援装置およびプログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006064365A JP4802775B2 (ja) 2006-03-09 2006-03-09 コントローラ支援装置およびプログラマブルコントローラ

Publications (2)

Publication Number Publication Date
JP2007241728A JP2007241728A (ja) 2007-09-20
JP4802775B2 true JP4802775B2 (ja) 2011-10-26

Family

ID=38587202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006064365A Active JP4802775B2 (ja) 2006-03-09 2006-03-09 コントローラ支援装置およびプログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP4802775B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4919091B2 (ja) * 2008-03-15 2012-04-18 オムロン株式会社 Plcシステム
JP5849592B2 (ja) * 2011-10-07 2016-01-27 富士電機株式会社 プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04184544A (ja) * 1990-11-20 1992-07-01 Fujitsu Ltd ブレークポイント制御方式
JPH04332051A (ja) * 1991-05-07 1992-11-19 Fuji Electric Co Ltd 機器組み込み形マイクロコンピュータのプログラムデバッグ方式
JPH06139102A (ja) * 1992-10-27 1994-05-20 Shibaura Eng Works Co Ltd ディジタル制御装置およびそのデバッグ方法
JPH09265413A (ja) * 1996-03-29 1997-10-07 Matsushita Electric Works Ltd プログラマブルコントローラのデバッグシステム
JPH11224209A (ja) * 1998-02-06 1999-08-17 Mitsubishi Electric Corp デバッグ方法

Also Published As

Publication number Publication date
JP2007241728A (ja) 2007-09-20

Similar Documents

Publication Publication Date Title
US20080127113A1 (en) Method and system for implementing watchpoints
JP5226328B2 (ja) コード変換装置
JP4718901B2 (ja) 命令実行装置、デバッグ方法、デバッグ装置及びデバッグプログラム
JP2002099312A (ja) プログラマブルコントローラおよび制御プログラム開発支援装置
JP2009146229A (ja) プログラマブルコントローラシステム
JP2017142794A (ja) プログラマブルコントローラシステム、そのコントローラ、支援装置、hci装置、二重化コントローラシステム
JP4802775B2 (ja) コントローラ支援装置およびプログラマブルコントローラ
JP2009157533A (ja) プログラマブルコントローラシステム
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
JP2009104252A (ja) デバッグ支援装置およびデバッグ支援方法
JP2012027639A (ja) プログラマブルコントローラ、およびプログラマブルコントローラのデバッグ方法
JP5906609B2 (ja) デバッグ支援プログラム、デバッグ支援方法及びデバッグ支援システム
JPH1031595A (ja) シミュレーション装置及びシミュレーション方法
JP5589670B2 (ja) デバッグ方法
JP2008204023A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法
JP4784355B2 (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP5850732B2 (ja) 半導体装置及びその制御方法
JP2011090511A (ja) 実行プログラム、コンパイラ、実行プログラム動作修正装置及び実行プログラム動作修正方法
JP2002259121A (ja) ソースラインデバッグ装置
JP2007188366A (ja) コンパイル装置
JP2004272629A (ja) プログラマブルコントローラ用機器並びにプログラマブルコントローラ用機器におけるプログラム更新方法並びにプログラム起動方法
JP5109808B2 (ja) 追加実行可能情報生成装置、情報処理装置、及びプログラム
JPH07200352A (ja) データプロセッサ、プログラム翻訳方法、及びデバッグツール
JP2011159169A (ja) プログラム開発支援装置、プログラムデバッグ方法、及びプログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080919

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080919

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080919

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101020

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20110422

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: 20110712

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110725

R150 Certificate of patent or registration of utility model

Ref document number: 4802775

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: 20140819

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250