JP4802775B2 - コントローラ支援装置およびプログラマブルコントローラ - Google Patents
コントローラ支援装置およびプログラマブルコントローラ Download PDFInfo
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Programmable Controllers (AREA)
Description
従来、プログラマブルコントローラの制御対象は、スイッチのON/OFFなど、ビット操作が主だったため、ビット演算を高速に行える専用LSI(ASIC)が用いられることが多かった。しかしながら、ASICは高価であって、低性能で済ませるべき製品や、低コストにすることが要求される製品には用いることができなかった。また、近年のLSIの高速化に伴い、ASICを用いなくても高速の汎用マイコンを用いることで十分に要求する演算性能が得られることがあるので、実際、ユーザプログラムの実行LSIとしては、ASICの代用として汎用マイコンを用いたプログラマブルコントローラも多数存在する。
図11(a)に示すように、コントローラメモリ71には、当初、ユーザプログラム72と、システムファームウェア74とが配置されているが、デバック機能を実行させる場合、図11(b)に示すように、ユーザプログラム72には、ユーザプログラム72aとユーザプログラム72aとの間にブレーク処理のコード73が挿入される。
(1) ユーザプログラム領域の多くがデバッグ機能のサブルーチンで消費されてしまう、
(2) デバッグ完了の時点では、ユーザが明示的にデバッグ処理を削除した正規のユーザプログラムをダウンロードしない限り、ユーザプログラムにデバッグコードが埋め込まれたままとなり、誤動作の原因になる、
という問題点があり、この解決も本発明の課題であった。
また、本発明に係るプログラマブルコントローラは、請求項1または請求項2記載のコントローラ支援装置における実行手段を構成するプログラマブルコントローラであって、デバッグ処理への分岐命令をテーブルとして、固定番地に配置することで、コントローラ内のデバッグ処理ファームウェアのコードアドレス変更が前記コントローラ支援装置へ影響しないように構成されたことを特徴とする。
さらに、運転中のいかなるタイミングであっても、指定されたユーザプログラムの命令を、自動的にデバッグコードに置き換えることができるので、コントローラ本体の機能アップや機種変更によるデバッグ処理コードのメモリ上の実装位置を支援ツール側で考慮する必要がなくなり、コントローラ本体と、その支援ツールとの変更の自由度が向上する効果がある。
図1は、本発明の実施形態に係るプログラマブルコントローラを含むコントローラ支援装置の概念的な構成を示す構成図である。
ユーザのプログラムは、コントローラ支援部10の入力装置15に入力され、表示装置14に表示されると共に、記録媒体16に記録される。
伝送装置12は、この実行形式のプログラムをコントローラ13に伝送する。
本実施形態に係るコントローラ13は、汎用RISCマイコンを用いたコントローラであり、そのためコントローラ13の実行コードは、汎用マイコン用機械語である。よって、コンパイラ11は、ユーザプログラム→コントローラ用専用機械語→汎用マイコン用機械語の順で、コード変換を行うものとする。
コントローラ13は、汎用RISCマイコン(図示は省略)と、ユーザプログラムと、ユーザプログラムが使用するデータのデータ領域を有するRAMと、システムファームウェアを格納するROMなどから成る(勿論、このコントローラ13の構成は、コントローラハードウェア機能の一部機能を実現するための構成であり、その他に、通信のためのインタフェース等があってもよい)。
相対分岐命令は、主にサブルーチンコールなどで用いられる命令である。ここで、相対という用語の意味は、当該実行命令(相対分岐命令)のアドレスをオリジンアドレスとして、前方何ワード(若しくは後方何ワード)分移動したアドレスに分岐せよという指定が可能であることを示している。
同図において、ARM社の汎用RISCマイコンは、汎用レジスタとしてR0〜R15(21)を備える。R14は戻りPCを保存するためのリンクレジスタ(LR)(22)として使用され、R15は実行PCを置数するレジスタ(PC)(23)として使用されている。
同図において、blと書かれた命令(符号31)が相対分岐命令であり、この命令が実行されると、「Calc」というラベルの付いた命令への相対分岐が行われる。実際の機械語では、このようなラベルは、当該ラベルの付いた命令までの相対コード数に変換されている。この命令bl(符号31)にて、前記PC(図2の符号23で示す汎用レジスタ)への相対アドレスオフセットの加算と、前記LR(図2の符号22で示される汎用レジスタ)への戻りPC(図3の符号34で示す命令のPC)のセットとが同時に行われる。
一般に、プログラマブルコントローラで実行されるユーザプログラムには、プログラマブルコントローラ上のユーザプログラムだけで、前述の支援ツール上にユーザの作成したプログラムが復元できるように、様々な情報が埋め込まれている。これらの情報は擬似命令と呼ばれ、通常は実行されないコードとしてコントローラに格納される。
同図に示すように、コントローラ13で実行されるユーザプログラム(ユーザアプリケーション)は、複数のプログラムから構成されるため、それらを識別するためのプログラム番号(符号41)が、各プログラムに付けられる。その上で、ユーザは処理したいプログラムコード(符号42)を記述する。
同図において、DEF命令(符号51)は、プログラム番号(符号41)をコード内に保存しておくための擬似コードであり、コード実行上は無処理である。同様に、END命令(符号53)も、プログラムの終了位置を示すための擬似コードであり、コード実行上は無処理である。この例では、簡単のため、実行コード(符号52)中に、A、B、及びCなる変数名を使用しているが、通常はコントローラ13のアドレス番号が割り付けられている。
同図に示すように、図5のDEF命令(符号51)は、実際にコントローラで実行される汎用マイコンのコードでは、b命令(符号61)、PG0の情報(符号62)、及びジャンプラベル(符号63)に変換される。
本発明では、前述のとおり、問題点(1)および(2)を解決することを課題としている。よって、デバッグ用の処理を予めシステムファームウェアとしてコントローラ13に組み込んでおき、かつ図7の符号81に示すように、そのシステムファームウェア内のデバッグコードのアドレスへの絶対分岐命令をユーザプログラム内の擬似命令内に置いておく。本来、支援ツールでは、システムファームウェアの関数アドレス(図7の符号83で示すBREAK_ADDR)は、参照の必要はないが、ブレーク関数のアドレスは高々1つのみであるので、コントローラファームウェアのコンパイル後に、そのアドレスを取得し、固定値として支援ツールに持たせることは難しいことではない。
同図に示すように、ユーザプログラムは、コントローラ13が内蔵するメモリにおいて、符号92で示すプログラム領域の中に格納されている。また、ブレーク処理(符号95)は、予めシステムファームウェア(符号93)の中に定義されている。図7に示す擬似命令内で指定しているブレーク処理のアドレスは、符号94で示されるアドレスであり、システムファームウェアの生成時には確定したアドレスとなっている。今、ユーザ指示により、或る命令に対してブレーク設定を行うことを考える。支援ツール上で、ブレークしたい命令位置が選択されたら、その命令を置き換える分岐命令を生成する。ここで生成される分岐命令は、絶対分岐命令ではなく、擬似命令中の絶対分岐命令への相対分岐命令を用いる。
同図に示すユーザプログラムの処理を順に追っていくと、まず符号101で示す命令Bが実行され、その結果、PG0_CODEなるラベルのついた命令(符号104)に実行が移る。そこから符号105で示す一連の命令を実行し、置き換え命令(符号106)に到達する。この置き換え命令は、BL(相対分岐)命令であるので、LR(図2の符号22で示すレジスタ)に、次の命令(符号107)のアドレスが退避される。そして、ラベル(JMP_BREAK)に示された番地(符号102)(実際には実行中の命令からの相対オフセットが設定されている)へ移動する。すると、そこにはPCにアドレスをセットするコード(符号103)が記述されているので、PCへのアドレスセットを実行し、システムファームウェア上にあるブレーク処理を実行する。
なお、デバッグ関数のアドレスは、数は少ないものの、システムファームウェアが変更になるたびに変わるアドレスとなる。そのため、擬似命令中に埋め込む絶対分岐命令も、コントローラファームウェアの修正のたびに変更を行わなければならなくなる。しかしながら、本体ファームウェアの修正や変更は、支援ツールの変更と非同期に発生するものであり、本体ファームウェアが変更される度に支援ツールの変更を行っていたのでは非効率的である。
11 コンパイラ
12 伝送装置
13 コントローラ(本発明に係るプログラマブルコントローラ)
14 表示装置
15 入力装置
16 記録媒体
21 汎用レジスタ
71 コントローラメモリ
72 ユーザプログラム
74 システムファームウェア
111 ジャンプテーブル
Claims (3)
- デバッグ機能を備え、ブレーク設定等のデバッグ指示命令を含むユーザプログラムを実行するコントローラ支援装置であって、
前記ユーザプログラムを読み込む手段と、
前記ユーザプログラムを構成するコントローラ専用機械語を汎用マイコンの実行コードに翻訳する翻訳手段と、
縮小命令セットに対応し、前記汎用マイコンの実行コードに変換されたユーザプログラムを実行する実行手段と、
前記汎用マイコンの実行コードに変換されたユーザプログラム内の擬似命令コードに、デバッグ用のコントローラファームウェアへの絶対分岐命令を埋め込む手段と、を備え、
ユーザからのブレーク設定等のデバッグ指示によりブレーク指定されたユーザプログラムコードを、前記擬似命令コード内の絶対分岐命令への相対分岐命令に置き換えることで、前記実行手段の実行中に、デバッグ機能を有効化させることを特徴とするコントローラ支援装置。 - 前記実行手段は、RISC(即ち、縮小命令セット・コンピュータ命令)を使用したマイコンにより実現されることを特徴とする請求項1記載のコントローラ支援装置。
- 請求項1または請求項2記載のコントローラ支援装置における実行手段を構成するプログラマブルコントローラであって、デバッグ処理への分岐命令をテーブルとして、固定番地に配置することで、コントローラ内のデバッグ処理ファームウェアのコードアドレス変更が前記コントローラ支援装置へ影響しないように構成されたことを特徴とするプログラマブルコントローラ。
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)
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)
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 | デバッグ方法 |
-
2006
- 2006-03-09 JP JP2006064365A patent/JP4802775B2/ja active Active
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 |