JP2006018759A - 制御装置及び方法 - Google Patents
制御装置及び方法 Download PDFInfo
- Publication number
- JP2006018759A JP2006018759A JP2004198307A JP2004198307A JP2006018759A JP 2006018759 A JP2006018759 A JP 2006018759A JP 2004198307 A JP2004198307 A JP 2004198307A JP 2004198307 A JP2004198307 A JP 2004198307A JP 2006018759 A JP2006018759 A JP 2006018759A
- Authority
- JP
- Japan
- Prior art keywords
- control
- address
- control data
- control program
- storage means
- 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
Links
Images
Abstract
【課題】制御プログラムと又は制御データが変更される場合に、制御プログラムの書き替えが必要となる量を抑え、制御プログラム及び制御データを容易かつ迅速に変更可能とする。
【解決手段】本発明の一態様に係る制御装置は、命令コードと論理的変数名とを含む制御プログラムを記憶する制御プログラム記憶手段と、論理的変数名の実体である制御データを記憶する制御データ記憶手段と、論理的変数名を仮アドレスに変換する第1変換手段33と、仮アドレスを制御データ記憶手段における制御データの記憶領域を表す物理アドレスに変換する第2変換手段34と、命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段とを具備する。
【選択図】 図4
【解決手段】本発明の一態様に係る制御装置は、命令コードと論理的変数名とを含む制御プログラムを記憶する制御プログラム記憶手段と、論理的変数名の実体である制御データを記憶する制御データ記憶手段と、論理的変数名を仮アドレスに変換する第1変換手段33と、仮アドレスを制御データ記憶手段における制御データの記憶領域を表す物理アドレスに変換する第2変換手段34と、命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段とを具備する。
【選択図】 図4
Description
本発明は、制御プログラムにしたがって産業用システムを制御する制御装置及び方法に関する。
例えば、鉄鋼プラント、製紙プラント、自動車の組み立てなどに用いられるFA(Factory Automation)、化学プラントなどに用いられるPA(Process Automation)、上下水道システムを含む公共システムなどのような各種産業用システムは、制御装置を使用して制御される。
図22は、従来の制御装置の一例を示すブロック図である。
制御装置1の一例としては、プログラマブルコントローラなどがある。制御装置1は、データを入出力モジュール2経由で制御対象3に提供する。また、入出力モジュール2は、制御対象3から受け付けたデータを制御装置1に提供する。制御対象3からのデータは、入出力モジュール2、I/Oインタフェース4、バス5経由で、例えば制御データメモリ6に記憶される。また、例えば制御データメモリ6に記憶されているデータは、バス5、I/Oインタフェース4、入出力モジュール2経由で、制御対象3に提供される。
CPU(Central Processing Unit)7は、制御プログラムメモリ8に記憶されている制御プログラム8aに含まれている命令語にしたがって、制御データメモリ6に対するアクセスを行うとともに、制御処理を実行する。すなわち、CPU7は、制御処理を実行し、制御データメモリ6からの制御データの読み出し又は制御データメモリ6への制御データの書き込みを行う。
これにより、制御装置1の制御処理が実行される。制御装置1は、モニタ装置9から通信インタフェース10により各種命令を受け付ける。
制御装置1には、CPU7、制御プログラムメモリ8、I/Oインタフェース4、制御データメモリ6、通信インタフェース10の他にも、プログラムメモリ11、データメモリ12を具備するとしてもよい。制御装置1内の各部分間では、バス5経由でプログラム及び各種データがやり取りされる。
図23は、制御プログラムメモリ8の内容と制御データメモリ6の内容の一例を示すブロック図である。
制御プログラムメモリ8に記憶されている制御プログラム8aは命令語13を含む。命令語13は、命令コード(OPコード)を格納する命令コード部13aと命令コードにしたがってアクセスを行うアクセス先を格納するオペランド部13bとから構成される。オペランド部13bには、通常、制御データの物理アドレスが格納される。
一般的に、CPU7は、命令語13に格納されている物理アドレスにしたがって、制御データ14をアクセスする。このように、命令語13のオペランド部13bに物理アドレスを格納することにより、制御プログラム8a実行時の処理を簡略化することが可能である。
従来のプログラマブルコントローラとして、命令語のオペランド部に変数名を格納する技術がある(例えば特許文献1参照)。
特願平11−196457号
命令語13のオペランド部13bに物理アドレスが格納されている制御装置1では、制御プログラム8aの変更に伴って制御データの変更(追加、挿入、削除、移動)が発生した場合に、制御プログラム8aの各オペランド部13bに格納されている物理アドレスを大幅に書き替える必要があり、労力及び時間がかかる。
特に、制御プログラム8aが変更され、命令語の間に新たな命令語が挿入される場合又は制御データ群の間に新たな制御データが挿入される場合は、制御プログラム8a又は制御データにおいて書き替えが必要となる部分が多くなる。
そのため、制御プログラム8aを変更する場合、一般的には、制御プログラム8aの実行を長時間停止状態とし、制御プログラム8aにおけるオペランド部13bの内容の書き替え作業が行われる。
図24は、制御プログラム8aが変更された場合の制御プログラムメモリ8の記憶状態の変化例を示すブロック図である。
制御プログラム8aが制御プログラム15に変更された場合、一般的に、変更後の制御プログラム15は、制御プログラムメモリ8の空き領域であり変更前の制御プログラム8aと別の記憶領域に記憶される。
このように、従来では、制御プログラム8aを変更すると変更前と後とで記憶領域も変更されるため、制御プログラム8aを実行させながら制御プログラム8aを変更させることは困難である。
図25は、制御プログラム8aの変更に伴う制御データメモリ6の記憶状態の変化例を示すブロック図である。
制御プログラム8aから制御プログラム15に変更された場合に、制御に利用されるデータも制御データ16から制御データ17に変更される。従来においては、変更後の制御データ17は、制御データメモリ6の空き領域であり変更前の制御データ16と別の記憶領域に記憶される。
このため、制御プログラム15のオペランド部には、変更後の制御データ17を示す物理アドレスが格納されるように、制御プログラム15を書き替える必要がある。物理アドレスの変化した制御データの数が多くなるほど、制御プログラムの書き替えが必要となる量も多くなる。
以上のように、従来においては、制御プログラム8a実行中に制御プログラム8aを変更することは困難であり、また制御プログラム8aの変更に時間及び労力がかかるという問題がある。
特に、命令語13のオペランド部13bに物理アドレスが格納されている場合には、制御データの記憶領域が移動すると、各命令語13のオペランド部13bに格納されている各物理アドレスを書き替える必要がある。
上記特許文献1では、命令語に対して変数名が用いられるが、例えば制御プログラムに新たに変数が追加、挿入、削除されるなどのような、制御プログラムに対して変更が行われる場合については特に考慮されていない。
本発明は、以上のような実情に鑑みてなされたもので、制御プログラムの変更に伴って制御データの追加、挿入、削除などの変更がある場合であっても、制御プログラムの書き替えが必要となる量を抑え、制御プログラム及び制御データを容易かつ迅速に変更可能な制御装置及び方法を提供することを目的とする。
本発明を実現するにあたって講じた具体的手段について以下に説明する。
第1の例として、上記課題は、命令コードと論理的変数名とを含む制御プログラムを記憶する制御プログラム記憶手段と、論理的変数名の実体である制御データを記憶する制御データ記憶手段と、論理的変数名を、論理的変数名に対応する仮アドレスに変換する第1変換手段と、仮アドレスを、制御データ記憶手段における制御データの記憶領域を表す物理アドレスに変換する第2変換手段と、命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段とを具備する制御装置により解決される。
第2の例として、上記課題は、命令コードとオフセットアドレスとを含む制御プログラムを記憶する制御プログラム記憶手段と、制御プログラムで使用される制御データを記憶する制御データ記憶手段と、オフセットアドレスと制御データ記憶手段における制御データに対応する先頭アドレスを示すベースアドレスとに基づいて、制御データ記憶手段における制御データの記憶領域を表す物理アドレスを求める変換手段と、命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段とを具備する制御装置により解決される。
第3の例として、上記課題は、命令コードと制御変数とを含む制御プログラムを記憶する制御プログラム記憶手段と、制御プログラムで使用される制御データを記憶する制御データ記憶手段と、制御変数を、制御変数に対応するオフセットアドレスに変換する第1変換手段と、オフセットアドレスと制御データ記憶手段における制御データに対応する先頭アドレスを示すベースアドレスとに基づいて制御データ記憶手段における制御データの記憶領域を表す物理アドレスを求める第2変換手段と、命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段とを具備する制御装置により解決される。
第4の例として、上記課題は、命令コードと、ベースアドレスと、オフセットアドレスとを含む制御プログラムを記憶する制御プログラム記憶手段と、制御プログラムで使用される制御データを記憶する制御データ記憶手段と、制御データ記憶手段における制御データの記憶領域を表す物理アドレスに対応して設定されているベースアドレスとオフセットアドレスとに基づいて物理アドレスを求める変換手段と、命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段とを具備する制御装置により解決される。
第5の例として、上記課題は、命令コード、ベースアドレス、オフセットアドレス、新規の制御変数が追加される前から構造体を構成していた制御変数の数と構造体に追加された制御変数の数とのうちのいずれかを示す要素数、構造体を含む構造体配列のうちで構造体を表すためのインデックス値を含む制御プログラムを記憶する制御プログラム記憶手段と、構造体を構成する制御変数の実体である制御データを記憶する制御データ記憶手段と、制御データ記憶手段における制御データの記憶領域を表す物理アドレスに対応して設定されているベースアドレス、オフセットアドレス、要素数、インデックス値とに基づいて物理アドレスを求める変換手段と、命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段とを具備する制御装置により解決される。
本発明においては、制御プログラムの変更に伴って制御データの追加、挿入、削除などの変更がある場合に、制御プログラム及び制御データの変更部分の数を抑えることができ、制御プログラム及び制御データの変更を容易かつ迅速に行うことができ、制御プログラムの処理を継続させつつ制御プログラムを変更できる。
以下、図面を参照しながら本発明の実施の形態について説明する。なお、上記図22及び以下の各図において同様の部分については同様の符号を付して説明を省略する。
(第1の実施の形態)
本実施の形態では、制御プログラムの命令語におけるオペランド部に論理的変数名を格納させることにより、制御プログラムについて制御変数が追加、挿入、削除等されるような変更を迅速に実現可能とする制御装置について説明する。
本実施の形態では、制御プログラムの命令語におけるオペランド部に論理的変数名を格納させることにより、制御プログラムについて制御変数が追加、挿入、削除等されるような変更を迅速に実現可能とする制御装置について説明する。
本実施の形態では、論理的変数名を用いたプログラミングを可能とし、制御プログラムに含まれる論理的変数名を自動的に制御データメモリの物理アドレスに変換し、制御データへのアクセスを行う。
また、本実施の形態では、論理的変数名の追加、挿入、削除などの変更が発生した場合に、変更された部分についての論理的変数名と追加された部分に用いられる制御データの記憶されている物理アドレスとの対応関係を記憶し、変更されていない部分については変更されていない部分に用いられる制御データをそのまま継続使用可能とする。これにより、制御プログラムの変更部分を少なくすることができ、制御プログラムが変更された場合でもこの制御プログラムを連続して実行可能となる。
図1は、本実施の形態に係る制御装置の一例を示すブロック図である。
制御装置18は、制御プログラム実行回路19、制御プログラムメモリ8、制御データメモリ6、I/Oインタフェース4、通信インタフェース10を具備する。また、制御装置18は、CPU7、プログラムメモリ11、データメモリ12を具備するとしてもよい。
制御装置18内部では、バス5経由で各構成要素の間の制御プログラム及びデータのやり取りが行われる。制御装置18の一例としては、プログラマブルコントローラなどがある。
制御プログラム実行回路19としては、例えばマイクロプロセッサ、中央処理装置などが用いられる。
制御プログラム実行回路19は、制御プログラムメモリ8から制御プログラム20の命令語を順次読み出し、この命令語のオペランド部に格納されている論理的変数名を物理アドレスに変換し、この物理アドレスにしたがって制御データメモリ6に対する制御データの読み出し又は書き込みを実行する。
そして、制御プログラム実行回路19は、制御プログラム20の命令語に基づいて実行された処理結果を示すデータをI/Oインタフェース4経由で入出力モジュール2に提供し、あるいは処理結果を示すデータを制御データメモリ6に書き込む。
これにより、制御装置18による制御処理が実行される。制御装置18は、通信インタフェース10によりモニタ装置21から各種命令を受け付ける。
図2は、制御プログラム20に含まれている命令語の一例を示すブロック図である。
命令語22は、命令コード部22aとオペランド部22bとを具備する。本実施の形態において、オペランド部22bには、制御データメモリ6の物理アドレスではなく、例えばASCIIコードなどで表現された論理的変数名が格納される。
図3は、制御プログラム実行回路19の一例を示すブロック図である。
制御プログラム実行回路19は、データバッファ23、データレジスタ24、命令レジスタ25、命令デコーダ26、演算部27、ワークレジスタ28、アドレス変換部29、命令カウンタ30、アドレスバッファ31、バス制御部32を具備する。
データバッファ23は、制御プログラムメモリ8から読み出された命令語を記憶する。また、データバッファ23は、制御データメモリ6から読み出された制御データを記憶する。また、データバッファ23は、演算部27による処理によって得られ、制御データメモリ6に書き込まれる制御データを、データレジスタ24経由で受け付け、記憶する。
すなわち、このデータバッファ23は、制御プログラムメモリ8から読み出された命令語、制御データメモリ6から読み出された制御データ、制御プログラム実行回路19から制御データメモリ6に書き込まれる制御データを一時記憶する。
命令レジスタ25は、制御プログラムメモリ8から読み出された命令語を、データバッファ23経由で受け付け、記憶する。
命令デコーダ26は、命令レジスタ25に記憶されている命令語をデコードし、演算部27に提供する。
演算部27は、データレジスタ24に記憶されている制御データを用いて、命令デコーダ26から受け付けたデコード後の命令語にしたがって制御処理を実行する。演算部27は、制御処理を実行する場合にワークレジスタ28を用いる場合もある。
データレジスタ24は、制御データメモリ6から読み出された制御データを、データバッファ23経由で受け付け、記憶する。また、データレジスタ24は、演算部27による処理によって得られ、制御データメモリ6に書き込まれる制御データを記憶する。このデータレジスタ24に記憶されており制御データメモリ6に書き込まれる制御データは、その後データバッファ23経由で、制御データメモリ6に記憶される。
アドレス変換部29は、命令レジスタ25に記憶されている命令語のオペランド部に格納されている論理変数名を、制御データメモリ6の物理アドレスに変換し、アドレスバッファ31に提供する。
アドレスバッファ31は、アドレス変換部29によって得られた物理アドレスを記憶する。このアドレス変換部29に記憶されている物理アドレスにしたがって、制御データメモリ6からの制御データの読み出し、又はデータバッファ23に記憶されている制御データの制御データメモリ6への書き込みが行われる。
命令カウンタ30は、制御プログラム20の実行順序を制御する。
バス制御部32は、他の構成要素からバス5を経由して行われる命令語又は制御データのやり取りを制御する。このバス制御部32による制御により、制御プログラムメモリ8からバス5経由で命令語が受け付けられ、データバッファ23に記憶される。また、バス制御部32による制御により、アドレスバッファ31に記憶されている物理アドレスで示され制御データメモリ6の記憶領域からバス5経由で制御データが受け付けられ、データバッファ23に記憶される。また、バス制御部32による制御により、アドレスバッファ31に記憶されている物理アドレスで示される制御データメモリ6の記憶領域に、データバッファ23に記憶されている制御データが書き込まれる。
上述したように、本実施の形態に係る制御プログラム実行回路19は、制御プログラムメモリ8から命令語を読み出し、この命令語のオペランド部に格納されている論理的変数名を変換して制御データメモリ6に対するアクセスを行う。
制御プログラム実行回路19では、命令レジスタ25に記憶された命令語のオペランド部の内容がそのまま制御データメモリ6へのアクセスに使用されるのではなく、命令レジスタ25に記憶された命令語のオペランド部の内容がアドレス変換部29を用いて制御データメモリ6の物理アドレスに変換され、制御データメモリ6へのアクセスに使用される。
図4は、アドレス変換部29の一例を示すブロック図である。
アドレス変換部29は、変換部33、アドレス変換メモリ34を具備する。
変換部33は、命令レジスタ25から受け付けた論理的変数名を、例えばCRC(Cyclic Redundancy Check)演算法などで用いられる多項式を使用して定長の仮アドレスに変換し、この仮アドレスをアドレス変換メモリ34に与える。
なお、論理的変数名から仮アドレスへの変換は、多項式を用いて行われる手法に限定されるのではなく、例えば、予め定義されている変換ルールを用いて行われるとしてもよい。
アドレス変換メモリ34は、例えば、各仮アドレスで表される記憶領域に、各仮アドレスに対応する制御データメモリ6の物理アドレスを記憶する。
アドレス変換メモリ34は、変換部33から与えられた仮アドレスに対応する物理アドレスを例えばアドレスバッファ31などのアドレス提供先に提供する。
図5は、本実施の形態に係る制御装置18による制御処理の一例を示すフローチャートである。
ステップS1において、アドレス変換メモリ34は、仮アドレスの示す記憶領域に、この仮アドレスに対応する制御データメモリ6の物理アドレスを記憶する。なお、この時点で、制御プログラムメモリ8には、論理的変数名を含む制御プログラム20が記憶されており、制御データメモリ6には、論理的変数名で表される制御変数の実体である制御データが記憶されているとする。
ステップS2において、変換部33は、制御プログラム20が実行されると、制御プログラム20に含まれている論理的変数名を仮アドレスに変換する。
ステップS3において、アドレス変換メモリ34は、仮アドレスを制御データメモリ6における記憶領域を表す物理アドレスに変換する。
ステップS4において、演算部27は、制御プログラム20に含まれている命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する。
以下に、制御プログラム20に新規の論理変数名が追加された場合について説明する。
制御プログラム20に新規の論理的変数名が追加され制御プログラムメモリ8に記憶された場合、この新規の論理変数名の実体である新規の制御データが制御データメモリ6に記憶される。
新規の論理的変数名は、新規の仮アドレスに変換される。そして、アドレス変換メモリ34における新規の仮アドレスの示す記憶領域に、制御データメモリ6における新規の制御データの記憶領域を示す新規の物理アドレスが記憶される。
制御プログラム20の変更後にもそのまま用いられる論理的変数名は、制御プログラム20変更後であってもそのまま継続して使用可能であり、この変更後にもそのまま用いられる論理的変数名に対応するアドレス変換メモリ34及び制御データメモリ6の内容についてもそのまま使用可能である。
制御プログラム20の変更後においては、制御プログラムメモリ8は、新規の論理的変数名を含む変更後の制御プログラムを記憶する。
また、制御データメモリ6は、空き領域に、新規の論理的変数名の実体である新規の制御データを記憶する。
変換部33、新規の論理的変数名を新規の仮アドレスに変換する。
アドレス変換メモリ34は、新規の仮アドレスを、新規の制御データの記憶領域を表す新規の物理アドレスに変換する。
演算部27は、新規の物理アドレスに対応するアクセス結果に基づいて制御を実行する。
本実施の形態では、仮アドレスと物理アドレスとが対応付けられており、この対応関係を用いてアクセス先の物理アドレスが得られるため、論理的変数名を用いて制御プログラム20を作成することができる。
図6は、新規の論理的変数名が追加された状態の一例を示すブロック図である。
新規の論理的変数名が追加された制御プログラム20においては、図6に示すように、変更のない部分の制御プログラム、変更のない部分における仮アドレスと物理アドレスとの対応関係、変更のない部分の制御データは変更前の状態でそのまま利用することができる。
制御プログラム20の変更部分については、新規の仮アドレスと新規の物理アドレスの対応関係がアドレス変換メモリ34に新たに記憶される。また、制御データメモリ6における新規の物理アドレスの示す記憶領域に、新規の制御データが記憶される。
したがって、制御プログラム20における論理的変数名の追加が発生した場合であっても、制御プログラム20の変更のない部分については変更前の状態をそのまま用いることができ、変更に必要な労力と時間を削減できる。また、制御データについても制御プログラム20の変更のない部分に対応する制御データは変更前の状態をそのまま用いることができ、変更に必要な労力と時間を削減できる。
また、本実施の形態では、制御プログラム20が論理的変数名を用いて記載されているため、制御データメモリ6において制御データの記憶領域が変更された場合であっても、アドレス変換メモリ34の内容を書き替えるのみでよく、制御プログラム20の内容を書き替える必要はない。
すなわち、本実施の形態では、制御プログラム20における論理的変数名の変更がある場合や制御データの変更がある場合に、制御プログラム及び制御データの変更部分の数を抑えることができ、制御プログラム及び制御データの変更を容易かつ迅速に行うことができる。そして、変更前と変更後とで使用可能な共通部分が増えるため、制御プログラム20又は制御データの変更を行う場合であっても、制御プログラム20の動作を継続させることができる。
(第2の実施の形態)
本実施の形態では、制御プログラムメモリに記憶されている制御プログラムが少なくとも一つのプログラム構成単位を含む。以下、プログラム構成単位とは、IEC 61131-3でいうPOU(Program Organization Unit)であり、例えばファンクションブロック又はファンクションであるとして説明する。
本実施の形態では、制御プログラムメモリに記憶されている制御プログラムが少なくとも一つのプログラム構成単位を含む。以下、プログラム構成単位とは、IEC 61131-3でいうPOU(Program Organization Unit)であり、例えばファンクションブロック又はファンクションであるとして説明する。
本実施の形態では、POUで使用される制御データメモリの先頭アドレスをベースアドレスとし、POUで使用される制御データメモリの先頭アドレスからのオフセットアドレス(オフセット値)が命令語のオペランド部に格納され、POUで使用される制御データメモリの記憶領域が変更された場合であっても、制御プログラムの変更を不要とする制御装置について説明する。
図7は、本実施の形態に係る制御装置の一例を示すブロック図である。この図7では、制御装置の構成要素のうち、制御プログラムメモリ8、制御プログラム実行回路35、制御データメモリ6、バス5のみが図示されており、他の構成要素については省略している。
制御プログラムメモリ8には、POU36を含む制御プログラムが記憶されている。POU36に含まれている命令語37のオペランド部37bには、このPOU36で使用される制御データ38に対応する先頭アドレスを示すベースアドレスからのオフセットアドレスが格納される。
例えば、POU36の命令語のオペランド部37bに格納されているオフセットアドレスとPOU36におけるベースアドレスとを合成することにより、この命令語に応じてアクセスされる制御データメモリ6における制御データの物理アドレスが求められる。
ベースアドレスレジスタ39は、POU36のベースアドレスを記憶する。例えば、ベースアドレスは、演算部40によって演算され、ベースアドレスレジスタ39に設定される。また、ベースアドレスは、演算部40からアドレス変換部41に直接提供されるとしてもよい。
演算部40は、POU36で使用される制御データ38の記憶領域が変更された場合、変更後の制御データ38の先頭アドレスを求め、この先頭アドレスをベースアドレスとして設定する。
アドレス変換部41は、命令語のオペランド部37bに格納されているオフセットアドレスと、ベースアドレスとの和を物理アドレスとし、この物理アドレスをアドレスバッファ31に提供する。
このアドレス変換部41は、命令レジスタ25からオフセットアドレスを受け付けるとしてもよく、命令デコーダ26による命令語のデコード後、演算部40を経由して、オフセットアドレスを受け付けるとしてもよい。
図8は、POU36で使用される制御データ38の記憶領域が変更された場合の例を示すブロック図である。
この図8に示すように、例えば制御プログラムのうちPOU36ではない部分が変更され、制御データメモリ6においてPOU36で使用される制御データ38の記憶領域が変更された場合であっても、POU36における各命令語のオペラント部37bの内容は変更させる必要はなく、ベースアドレスのみを変更させればよい。
図9は、本実施の形態に係る制御装置による制御処理の一例を示すフローチャートである。
ステップT1において、演算部40は、POU36で使用される制御データ38の先頭アドレスをベースアドレスとしてベースアドレスレジスタ39に設定する。
ステップT2において、アドレス変換部41は、POU36に含まれているオフセットアドレスとベースアドレスとを合成し、物理アドレスを求める。
ステップT3において、演算部27は、POU36に含まれている命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する。
以上説明したように、本実施の形態では、制御データメモリ6に記憶されておりPOU36で使用される制御データ38の記憶領域が変更された場合であっても、記憶領域変更後の制御データの先頭アドレスを新規のベースアドレスとして設定するのみでよい。
これにより、制御プログラム及び制御データの変更部分の数を抑えることができ、制御プログラム及び制御データの変更を容易かつ迅速に行うことができる。
また、制御プログラム実行中に制御データの記憶領域を変更させる場合であっても、制御プログラムのオペランドの内容を書き替える必要がないため、制御プログラムの実行を維持しつつ、制御データの記憶領域を変更させることができる。
なお、本実施の形態において、POU36におけるオフセットアドレスは、論理的変数名で記載されており、上記第1の実施の形態と同様の変換により、オフセットアドレスを求めるとしてもよい。
(第3の実施の形態)
本実施の形態においては、上記第1及び第2の実施の形態を組み合わせた制御装置について説明する。
本実施の形態においては、上記第1及び第2の実施の形態を組み合わせた制御装置について説明する。
本実施の形態では、POUに含まれる命令語のオペランド部に、仮オフセットアドレスが格納されており、この仮オフセットアドレスと仮ベースアドレスとによりオフセットアドレスへの変換が行われ、このオフセットアドレスとベースアドレスとに基づいて物理アドレスへの変換が行われる。本実施の形態では、制御データメモリにおける制御データの物理アドレスが変更された場合であっても、制御プログラムの変更を不要とする。
また、同一のPOUがそれぞれ異なる制御プログラムで使用される場合に、異なる制御プログラム毎に、異なるベースアドレスを用いることで、異なる記憶領域をアクセスすることができる。
図10は、本実施の形態に係る制御装置の一例を示すブロック図である。
この図10では、制御装置の構成要素のうち、制御プログラムメモリ8、制御プログラム実行回路42、制御データメモリ6、バス5のみが図示されており、他の構成要素については省略している。
制御プログラムメモリ8には、POU43を含む制御プログラムが記憶されている。POUにおける命令語44のオペランド部44bには、制御変数が格納されている。本実施の形態では、制御変数として、仮オフセットアドレスが用いられるとする。
制御データメモリ6は、POU43で使用される制御データ45を記憶する。
アドレス変換部46は、仮オフセットアドレスを変換し、制御データメモリ6における制御データ45の記憶領域を表す物理アドレスを求める。
図11は、アドレス変換部46の一例を示すブロック図である。
アドレス変換部46は、第1変換部47、アドレス変換メモリ48、第2変換部49を具備する。
アドレス変換メモリ48は、制御データメモリ6における制御データ45に対応する先頭アドレスを示すベースアドレスを用いて、制御データメモリ6における制御データ45の物理アドレスを求めるためのオフセットアドレスを記憶する。
POU43のオペランド部44bには、アドレス変換メモリ48におけるオフセットアドレスに対応する先頭アドレスを示す仮ベースアドレスを用いて、アドレス変換メモリ48におけるオフセットアドレスの記憶領域を示す仮アドレスを求めるための仮オフセットアドレスが格納される。
第1変換部47は、仮ベースアドレスと仮オフセットアドレスとを合成して、アドレス変換メモリ48における仮アドレスを求め、この仮アドレスをアドレス変換メモリ48に与え、オフセットアドレスを求める。
アドレス変換メモリ48は、第1変換部47から与えられた仮アドレスに対応するオフセットアドレスを第2変換部49に提供する。このアドレス変換メモリ48は、例えば、各仮アドレスに対応する各オフセットアドレスを記憶する。
第2変換部49は、ベースアドレスレジスタ39に記憶されているベースアドレスとアドレス変換メモリ48から受け付けたオフセットアドレスとを合成して物理アドレスを作成し、物理アドレスを例えばアドレスバッファ31などのアドレス提供先に提供する。
図12は、本実施の形態に係る制御装置による制御処理の一例を示すフローチャートである。
ステップU1において、アドレス変換メモリ48は、仮アドレスの示す記憶領域に、この仮アドレスに対応するオフセットアドレスを記憶する。なお、この時点で、制御プログラムメモリ8には、仮オフセットアドレスを含む制御プログラムが記憶されており、制御データメモリ6には、この仮オフセットアドレスで表される変数の実体である制御データ45が記憶されているとする。
ステップU2において、演算部40は、POU43で使用される制御データ45に対応する先頭アドレスをベースアドレスとしてベースアドレスレジスタ39に設定する。
ステップU3において、第1変換部47は、POU43における仮オフセットアドレスと、アドレス変換メモリ48に記憶されているオフセットアドレスに対応する先頭アドレスを示す仮ベースアドレスとを合成し、仮アドレスを求める。
ステップU4において、アドレス変換メモリ48は、仮アドレスをオフセットアドレスに変換する。
ステップU5において、第2変換部49は、オフセットアドレスと、ベースアドレスレジスタ39に設定されているベースアドレスとを合成し、物理アドレスを求める。
ステップU6において、演算部40は、命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する。
以上のような制御装置の動作について以下で説明する。
本実施の形態では、POU43に使用される制御データ45に対応する先頭アドレスがベースアドレスとして用いられる。
また、POU43における命令語44のオペランド部44bには、仮オフセットアドレスが格納されており、この仮オフセットアドレスがオフセットアドレスに変換される。そして、オフセットアドレスとベースアドレスとが合成され、制御データ45をアクセスするために用いる物理アドレスが得られる。
本実施の形態において、例えば、制御プログラムメモリ8におけるPOU43の記憶領域が変更された場合であっても、POU43の内容及び制御データ45に変更を行う必要がない。
また、例えば、制御データメモリ6における制御データ45の記憶領域が変更された場合であっても、変更後の記憶領域に対応する変更後のオフセットアドレスを設定するのみでよく、POU43及びアドレス変換メモリ48の記憶内容を変更する必要がない。
図13は、POU43が変更され、新規の仮オフセットアドレスが追加された状態の一例を示すブロック図である。
POU43が変更され、このPOU43に新規の仮オフセットアドレスが追加された場合、POU43のうち変更のない部分、アドレス変換メモリ48に記憶されている内容のうちPOU43の変更のない部分に対応する部分、POU43の変更のない部分で使用される制御データは変更前の状態でそのまま利用することができる。
また、POU43に新規の仮オフセットアドレスが追加された場合、制御データメモリ6は、空き領域であった新規の物理アドレスの示す記憶領域に、このPOU43の変更部分に対応する新規の制御データを記憶する。
また、アドレス変換メモリ48は、空き領域であった新規の仮アドレスの示す記憶領域に、新規のオフセットアドレスを記憶する。
POU43が変更されたために追加された新規の制御データにアクセスする場合、まず、第1変換部47は、POU43に含まれている新規の仮アドレスと仮ベースアドレスとに基づいて、新規の仮アドレスを求める。
次に、アドレス変換メモリ48は、新規の仮アドレスの示す記憶領域に記憶されている新規のオフセットアドレスを第2変換部49に与える。
そして、第2変換部49は、新規のオフセットアドレスとベースアドレスとに基づいて、新規の制御データの記憶されている記憶領域を示す新規の物理アドレスを求める。
以上説明した本実施の形態では、POU43に仮オフセットアドレス(制御変数)が追加された場合であっても、POU43の変更のない部分及びPOU43の変更のない部分に使用される制御データについては変更前の状態をそのまま用いることができ、変更に必要な労力と時間を削減できる。
POU43において変更された部分については、その変更部分に応じてアドレス変換メモリ48に新規の内容を追加するとともに、制御データメモリ6に新規の制御データを記憶するのみでよい。
このように、本実施の形態では、POU43が変更される場合であっても、変更されていない部分をそのまま流用でき、変更後においても変更前と同じ状態で使用可能な部分が増えるため、制御プログラムの動作を継続させることができる。
図14は、変更後のPOU43が異なる制御プログラムで使用される場合の制御データへのアクセス状態の一例を示すブロック図である。
この図14においてPOU43は、新規の仮オフセットアドレスが挿入されている。
本実施の形態では、変更後のPOU43が異なる複数の制御プログラム(インスタンス)50a,50bで使用される場合、アドレス変換メモリ48の内容を一度変更するだけで、全ての変更後のPOU43に対処可能である。
例えば、POU43に新規の仮オフセットアドレス(制御変数)の追加が発生したとする。また、このPOU43の変更により、制御データメモリ6においても、新規の制御データの追加及び制御データ「CDE」の記憶領域の変更があったとする。
本実施の形態では、このような場合に、POU43に対応するアドレス変換メモリ48の記憶領域の内容が、制御データメモリ6における新規の制御データの追加及び制御データ「CDE」のアドレス変更に応じて変更される。
すると、その後は、制御プログラム50a,50bのいずれにおいて変更後のPOU43が使用される場合であっても、アドレス変換メモリ48の記憶内容と各制御プログラム50a,50bに応じて設定されている第1又は第2のベースアドレスを用いて、制御データをアクセスすることにより、制御プログラム50a,50bに応じた制御データメモリ6の記憶領域をアクセスすることができる。
従来においては、複数の制御プログラムで使われているPOU43に制御変数の追加が発生すると、このPOU43を使用する各制御プログラムについての記憶領域の該当箇所全てに対して制御変数の挿入、移動などの変更を行う必要があり、労力及び時間がかかっていた。
しかしながら、本実施の形態では、アドレス変換メモリ48の内容を変更するのみで、複数の制御プログラム50a,50bで使用されるPOU43の変更に対処でき、POU43の変更に迅速かつ容易に対処することができる。
以上説明したように、本実施の形態では、POU43において制御変数の追加、挿入、削除などの変更があった場合及び制御データメモリ6において制御データの追加、挿入、削除、移動などの変更が発生した場合であっても、アドレス変換メモリ48の記憶内容の変更を行うことで、迅速かつ容易に対処可能である。
本実施の形態では、制御プログラム及び制御データの変更部分の数を抑えることができ、制御プログラム及び制御データの変更を容易かつ迅速に行うことができるため、制御プログラムを中断しなくても制御プログラムを変更可能である。
なお、本実施の形態では、命令語のオペランド部44bには、仮オフセットアドレスが格納される場合について説明しているが、上記第1の実施の形態と同様に、論理的変数名が格納されるとしてもよい。この場合、第1変換部47は、論理変数名を仮アドレスに変換する。
(第4の実施の形態)
本実施の形態では、ベースアドレスを指定可能な制御装置について説明する。本実施の形態におけるアドレス変換の手法は、配列形式の制御変数(インデックス付きの制御変数)に適用される。
本実施の形態では、ベースアドレスを指定可能な制御装置について説明する。本実施の形態におけるアドレス変換の手法は、配列形式の制御変数(インデックス付きの制御変数)に適用される。
図15は、本実施の形態に係る制御プログラムに含まれる命令語の一例を示すブロック図である。
命令語51は、命令コード部52とオペランド部53を具備する。オペランド部53は、ベースアドレス指定部53aとオフセットアドレス指定部53bを具備する。
ベースアドレス指定部53aは、複数のベースアドレスのうちいずれかのベースアドレスを格納する。オフセットアドレス指定部53bは、オフセットアドレスを格納する。
本実施の形態に係る制御装置の基本的な構成は、上記図7と同様である。なお、本実施の形態では、ベースアドレス指定部53aに格納されているベースアドレスがベースアドレスレジスタに記憶されるとする。
図16は、本実施の形態に係るアドレス変換部によるアドレス変換の一例を示すブロック図である。
本実施の形態では、配列形式の制御変数A[0]〜A[9],B[0]〜B[9]を含む制御プログラム54が変更され、制御プログラム54に新規の配列形式の制御変数A[10]〜A[19]が追加されたとする。制御プログラムメモリ8には、変更後の制御プログラム54が記録される。
変更後の制御プログラム54において、配列形式の制御変数A[0]〜A[9],B[0]〜B[9]に対応する物理アドレスは、変更前のベースアドレス及びオフセットアドレスでで表される。
変更後の制御プログラム54において、新規の制御変数A[10]〜A[19]に対応する新規の物理アドレスは、新規のベースアドレス及び新規のオフセットアドレスで表される。
制御データメモリ6では、制御プログラム54のうち変更されていない部分に対応する制御データについては、制御プログラム54の変更後においても、変更前と同様の記憶領域に記憶される。例えば、制御変数A[0]〜A[9],B[0]〜B[9]の実体である制御データは、変更前と後とで同一の記憶領域に記憶されている。
制御データメモリ6では、制御プログラム54のうち変更された部分に対応する制御データについては、変更前に空き領域であった領域に記憶される。例えば、追加された制御変数A[10]〜A[19]の実体である制御データは、制御データメモリ6の変更前に空き領域であった領域に記憶される。
制御プログラム54では、新規の制御変数A[10]〜A[19]が追加された場合であっても、この追加された部分ではない部分については、そのまま追加前のベースアドレス及びオフセットアドレスが用いられる。
一方、制御プログラム54では、新規の制御変数A[10]〜A[19]が追加された場合、この追加された部分については、新規のベースアドレス及び新規のオフセットアドレスにより、新規の制御変数A[10]〜A[19]の実体である新規の制御データに対する物理アドレスが特定される。
本実施の形態に係る制御装置に備えられているアドレス変換部55は、命令語51の制御変数について、ベースアドレス指定部53aに格納されているベースアドレスと、オフセットアドレス指定部53bに格納されているオフセットアドレスとを合成して仮アドレスに変換する。
以上のような制御装置の動作について以下に説明する。
制御プログラム54における制御変数A,Bは、当初、インデックス値0〜9に対応するように構成されていたとする。すなわち、配列形式の制御変数A[0]〜A[9]とB[0]〜B[9]とが制御プログラム54で用いられるとする。
本実施の形態において、制御変数A[0]〜A[9]のいずれかにアクセスする場合、この制御変数A[0]〜A[9]に関するベースアドレスと、インデックス値0〜9に対応するオフセットアドレスとを加えて物理アドレスを求める。
ここで、制御プログラム54において、制御変数Aについてインデックス値をさらに10〜19まで追加し、インデックス修飾の範囲を拡張させるような変更が行われたとする。
通常、変更前の制御データメモリ6において、制御変数A[9]の記憶領域の後に十分な空き領域が存在する場合、この制御変数A[9]の後の空き領域が、そのまま制御変数A[10]〜A[19]の記憶領域として用いられる。
しかしながら、上記図16では、制御変数A[9]の記憶領域の後には、制御変数B[0]〜B[9]の記憶領域が割り当てられている。
このため、通常は、拡張後の制御変数A[0]〜A[19]が新たに別領域に割り当てられるか、あるいは制御変数B[0]〜B[9]が別領域に割り当てられた後に、拡張される部分の制御変数A[10]〜A[19]がこの制御変数B[0]〜B[9]の記憶されていた領域に割り当てられる。
このような制御データの移動は、制御プログラム54の実行を遅延させる原因となる場合があり、制御特性を向上させることが困難となる。
これに対し、本実施の形態では、制御プログラム54の各命令語51のベースアドレス指定部553aにおいて、使用するベースアドレスが指定されている。
これにより、制御変数Aのインデックス修正領域を拡張する場合に、拡張前から存在する制御変数A[0]〜A[9]と拡張部分の制御変数A[10]〜A[19]とについて、ベースアドレスを切替え、新しい記憶領域に拡張部分の制御変数A[10]〜A[19]を割り付けることが可能である。
拡張部分の制御変数A[10]〜A[19]に対する新規のベースアドレスには、この拡張部分の制御変数A[10]〜A[19]に対応する先頭アドレスを用いることが可能である。
図17は、本実施の形態に係る制御装置による制御処理の一例を示すフローチャートである。
ステップV1において、制御プログラムメモリ8は、命令コードとベースアドレスとオフセットアドレスとを含む制御プログラム54を記憶するとともに、制御データメモリ6は、制御プログラム54で使用される制御データを記憶する。
ステップV2において、本実施の形態に係る制御装置に備えられている演算部は、制御プログラム54で指定されているベースアドレスをベースアドレスレジスタに設定する。
ステップV3において、アドレス変換部55は、制御プログラム54に含まれているオフセットアドレスとベースアドレスとを合成し、物理アドレスを求める。
ステップV4において、本実施の形態に係る制御装置に備えられている演算部は、制御プログラム54に含まれている命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する。
以上説明した本実施の形態では、制御プログラム54に、拡張前から存在する制御変数に対するベースアドレスと、拡張部分に対する新規のベースアドレスとが格納されている。
そして、拡張部分の制御変数に対するアクセスが必要な場合には、拡張前から存在する制御変数のベースアドレスと異なる新規のベースアドレスを用いることが可能である。
これにより、制御プログラム54の書き替え部分を減少させることができ、また制御データの変更部分を減少させることができ、制御プログラム54を継続実行させながら変更を行うことが可能となる。
すわなち、本実施の形態では、インデックス付きの制御変数のインデックスの最大値を制御プログラム実行中に変更する場合であっても、ベースアドレスを切替えることにより、制御データのインスタンスの移動を削減し、制御プログラムの実行を継続しつつ制御プログラム及び制御データを変更させることができる。
なお、本実施の形態において、制御装置は、複数のベースアドレスレジスタを具備し、各ベースアドレスレジスタにそれぞれ異なるベースアドレスが記憶され、ベースアドレス指定部53aは、この複数のベースアドレスレジスタのうちのいずれかを指定するベースアドレスレジスタ指定情報を格納するとしてもよい。この場合にも、複数のベースアドレスを用いてアクセス先を指定することができるため、制御プログラム54で複数のベースアドレスを利用可能である。
(第5の実施の形態)
本実施の形態におけるアドレス変換の手法は、配列形式の構造体に適用される。なお、構造体は、複数の制御変数を具備する。本実施の形態において、変更前から構造体を構成していた制御変数の数を原要素数とする。また、本実施の形態において、変更後に構造体に追加された制御変数の数を追加要素数とする。
本実施の形態におけるアドレス変換の手法は、配列形式の構造体に適用される。なお、構造体は、複数の制御変数を具備する。本実施の形態において、変更前から構造体を構成していた制御変数の数を原要素数とする。また、本実施の形態において、変更後に構造体に追加された制御変数の数を追加要素数とする。
図18は、本実施の形態に係る制御プログラムに含まれる命令語の一例を示すブロック図である。
命令語56は、命令コード部57とオペランド部58を具備する。オペランド部58は、ベースアドレス指定部58a、オフセットアドレス指定部58b、要素数指定部58c、インデックス値指定部58dを具備する。
ベースアドレス指定部58aは、複数のベースアドレスのうちいずれかのベースアドレスを格納する。
オフセットアドレス指定部58bは、オフセットアドレスを格納する。このオフセットアドレスは、構造体を構成する制御変数のうちどの制御変数についてのアクセスを行うかを指定する。
要素数指定部58cは、変更前から構造体を構成していた制御変数に対するアクセスが行われる場合には原要素数、変更後に構造体に追加された制御変数に対するアクセスが行われる場合には追加要素数を格納する。
インデックス値指定部58dは、構造体配列のいずれかをアクセスする場合に、アクセス対象となる構造体の指定に用いられるインデックス値を格納する。
本実施の形態に係る制御装置の基本的な構成は、上記図7と同様である。なお、本実施の形態では、ベースアドレス指定部58aに格納されているベースアドレスがベースアドレスレジスタに記憶されるとする。
ここで、図19に、構造体に制御変数が追加された場合における通常のアドレッシング方式の一例を示す。
変更前の各構造体は、制御変数A,B,Dを含む。図19では、変更前の状態として、制御データメモリ6に、インデックス値[0]で表される第1の構造体(A[0],B[0],D[0])と、インデックス値[1]で表される第2の構造体(A[1],B[1],D[1])が記憶されている。
第1の構造体に新規の制御変数C[0]を追加し、同様に第2の構造体に新規の制御変数C[1]を追加する。
すると、通常のアドレッシング方式では、変更後の第1の構造体に含まれる各制御変数A[0],B[0],C[0],D[0]が順に配置され、その後に変更後の第2の構造体に含まれる各制御変数A[1],B[1],C[1],D[1]を順に配置される。
したがって、制御データメモリ6において、新規に追加される制御変数C[0]以降の記憶領域については、新たに制御変数C[0],C[1]が追加された状態に書き替えが行われる。この通常のアドレッシング方式における制御変数の追加処理は、単純なブロック転送で実現することは困難であるため、時間及び負荷がかかる。
これに対して、図20に、構造体に制御変数が追加された場合における本実施の形態に係るアドレッシング方式の一例を示す。
本実施の形態において、第1の構造体に制御変数C[0]が追加され、第2の構造体に制御変数C[1]が追加される場合、この追加された制御変数C[0],C[1]の実体のみが制御データメモリ6の空き領域に割り付けられる。
この追加された制御変数C[0],C[1]の記憶領域における先頭アドレスが、この追加された変数に対する新規のベースアドレスとされる。
この追加された制御変数C[0],C[1]に対してアクセスを行う場合には、要素数指定部58cに、各構造体に追加される制御変数の数である追加要素数「1」が格納される。
制御変数C[0],C[1]についてのオフセットアドレスは、追加された制御変数C[0],C[1]の順序にしたがって、0から昇順に設定される。本実施の形態では、追加要素数が1であるため、C[0]に対するオフセットアドレスに0が設定される。同様に、C[1]に対するオフセットアドレスに1が設定される。
なお、本実施の形態において、制御変数が追加される前から存在する制御変数A[0],B[0],D[0],A[1],B[1],D[1]の実体については、変更されなくてもよい。
また、本実施の形態では、制御変数が追加される前から存在する制御変数A[0],B[0],D[0],A[1],B[1],D[1]の実体については変更されないため、本実施の形態における制御プログラムでは、制御変数A[0],B[0],D[0],A[1],B[1],D[1]をアクセスする場合のオペランド部58について書き替えを行う必要はない。
本実施の形態に係る制御装置に備えられているアドレス変換部は、以下の(1)式に基づいて物理アドレスを演算する。
物理アドレス=指定されているベースアドレス+要素数×インデックス値+オフセットアドレス…(1)
例えば、上記図20の制御変数B[1]の物理アドレスは、以下の(2)式で演算される。
例えば、上記図20の制御変数B[1]の物理アドレスは、以下の(2)式で演算される。
B[1]の物理アドレス=ベースアドレス+3×1+1=ベースアドレス+4…(2)
例えば、上記図20の制御変数C[1]の物理アドレスは、以下の(3)式で演算される。
例えば、上記図20の制御変数C[1]の物理アドレスは、以下の(3)式で演算される。
B[1]の物理アドレス=新規のベースアドレス+1×1+1=新規のベースアドレス+1…(3)
図21は、本実施の形態に係る制御装置による制御処理の一例を示すフローチャートである。
図21は、本実施の形態に係る制御装置による制御処理の一例を示すフローチャートである。
ステップW1において、制御プログラムメモリ8は、命令コードとベースアドレスとオフセットアドレスと要素数とインデックス値とを含む制御プログラムを記憶するとともに、制御データメモリ6は、この制御プログラムで使用される制御データを記憶する。
ステップW2において、本実施の形態に係る制御装置に備えられている演算部は、制御プログラムで指定されているベースアドレスをベースアドレスレジスタに設定する。
ステップW3において、アドレス変換部55は、上記式(1)に基づいて、オフセットアドレスとベースアドレスと要素数とインデックス値を合成し、物理アドレスを求める。
ステップW4において、本実施の形態に係る制御装置に備えられている演算部は、制御プログラムに含まれている命令コードと物理アドレスに対するアクセス結果とに基づいて制御を実行する。
以上説明した本実施の形態では、構造体に新規に追加された制御変数C[0],C[1]をアクセスする場合、新規に追加された制御変数をアクセスするための新規のベースアドレスを用いる。
また、本実施の形態では、追加前から構造体に存在する制御変数がアクセスされる場合には、原要素数が用いられ、追加された制御変数がアクセスされる場合には、追加要素数が用いられる。
また、本実施の形態では、追加前から構造体を構成している制御変数と、追加された制御変数とが、制御データメモリ6の別領域に格納される。
これにより、本実施の形態におけるアドレッシング方式では、通常のアドレッシング方式を用いる場合よりも、容易かつ迅速に構造体の制御変数を追加でき、制御プログラム及び制御データの変更部分を減少させることができ、制御プログラム実行中であっても構造体を構成する制御変数を変更させることができる。
すなわち、本実施の形態では、構造体を構成する制御変数を制御プログラム実行中に変更した場合であっても、オペランドで指定される制御データメモリ6のベースアドレスを複数指定可能な命令語体系を使用することにより、制御変数追加前の制御データの内容を移動又はコピーさせる必要がなく、継続して制御プログラムを実行させることができる。
(第6の実施の形態)
本実施の形態では、上記第1から第5までの実施の形態におけるモニタ装置について説明する。
本実施の形態では、上記第1から第5までの実施の形態におけるモニタ装置について説明する。
上記図1におけるモニタ装置21は、制御装置の動作状態をモニタするために、制御変数を指定するモニタ命令を制御装置に送信し、その指定された制御変数の値を時系列で受信し、例えばグラフなどにより表示する。
例えば、モニタ対象のデータを、制御データメモリの物理アドレスによって指定すると、制御プログラムのオンライン変更時に、モニタ対象のデータの格納されている物理アドレスが変更される場合があり、モニタ対象のデータをそのまま継続受信することは困難である。
このため、従来においては、モニタを一旦停止して、オンライン変更後の制御データメモリの物理アドレスを再度指定する必要がある。
これに対し、本実施の形態では、モニタ対象のデータが、例えば、オペランド部の内容(例えば、論理的変数名、オフセットアドレスなど)に対応する制御変数で指定されるとする。上記各実施の形態では、制御プログラムのオンライン変更時又は制御データの追加、挿入、削除、移動が発生した場合であっても、変更された部分ではない制御プログラムのオペランド部の内容は原則として変更されないため、そのまま使用される。
したがって、制御変数によりモニタ対象のデータを指定することにより、制御プログラムの変更、制御データの追加、挿入、削除、移動に影響されることなく、モニタ対象のデータを継続して表示させることができ、監視できる。
なお、上記各実施の形態において、各構成要素は、同様の動作を実現可能であれば自由に変形可能であり、配置を変更させてもよく、自由に組み合わせることが可能であり、分割することも可能である。
また、上記各実施の形態においては、制御プログラムの変更として制御変数の追加が発生した場合について説明しているが、制御変数の削除などの他の変更が発生した場合も同様である。
1,18…制御装置、2…入出力モジュール、3…制御対象、4…I/Oインタフェース、5…バス、6…制御データメモリ、7…CPU、8…制御プログラムメモリ、8a,15,20,50a,50b,54…制御プログラム、9,21…モニタ装置、10…通信インタフェース、11…プログラムメモリ、12…データメモリ、13,22,37,44,51,56…命令語、13a,22a,37a,44a,52,57…命令コード部、13b,22b,37b,44b,53,58…オペランド部、14,16,17,38,45…制御データ、19,35、42…制御プログラム実行回路、23…データバッファ、24…データレジスタ、25…命令レジスタ、26…命令デコーダ、27,40…演算部、28…ワークレジスタ、29,41,46,55…アドレス変換部、30…命令カウンタ、31…アドレスバッファ、32…バス制御部、33…変換部、34,48…アドレス変換メモリ、36,43…POU、39…ベースアドレスレジスタ、47…第1変換部、49…第2変換部、53a,58a…ベースアドレス指定部、53b,58b…オフセットアドレス指定部、58c…要素数指定部、58d…インデックス値指定部
Claims (14)
- 命令コードと論理的変数名とを含む制御プログラムを記憶する制御プログラム記憶手段と、
前記論理的変数名の実体である制御データを記憶する制御データ記憶手段と、
前記論理的変数名を、前記論理的変数名に対応する仮アドレスに変換する第1変換手段と、
前記仮アドレスを、前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスに変換する第2変換手段と、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段と
を具備する制御装置。 - 請求項1記載の制御装置において、
前記制御プログラム記憶手段は、前記制御プログラムに新規の論理的変数名が追加された変更後の制御プログラムを記憶し、
前記制御データ記憶手段は、空き領域に、前記新規の論理的変数名の実体である新規の制御データを記憶し、
前記第1変換手段は、前記新規の論理的変数名を、前記新規の論理的変数名に対応する新規の仮アドレスに変換し、
前記第2変換手段は、前記新規の仮アドレスを、前記制御データ記憶手段における前記新規の制御データの記憶領域を表す新規の物理アドレスに変換し、
前記演算手段は、前記新規の物理アドレスに対するアクセス結果に基づいて制御を実行する
ことを特徴とする制御装置。 - 請求項1記載の制御装置において、
前記第2変換手段は、前記仮アドレスによって示される記憶領域に、前記仮アドレスに対応する前記物理アドレスを記憶するアドレス変換メモリであることを特徴とする制御装置。 - 命令コードとオフセットアドレスとを含む制御プログラムを記憶する制御プログラム記憶手段と、
前記制御プログラムで使用される制御データを記憶する制御データ記憶手段と、
前記オフセットアドレスと前記制御データ記憶手段における前記制御データに対応する先頭アドレスを示すベースアドレスとに基づいて、前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスを求める変換手段と、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段と
を具備する制御装置。 - 命令コードと制御変数とを含む制御プログラムを記憶する制御プログラム記憶手段と、
前記制御プログラムで使用される制御データを記憶する制御データ記憶手段と、
前記制御変数を、前記制御変数に対応するオフセットアドレスに変換する第1変換手段と、
前記オフセットアドレスと、前記制御データ記憶手段における前記制御データに対応する先頭アドレスを示すベースアドレスとに基づいて、前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスを求める第2変換手段と、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段と
を具備する制御装置。 - 請求項5記載の制御装置において、
前記制御変数は、仮オフセットアドレスであり、
前記第1変換手段は、
前記オフセットアドレスを記憶するアドレス変換メモリと、
前記仮オフセットアドレスと、前記アドレス変換メモリにおける前記オフセットアドレスに対応する先頭アドレスを示す仮ベースアドレスとに基づいて、前記アドレス変換メモリをアクセスし、前記仮オフセットアドレスに対応するオフセットアドレスを得る
ことを特徴とする制御装置。 - 命令コードと、ベースアドレスと、オフセットアドレスとを含む制御プログラムを記憶する制御プログラム記憶手段と、
前記制御プログラムで使用される制御データを記憶する制御データ記憶手段と、
前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスに対応して設定されている前記ベースアドレスと前記オフセットアドレスとに基づいて、前記物理アドレスを求める変換手段と、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段と
を具備する制御装置。 - 命令コード、ベースアドレス、オフセットアドレス、新規の制御変数が追加される前から構造体を構成していた制御変数の数と前記構造体に追加された制御変数の数とのうちのいずれかを示す要素数、前記構造体を含む構造体配列のうちで前記構造体を表すためのインデックス値を含む制御プログラムを記憶する制御プログラム記憶手段と、
前記構造体を構成する制御変数の実体である制御データを記憶する制御データ記憶手段と、
前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスに対応して設定されている前記ベースアドレス、前記オフセットアドレス、前記要素数、前記インデックス値とに基づいて、前記物理アドレスを求める変換手段と、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する演算手段と
を具備する制御装置。 - 請求項1乃至請求項8のいずれか1項に記載の制御装置において、
前記制御プログラムは、制御変数の実体をアクセスするために用いる情報を格納するオペランド部をさらに含み、
指定された制御変数の実体であるデータの内容を表示する手段をさらに具備する制御装置。 - 命令コードと論理的変数名とを含む制御プログラムを制御プログラム記憶手段に記憶するとともに、前記論理的変数名の実体である制御データを制御データ記憶手段に記憶し、
前記論理的変数名を、前記論理的変数名に対応する仮アドレスに変換し、
前記仮アドレスを、前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスに変換し、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する
ことを特徴とする制御方法。 - 命令コードとオフセットアドレスとを含む制御プログラムを制御プログラム記憶手段に記憶するとともに、前記制御プログラムで使用される制御データを制御データ記憶手段に記憶し、
前記オフセットアドレスと前記制御データ記憶手段における前記制御データに対応する先頭アドレスを示すベースアドレスとに基づいて、前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスを求め、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する
ことを特徴とする制御方法。 - 命令コードと制御変数とを含む制御プログラムを制御プログラム記憶手段に記憶するとともに、前記制御プログラムで使用される制御データを制御データ記憶手段に記憶し、
前記制御変数を、前記制御変数に対応するオフセットアドレスに変換し、
前記オフセットアドレスと、前記制御データ記憶手段における前記制御データに対応する先頭アドレスを示すブースアドレスとに基づいて、前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスを求め、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する
ことを特徴とする制御方法。 - 命令コードとベースアドレスとオフセットアドレスとを含む制御プログラムを制御プログラム記憶手段に記憶するとともに、前記制御プログラムで使用される制御データを制御データ記憶手段に記憶し、
前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスに対応して設定されている前記ベースアドレスと前記オフセットアドレスとに基づいて、前記物理アドレスを求め、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する
ことを特徴とする制御方法。 - 命令コード、ベースアドレス、オフセットアドレス、新規の制御変数が追加される前から構造体を構成していた制御変数の数と前記構造体に追加された制御変数の数とのうちのいずれかを示す要素数、前記構造体を含む構造体配列のうちで前記構造体を表すためのインデックス値を含む制御プログラムを制御プログラム記憶手段に記憶するとともに、前記構造体を構成する制御変数の実体である制御データを制御データ記憶手段に記憶し、
前記制御データ記憶手段における前記制御データの記憶領域を表す物理アドレスに対応して設定されている前記ベースアドレス、前記オフセットアドレス、前記要素数、前記インデックス値とに基づいて、前記物理アドレスを求め、
前記命令コードと前記物理アドレスに対するアクセス結果とに基づいて制御を実行する
ことを特徴とする制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004198307A JP2006018759A (ja) | 2004-07-05 | 2004-07-05 | 制御装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004198307A JP2006018759A (ja) | 2004-07-05 | 2004-07-05 | 制御装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006018759A true JP2006018759A (ja) | 2006-01-19 |
Family
ID=35792950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004198307A Pending JP2006018759A (ja) | 2004-07-05 | 2004-07-05 | 制御装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006018759A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008269449A (ja) * | 2007-04-24 | 2008-11-06 | Meidensha Corp | プログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法 |
JP2009301359A (ja) * | 2008-06-13 | 2009-12-24 | Mitsubishi Electric Corp | 制御装置 |
JPWO2016151743A1 (ja) * | 2015-03-24 | 2017-07-06 | 三菱電機株式会社 | 機器制御装置、車両用電子制御装置、車両用電子制御システム、機器制御方法及び機器制御プログラム |
WO2022254927A1 (ja) * | 2021-05-31 | 2022-12-08 | オムロン株式会社 | 情報処理装置、制御システム、および制御プログラムを開発するプログラム |
-
2004
- 2004-07-05 JP JP2004198307A patent/JP2006018759A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008269449A (ja) * | 2007-04-24 | 2008-11-06 | Meidensha Corp | プログラマブルロジックコントローラおよびプログラマブルロジックコントローラメモリ管理方法 |
JP2009301359A (ja) * | 2008-06-13 | 2009-12-24 | Mitsubishi Electric Corp | 制御装置 |
JPWO2016151743A1 (ja) * | 2015-03-24 | 2017-07-06 | 三菱電機株式会社 | 機器制御装置、車両用電子制御装置、車両用電子制御システム、機器制御方法及び機器制御プログラム |
WO2022254927A1 (ja) * | 2021-05-31 | 2022-12-08 | オムロン株式会社 | 情報処理装置、制御システム、および制御プログラムを開発するプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4876537B2 (ja) | プログラマブルコントローラのプログラミング装置 | |
JP2006018759A (ja) | 制御装置及び方法 | |
JPH09231071A (ja) | コンピュータ装置 | |
JPH10171665A (ja) | ジャンプコード・ジェネレータ、割り込みプログラム選択装置、割り込みプログラム選択方式、及び計算機 | |
JP2001051704A (ja) | プログラマブル・コントローラ | |
JP4471947B2 (ja) | データ処理装置及びデータ処理方法 | |
JPH06187015A (ja) | シーケンサのプログラム変換装置 | |
WO2022249713A1 (ja) | 制御システム、システムプログラムおよびデバッグ方法 | |
JPH113105A (ja) | プログラマブルコントローラのプログラミング装置 | |
JPH0713758A (ja) | 命令デコード方法 | |
JP2006276955A (ja) | プログラマブルコントローラ及びそのプログラミングツール | |
JP3207333B2 (ja) | プログラマブルコントロ−ラ | |
US20030120890A1 (en) | Method for memory addressing in micro controller and device using the same | |
JP2007252162A (ja) | 電動機駆動装置 | |
JPH11259308A (ja) | プログラマブルコントローラ | |
JPS6051736B2 (ja) | 情報処理装置 | |
JP2000029508A (ja) | プログラマブルコントローラ | |
JP5206091B2 (ja) | プログラマブルコントローラのデータアクセス方式 | |
WO2018179108A1 (ja) | エンジニアリングツール | |
JPS6345603A (ja) | プログラマブルコントロ−ラのプログラム格納方式 | |
JPH0420481B2 (ja) | ||
JP2008003867A (ja) | マイクロコンピュータ | |
JPH0636161B2 (ja) | 情報処理装置 | |
JPH0454531A (ja) | プログラム読出し回路 | |
JPH1195815A (ja) | シーケンス制御装置 |