JP4258140B2 - プログラマブルコントローラのインタフェース装置 - Google Patents
プログラマブルコントローラのインタフェース装置 Download PDFInfo
- Publication number
- JP4258140B2 JP4258140B2 JP2001183877A JP2001183877A JP4258140B2 JP 4258140 B2 JP4258140 B2 JP 4258140B2 JP 2001183877 A JP2001183877 A JP 2001183877A JP 2001183877 A JP2001183877 A JP 2001183877A JP 4258140 B2 JP4258140 B2 JP 4258140B2
- Authority
- JP
- Japan
- Prior art keywords
- new
- instruction
- intermediate language
- conversion
- old
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Programmable Controllers (AREA)
Description
【発明の属する技術分野】
本発明は、プログラマブルコントローラに係わり、特にローダ・インタフェース部に関する。
【0002】
【従来の技術】
図12は、従来のプログラマブルコントローラの構成ブロック図である。
同図において、プログラマブルコントローラ100には、ローダ110が接続されている。プログラマブルコントローラ100内部は、大別して、ローダI/F(インタフェース)部111と演算実行部112とより成る。ローダI/F(インタフェース)部111は、ローダコマンド解読部113、中間言語/マシン語変換部114より成る。演算実行部112は、プログラムメモリ115、CPU部116、I/O部117等より成る。
【0003】
ローダ110は、プログラマブルコントローラのプログラム作成/動作モニタ等を行うツールであり、パソコン等で実現される。
ローダ110においてユーザ等により作成されたアプリケーションプログラムが、ローダ110内の不図示のコンパイラにより中間言語にされた後、プログラマブルコントローラ100側にダウンロードされるときには、ローダコマンド解読部113を介して、中間言語/マシン語変換部114により中間言語からマシン語に変換される。
【0004】
ここで、中間言語とは、ローダ110等のプログラミングツールとプログラマブルコントローラとの間の機種依存を無くす為に、実際にプログラマブルコントローラ100上で動作するマシン語とは別の形式のコードで定義されている言語である。従来において中間言語を用いない方式では、ローダにおいてアプリケーションプログラムをマシン語に変換してダウンロードしていた。この為、例えば、プログラマブルコントローラに機種A、機種B、機種Cが存在していた場合、同一のアプリケーションプログラムを各機種にダウンロードする場合であっても、ダウンロード先の機種毎にその機種用のマシン語に変換しなければならなかった(各機種毎にそれぞれ対応するコンパイラが必要であった)。これに対し、中間言語を用いる方式では、ローダ側ではアプリケーションプログラムを中間言語(のプログラム)に変換してダウンロードし、これを各機種側でそれぞれ、中間言語/マシン語変換部114が、その機種対応のマシン語に変換してから演算実行部112側に渡し、プログラムメモリ115に格納していた。
【0005】
演算実行部112においては、CPU部116が、プログラムメモリ115に格納されているマシン語のコードを読み出して、実行/演算することで、I/O部117を介して接続されている不図示の機器の制御等の処理を実行する。
【0006】
【発明が解決しようとする課題】
一般に、上述したように中間言語を用いる方式は、中間言語のコードを仲介することにより、プログラマブルコントローラの機種依存性を無くすことを目的とした言語I/F方式である。
【0007】
しかしながら、例えばプログラマブルコントローラのアーキテクチャの変更等により、中間言語自体への追加/変更が必要になる場合があり、この場合には、そのままでは新旧機種相互の接続が出来なくなる場合がある。
【0008】
上記アーキテクチャの変更等の具体例としては、例えば以下に列挙するものがある。
(1) プログラマブルコントローラの性能UPによる命令速度のUP
(2) 命令機能のUP(1W(ワード)実行命令であったものを、1W/2Wの両
方を実行できる命令へと、命令機能をUPする等)
(3) 新規命令の追加
図13、図14は、上記中間言語の追加/変更等が起こった場合の従来の対応方法を説明する為の図である。
【0009】
図13に示すように、アーキテクチャが変更前/後で(旧機種のプログラマブルコントローラ100A、新機種のプログラマブルコントローラ100B)、基本的な内部構造が特に変わるわけではないが(図12と同じ)、中間言語/マシン語変換部114には、上記(2)、(3)の機能UPした命令または新規命令に対応する変換コードが、新規に追加されており、新ローダ110Bと共に新コマンド/新中間言語の命令コード体系が構築されている。
【0010】
従って、従来機種対応のアプリケーションプログラム(旧ローダ110Aで作成されるコード)をそのまま使用することはできない。このような問題に対して、従来では、コンバート部120により、従来機種対応のアプリケーションプログラム(中間言語に変換後のもの)を、上記新命令コード体系で動作できる形に変換して新ローダ110Bに渡し、新ローダ110Bから新機種のプログラマブルコントローラ100Bにダウンロードするようにしていた。
【0011】
図14は、コンバート部120によるコンバート方法の一例を示す図である。図示の例では、例えば旧命令の“ADDS”、“&”に相当する新命令が、それぞれ、“ADD”、“AND”であったとすると、これら旧命令を、新命令に変換する。
【0012】
また、旧命令体系では1つの命令(命令A)であったものが、新命令体系では複数の命令より成るようになっていた場合には、命令Aを複数の新命令に変換する。その逆に、旧命令体系では複数の命令より成っていたものが、新命令体系では1つの命令となっていた場合には、複数の旧命令を1つの新命令に変換する。
【0013】
上記のように、従来でも一応は、従来機種対応のアプリケーションプログラムであっても、新機種のプログラマブルコントローラ100Bで実行させることができるが、以下に述べる問題点があった。
【0014】
・旧ローダ110Aのローダをそのまま新機種のプログラマブルコントローラ100Bに繋いで動作させることができなかった。
・その逆に、新ローダ110Bをそのまま旧機種のプログラマブルコントローラ100Aに繋いで動作させることもできなかった。
【0015】
・一般に、ローダからプログラマブルコントローラへのダウンロードだけでなく、プログラマブルコントローラに格納されているプログラムをローダ側にアップロードすることが行われているが、コンバート部120では命令の逆変換を行うことができなかった。すなわち、図示の例では示されていないが、例えば新命令“ADD”に変換されるべき旧命令が、“ADDS”だけでなく他にも存在する場合、逆変換する際に“ADDS”にすべき否か判断出来なくなる。
【0016】
また、上記(1) の「命令速度のUP」に関しては、命令間で速度を調整しているような処理の場合、旧機種対応のプログラムをそのまま新機種のプログラマブルコントローラ100Bに用いると、誤動作するか動作不能となる可能性がある。
【0017】
この為、従来では、コンバート部120を経て変換後のプログラムを、新ローダ110B上でユーザ等がデバッグする作業を行った後、新機種のプログラマブルコントローラ100Bにダウンロードさせる、というような手間が掛かっていた。
【0018】
本発明の課題は、アーキテクチャが変更された機種、または異なるアーキテクチャの機種に対しても、そのままローダを接続してプログラムをダウンロードすれば動作可能とできるプログラマブルコントローラのインタフェース装置を提供することである。
【0019】
【課題を解決するための手段】
本発明によるプログラマブルコントローラのインタフェース装置は、ダウンロードされる中間言語形式のプログラムが、新/旧何れのコマンド体系に依るものかを判断する新旧コマンド判断手段と、新コマンド体系の中間言語を、プログラマブルコントローラ本体側で実行可能な形式のマシン語に変換する新中間言語/マシン語変換手段と、旧コマンド体系の1または複数の中間言語を、同一の処理内容となり且つ前記プログラマブルコントローラ本体側で正常に動作するような1または複数の新コマンド体系の中間言語へと変換/インタプリトする新中間言語への変換/インタプリト手段とを有し、該新中間言語への変換/インタプリト手段による変換/インタラプト結果を前記新中間言語/マシン語変換手段に入力させてマシン語へと変換させるように構成する。
【0020】
上記プログラマブルコントローラのインタフェース装置によれば、例えばプログラマブルコントローラを新機種にバージョンアップしたことに伴って中間言語が新コマンド体系へと移行した場合に、旧コマンド体系のプログラム(ローダ側で中間言語に変換されている)であってもそのままダウンロードして動作可能とでき、保守性、プログラムの継承に優れる。
【0021】
また、例えば、前記新中間言語への変換/インタプリト手段は、更に、変換した新コマンド体系のコマンドに変換前の旧コマンドを示す疑似命令を付加し、該疑似命令を用いて、該新中間言語への変換/インタプリト手段により変換された新コマンド体系の中間言語を、旧コマンド体系の中間言語へと逆変換する中間言語の逆変換手段を更に有するように構成する。
【0022】
前記新中間言語への変換/インタプリト手段により正しく変換/インタプリトされたか否かを旧ローダ側で確認(verify)する必要がある。これより、逆変換手段により中間言語の逆変換を行うが、その際、例えば旧コマンド体系では1W(ワード)命令、2W(ワード)命令に区別されていたものが、新コマンド体系では両方に対応する1つの新命令になっていた場合、この新命令を逆変換する際、そのままでは、1W(ワード)命令/2W(ワード)命令のどちらに逆変換すべきか判断できない。よって、変換時に1W(ワード)命令/2W(ワード)命令のどちらであったかを示す疑似命令を付加するようにしている。尚、疑似命令は、マシン語に変換する処理の際には、無意味な命令であるとして無視される。
【0023】
また、例えば、前記新中間言語への変換/インタプリト手段は、必要に応じて、変換した新コマンド体系の中間言語の前/後に遅延命令またはオペランドを挿入する。
【0024】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本実施の形態によるプログラマブルコントローラの構成ブロック図である。
【0025】
同図において、プログラマブルコントローラ1は、新機種であるものとする。本例によるプログラマブルコントローラ1は、図示の通り、新機種対応のローダ(新ローダ30B)だけでなく、旧機種対応のローダ(旧ローダ30A)も直接接続してプログラム(中間言語)をダウンロードしても動作可能となっている。動作可能となる理由は、プログラマブルコントローラ1内のローダI/F部10の構成にあり、詳しくは後述する。尚、プログラマブルコントローラ1−新ローダ30B/旧ローダ30A間の接続には、例えばRS−232Cが用いられている。
【0026】
プログラマブルコントローラ1内部は、大別して、ローダI/F(インタフェース)部10と演算実行部20とより成る。ローダI/F(インタフェース)部10は、新旧コマンド判断部11、新コマンド解読部12、新中間言語/マシン語変換部13、旧コマンド解読部14、新中間言語への変換/インタプリト部15、中間言語の逆変換部16より成る。演算実行部20は、従来と変わらず、プログラムメモリ21、CPU部22、I/O部23等より成る。
【0027】
ローダ30A、30Bは、プログラマブルコントローラのプログラム作成/動作モニタ等を行うツールであり、パソコン等で実現される。
ローダ30Aまたは30Bにおいてユーザ等により作成されたアプリケーションプログラムは、ローダ内の不図示の構成により中間言語に変換された後、プログラマブルコントローラ1側にダウンロードされる。
【0028】
プログラマブルコントローラ1側では、これを受けて、まず、新旧コマンド判断部11により、ローダから送られてきたプログラムのコマンドが、新/旧何れの命令コード体系によるものであるかを判断する。判断方法の具体例は後述する。新旧コマンド判断部11により新コマンドであると判断された場合には、従来と同様に、新コマンド解読部12(ローダコマンド解読部113に相当)を介して、新中間言語/マシン語変換部13により中間言語からマシン語に変換すればよい。
【0029】
一方、新旧コマンド判断部11により旧コマンドであると判断された場合には、この旧コマンドは、旧コマンド解読部14を介して、新中間言語への変換/インタプリタ部15に入力される。そして、この新中間言語への変換/インタプリタ部15において、後に新中間言語/マシン語変換部13で正しく変換が行われる形に変えられる。詳しくは、後に具体例を挙げて説明するが、概略的には、図2に示すように、新命令へのコンバート(従来のコンバート部120と同様の機能)だけでなく、必要に応じて疑似命令の挿入/旧命令コード体系から新命令コード体系へのインタプリトを行う。疑似命令は、中間言語の逆変換部16により逆変換処理の際に必要なものであり、これも詳しくは後述する。
【0030】
尚、旧コマンド解読部14(及び新コマンド解読部12)は、図2に示すように、単に、一旦メモリ等に格納した中間言語(のプログラム)から命令(コマンド)を抜き出す処理を行っているだけである。
【0031】
そして、新中間言語への変換/インタプリタ部15から出力される新中間言語は、新中間言語/マシン語変換部13によりマシン語に変換されて、プログラムメモリ21に格納される。演算実行部20の動作は、従来と同じであるので、特に説明しない。
【0032】
上述した処理により、旧ローダ30Aからダウンロードされたプログラムであっても新機種で実行可能な形式に変換されて、基本的には新機種で動作可能となるはずであるが、何等かの理由で正しく変換されなかった為に誤動作/動作不能となる可能性もある。よって、正しく変換されたか否かをローダ側で確認(verify)する為に、新中間言語への変換/インタプリト部15により変換後のコマンド群(新中間言語)を、中間言語の逆変換部10により逆変換して(すなわち、旧コマンドに戻す)、これを旧ローダ30Aに返信する処理を行う必要がある(よって、新ローダ30Bからダウンロードされた場合には逆変換は必要ない)。この逆変換処理の際に上記疑似命令が必要となるのであり、詳しくは後述する。
【0033】
上記の通り、本例のプログラマブルコントローラ1において特徴的な構成要素は、新旧コマンド判断部11、新中間言語への変換/インタプリト部15、中間言語の逆変換部16であり(特に、新中間言語への変換/インタプリト部15)、以下、図3以降を参照して、これら構成要素各々について詳細に説明していく。
【0034】
図3は、新旧コマンド判断部11の処理内容について説明する為の図である。
新旧コマンド判断部11は、上記の通り、新コマンドであるか旧コマンドであるかを判断するものであり、具体的な判断方法は様々であってよいが、図3にはその一例を示す。
【0035】
ここでは、旧コマンドでは「絶対番地アドレス表現」(図示のX`00')であり、新コマンドでは「論理アドレス表現」(図示のX`30')であった場合を例にする。
【0036】
この場合、新旧コマンド判断部11は、例えば図示のCMDコード部のアドレス表現がどうなっているか(X`00'かX`30'か)によって、新/旧何れであるかを判断する。
【0037】
勿論、上記一例に限るわけではなく、旧コマンドと新コマンドとでフォーマットが異なっている点を、予め開発者等が判断する等して、これに基づいて新旧コマンドの判断基準を設定しておけばよい。
【0038】
次に、以下に、新中間言語への変換/インタプリト部15の処理内容について説明する。
上述してあるように、本発明は、例えば以下に列挙するようなアーキテクチャの変更等に対応するものであり、新中間言語への変換/インタプリト部15は、これらに対応する処理を実行する。
(1) プログラマブルコントローラの性能UPによる命令速度のUP
(2) 命令機能のUP(例えば1W(ワード)実行命令であったものを、1W/2Wの両方を実行できる命令へと、命令機能をUPする等)
(3) 新規命令の追加
まず、図4を参照して、上記(1) プログラマブルコントローラの性能UPによる処理速度UPに対応する処理について説明する。
【0039】
同図では、コマンドとして「FADD」(フローティング加算命令)を例にして説明する。この例では新プログラマブルコントローラにおいても命令「FADD」自体は変更無しであるが、コントローラの性能がUP(処理速度が向上)しているため、同一のコマンドであっても、旧プログラマブルコントローラの場合と同じ動作を保証することができない(処理動作が早過ぎて、本来とりたいタイミングで動作できなくなる可能性がある)。
【0040】
これより、本例では、新中間言語への変換/インタプリト部15は、図示のように、強制的に「遅れ」を入れる為のコマンド(総称として「Delay命令」と呼ぶ)を挿入する。尚、どのコマンドに対してどの程度の遅れを入れるのかは、新機種の命令速度に応じて予め開発者等が判断して設定しておく。
【0041】
「Delay命令」の一例としては、例えば無意味な命令(MOV B、B等)等が挙げられる。あるいは、無意味なサブルーチンを必要回数分ループさせる処理を挿入してもよい。
【0042】
尚、後に中間言語の逆変換部16において逆変換を行う際には、「Delay命令」を取り除く処理を行うようにすればよい。
従来のコンバート部120では、既に説明しているように、旧命令を新命令に変更することは行っているが、処理タイミングの補正については何等考慮していない。この為、正常に動作するのか確認する為にデバッグ作業等が必要であったが、本例では必要なくなる。
【0043】
次に、図5、図6は、上記(2) 命令機能のUPに対応する処理を説明する為の図である。
まず、図5では、旧コマンド体系では1W(ワード)実行命令(ADDS)と2W(ワード)実行命令(ADD)とに区別されていたが、新コマンド体系では1W/2Wの両方を実行できる命令(ADD)へと命令機能がUPされていた場合を例にする。旧コマンド体系におけるADD(以下、旧ADDと呼ぶ)と、新コマンド体系におけるADD(以下、新ADDと呼ぶ)とは、命令語の字面は同じであるが、機能は異なっている。旧ADDは、最初から2W(ワード)用の命令であると決まっているので、演算対象データが1W(ワード)であるか2W(ワード)であるか判断できない(その必要がなかった)のに対して、新ADDはオペランドにより1W/2Wを判断する機能を有する命令である。よって、必要に応じて、適切なオペランドが付加できるようにインタプリトする処理も行うが、これについては後に図7、図8等を参照して説明するものとし、ここでは疑似命令の付加について説明する。
【0044】
図5において、まず1W/2Wの実行命令(ADDS/ADD)を、それぞれ、新命令体系のコマンド(ADD)に変換する処理は、従来のコンバート部120と同様の機能により実現される。本例では、更に、それぞれ、1W処理疑似命令、2W処理疑似命令という疑似命令を挿入する。1W処理疑似命令は、変換前の旧コマンドが1W処理の命令であったことを示し、同様に2W処理疑似命令は、変換前の旧コマンドが2W処理の命令であったことを示す為の命令である。
【0045】
これら疑似命令は、新中間言語/マシン語変換部13においては、無意味な命令であるものとして無視して処理される。疑似命令は、上述してあるように、逆変換処理の際に必要となるものであり、中間言語の逆変換部16は、1W処理疑似命令を伴う新ADDはADDSへと逆変換し、2W処理疑似命令を伴う新ADDは旧ADDへと逆変換する。尚、疑似命令の具体例を示すことに意味はない。新中間言語への変換/インタプリト部15と中間言語の逆変換部16との間で整合がとれていれば良い(例えば、それぞれ、同一内容のテーブル(“疑似命令−旧命令−新命令テーブル”等)を記憶して、このテーブルを参照して上記処理を行うようにすればよい)。
【0046】
図6には、他の例を示す。
図示の例では、旧命令体系では、ビット命令(&)、1W(ワード)命令(ANDS)、2W(ワード)命令(AND;以後、旧ANDと呼ぶ)というように各データ型毎にコマンドが存在していたものを、新命令体系では1つの命令(AND;以後、新ANDと呼ぶ)で各種データ型の演算が可能となったものとする。尚、新AND命令は、新ADD命令と同様、オペランドの論理名によって処理対象データのデータ型を判断する。
【0047】
新中間言語への変換/インタプリト部15は、図示の通り、旧コマンド「&」は「ビット処理疑似命令+(新)AND」に変換し、旧コマンド「ANDS」は「1W処理疑似命令+(新)AND」に変換し、旧コマンド「AND」は「2W処理疑似命令+(新)AND」に変換する。中間言語の逆変換部16は、各疑似命令に基づいて逆変換処理を行う。
【0048】
上記図5、図6では、各コマンドのみを示して説明したが、実際には例えば図7に示すような命令文単位で変換していくことになる。
図7の最も左側に、図示表現プログラムの一例を示す。この例では、入力がSi0、Si1(それぞれ、論理名で1W領域を示す)で、これらを加算(+S)するコマンドが示されている。これをテキスト表現にしたもの(+S Si0 Si1)をその右側に示す。ここで、旧コマンド「+S」に対応する新コマンドが「+」であり、また「+S」は1W(ワード)命令であり、1W(ワード)命令に対応する疑似命令として「α」が用意されていたとすると、新中間言語への変換/インタプリト部15による処理の結果は、図示の通り(+ αSi0 αSi1)となる。
【0049】
図示していないが、旧コマンドには2W(ワード)命令も存在するものとし、新コマンド「+」は、1W/2Wの両方を実行できる命令であるとする。この場合、中間言語の逆変換部16は、(+ αSi0 αSi1)を逆変換する際、疑似命令「α」があることによって、1W(ワード)命令すなわち「+S」へと逆変換すべきことを判断できるので、図示の通り、(+S Si0 Si1)へと逆変換できる。
【0050】
ところで、上述した説明中でも少し触れたが、上述したように旧コマンドを新コマンドに変換したり、疑似命令を挿入したりしても、新命令体系で正しく動作させられないケースが存在する。図8にその一例を示す。
【0051】
図8(a)には、1W(ワード)、2W(ワード)共に、その最上位ビットを、データとしてではなく、サインフラグとして扱う例を示している。良く知られているように、サインフラグは、正/負を表すフラグであり、負の場合にセット(1)、正の場合にリセット(0)される。
【0052】
ここで、同図(b)の左側に示すような「1001 1001 1001 1001」というデータがあったものとする。これを1W(ワード)として扱うか、2W(ワード)として扱うかによって意味が違ってくる。すなわち、1W(ワード)として扱う場合には最上位ビット(図上、矢印で示す)がサインフラグを表すものと解釈され、この場合サインフラグが‘1’であるので負を表すことにより、結果、図示の通り、「−1999」と解される。
【0053】
一方、2W(ワード)として扱う場合には、このデータは2W(ワード)の中の下位1W(ワード)と見做され、図示の通り、「0000 9999」と解される(上位1W(ワード)は図示の通り‘0000’と見做される)。
【0054】
この為、例えば図9(a)に示すように、旧命令体系におけるBCD変換命令が、BCDS(1W(ワード)用)、BCD(2W(ワード)用)であったものが、新命令体系においては1W/2Wを区別しない命令(BCD;以下、新BCDと呼ぶ)に変わっていたとする。この場合、疑似命令を付加したとしても、新中間言語/マシン語変換部13で1W/2Wを区別できるわけではないので、正しい処理が行えなくなる。すなわち、例えば図9(a)上側のようにBCDSへの入力値が「−123」である場合、「−123」(−0123)は1W(ワード)で扱う場合には2進表記で「1000 0001 0010 0011」(先頭1ビットはサインフラグ)となるが、これを2W(ワード)とした場合には「8123」と解釈されてしまう。(尚、新ローダで作成されたプログラムは、データにオペランドが付加してあり、これによって新BCD命令自体は1W/2Wを区別しない命令であっても区別可能となっている)。
【0055】
このような問題に対し、本例の新中間言語への変換/インタプリト部15では、図9(b)に示すように、例えば旧命令BCDSを新BCDに変換する際に(図示していないが、疑似命令も付加している)、「1Wレジスタ格納命令」を挿入する処理を実行している。これにより、後に演算実行部20でこの命令を実行する際には、データ「−123」が1Wレジスタに格納されてBCD変換処理が実行されることになるので、正しい演算結果が得られる。同様に、旧BCD命令を新BCD命令に変換する際には、「2Wレジスタ格納命令」を挿入すればよい。
【0056】
図9(c)は図9(b)をテキスト表現で表したものである。
図9(c)において、「:=」は代入命令を意味し、「ST0」は1Wレジスタを意味する。よって、(:= −123 ST0)は、データ−123を1Wレジスタに格納することを意味する。そして、(BCD ST0)により、1Wレジスタに格納されたデータがBCD変換される。尚、1命令が複数の命令に変換された場合には、疑似命令は、図示のように複数の命令を囲むように前後に挿入される。これを、一般化して示すと、図10のようになる。
【0057】
尚、上記のようなインタプリト処理内容は、予め開発者等が設定しておく。
図10には、旧命令体系におけるコマンド(命令A)が、複数の命令(前処理、新命令、後処理)にインタプリトされる様子を示す。
【0058】
命令Aは例えば上記BCDSに相当し、新命令は上記新BCDに相当し、前処理は上記(:= −123 ST0)に相当し、(BCD ST0)におけるST0が後処理に相当する。
【0059】
そして、これら複数の命令の前後に疑似命令(命令A処理始まり、終りをそれぞれ示す疑似命令)を挿入する。これより、中間言語の逆変換部16では、これら複数の命令は、命令Aへと逆変換すべきものと判断できる。
【0060】
上述した例では、旧機種から新機種へのバージョンアップに伴うアーキテクチャの一部変更(アーキテクチャ自体は同じであるが、命令の一部を変更)に対応できるもの(旧/新ローダの混在動作可能)として説明したが、本発明はこれに限るものではなく、全く別のアーキテクチャを持つ機種同士であっても、それぞれのローダで作成されたアプリケーションプログラムを混在動作可能にできる。
【0061】
例えば、あるアーキテクチャに従ってあるローダで図11(a)に示すプログラム(RD A,AND B,WT C)が作成されていたとする(その上にはこれのラダー図表現プログラムを示している)。これは通常はこのアーキテクチャに従った機器(プログラマブルコントローラ)にダウンロードして動作させるものであるが、本発明による言語変換方法を利用すれば、別のアーキテクチャに従った機器と接続してダウンロードしても動作させることができる。例えば、80x86系のアーキテクチャのプログラマブルコントローラにダウンロードしても、このコントローラのインタフェース部が80x86系への命令変換/インタプリト(同じ動作を行わせる命令となるように置き換える)する機能を備えていれば(開発者等が設定しておく)、このコントローラの演算実行部で正しく動作できるようになる。図11(b)には、図11(a)に示すプログラムを、80x86系のアーキテクチャ下で動作するように変換/インタプリトした例を示す。
【0062】
尚、従来でも、プログラム(RD A,AND B,WT C)をコンパイルして86系オブジェクトを生成することは行われていたが、コンバート部120の場合と同様、デバッグ作業等が必要であった。
【0063】
【発明の効果】
以上、詳細に説明したように、本発明のプログラマブルコントローラのインタフェース装置によれば、アーキテクチャが変更された機種、または異なるアーキテクチャの機種に対しても、そのまま旧ローダを接続してプログラムをダウンロードすれば動作可能とできる。
【図面の簡単な説明】
【図1】本実施の形態によるプログラマブルコントローラの構成ブロック図である。
【図2】図1に示す構成の一部を詳細に説明する為の図である。
【図3】新旧コマンド判断部の処理内容について説明する為の図である。
【図4】プログラマブルコントローラの性能UPによる処理速度UPに対応する処理について説明する為の図である。
【図5】命令機能のUPに対応する処理を説明する為の図(その1)である。
【図6】命令機能のUPに対応する処理を説明する為の図(その2)である。
【図7】命令機能のUPに対応する処理を説明する為の図(その3)である。
【図8】インタプリト処理について説明する為の図(その1)である。
【図9】インタプリト処理について説明する為の図(その2)である。
【図10】インタプリト処理について説明する為の図(その3)である。
【図11】応用例を説明する為の図である。
【図12】従来のプログラマブルコントローラの構成ブロック図である。
【図13】アーキテクチャの一部変更に対する従来の対応方法を説明する為の図(その1)である。
【図14】アーキテクチャの一部変更に対する従来の対応方法を説明する為の図(その2)である。
【符号の説明】
1 プログラマブルコントローラ
10 ローダI/F部
11 新旧コマンド判断部
12 新コマンド解読部
13 新中間言語/マシン語変換部
14 旧コマンド解読部
15 新中間言語への変換/インタプリト部
16 中間言語の逆変換部
20 演算実行部
21 プログラムメモリ
22 CPU部
23 I/O部
30A 旧ローダ
30B 新ローダ
Claims (3)
- ダウンロードされる中間言語形式のプログラムが、新/旧何れのコマンド体系に依るものかを判断する新旧コマンド判断手段と、
新コマンド体系の中間言語を、プログラマブルコントローラ本体側で実行可能な形式のマシン語に変換する新中間言語/マシン語変換手段と、
旧コマンド体系の1または複数の中間言語を、同一の処理内容となり且つ前記プログラマブルコントローラ本体側で正常に動作するような1または複数の新コマンド体系の中間言語へと変換/インタプリトする新中間言語への変換/インタプリト手段とを有し、
該新中間言語への変換/インタプリト手段による変換/インタラプト結果を前記新中間言語/マシン語変換手段に入力させてマシン語へと変換させることを特徴とするプログラマブルコントローラのインタフェース装置。 - 前記新中間言語への変換/インタプリト手段は、更に、変換した新コマンド体系のコマンドに変換前の旧コマンドを示す疑似命令を付加し、
該疑似命令を用いて、該新中間言語への変換/インタプリト手段により変換された新コマンド体系の中間言語を、旧コマンド体系の中間言語へと逆変換する中間言語の逆変換手段を更に有することを特徴とする請求項1記載のプログラマブルコントローラのインタフェース装置。 - 前記新中間言語への変換/インタプリト手段は、必要に応じて、変換した新コマンド体系の中間言語の前/後に遅延命令またはオペランドを挿入することを特徴とする請求項1または2記載のプログラマブルコントローラのインタフェース装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001183877A JP4258140B2 (ja) | 2001-06-18 | 2001-06-18 | プログラマブルコントローラのインタフェース装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001183877A JP4258140B2 (ja) | 2001-06-18 | 2001-06-18 | プログラマブルコントローラのインタフェース装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003005809A JP2003005809A (ja) | 2003-01-08 |
JP4258140B2 true JP4258140B2 (ja) | 2009-04-30 |
Family
ID=19023745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001183877A Expired - Lifetime JP4258140B2 (ja) | 2001-06-18 | 2001-06-18 | プログラマブルコントローラのインタフェース装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4258140B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008158846A (ja) * | 2006-12-25 | 2008-07-10 | Toshiba Mitsubishi-Electric Industrial System Corp | プラントコントローラ |
JP5141095B2 (ja) * | 2007-05-23 | 2013-02-13 | 東芝三菱電機産業システム株式会社 | プラントコントローラシステム |
JP5750235B2 (ja) | 2010-04-29 | 2015-07-15 | 富士機械製造株式会社 | 製造作業機 |
US10098269B2 (en) | 2010-04-29 | 2018-10-09 | Fuji Machine Mfg. Co., Ltd. | Manufacture work machine for controlling a plurality of work-element performing apparatuses by central control device |
KR101632864B1 (ko) * | 2014-06-02 | 2016-06-22 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 컨트롤러 시스템, 프로그래머블 컨트롤러, 프로그램 표시장치, 프로그램의 표시 방법 |
-
2001
- 2001-06-18 JP JP2001183877A patent/JP4258140B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003005809A (ja) | 2003-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6243864B1 (en) | Compiler for optimizing memory instruction sequences by marking instructions not having multiple memory address paths | |
JP2003323463A5 (ja) | ||
JPH11513512A (ja) | ディジタル信号プロセッサの製造方法 | |
US7721250B2 (en) | System and method for interactive and integrated software development process and phases | |
KR20010086159A (ko) | 자바 프로그램들 및 이를 위한 소프트웨어 프러덕트의플랫폼 특정 효율 강화를 위한 방법 | |
CN101120321A (zh) | 程序调试装置、程序调试方法以及程序 | |
JP2002532804A (ja) | ハイブリッドコンピュータプログラミング環境 | |
JP4258140B2 (ja) | プログラマブルコントローラのインタフェース装置 | |
CN101916223A (zh) | 程序调试方法及系统 | |
US20060143523A1 (en) | Apparatus and method for debugging embedded software | |
JP2002366602A (ja) | ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム | |
US20090049437A1 (en) | Method for configuring a computer program | |
JPH11514119A (ja) | 転送可能および転送不可能なプログラム部分を有するプログラムを移送するための方法 | |
Nuratch | A serial Bootloader with IDE extension tools design and implementation technique based on rapid embedded firmware development for developers | |
JP5082797B2 (ja) | ソフトウェア部分テストシステム | |
JP4152659B2 (ja) | データ処理システムおよび設計システム | |
CN115167868A (zh) | 代码编译方法、装置、设备及计算机存储介质 | |
JP7156094B2 (ja) | 自動コード生成方法、及び自動コード生成プログラム | |
Kildall | High-level language simplifies microcomputer programing | |
EP1369777A2 (en) | Software development system, simulator, and recording medium | |
JPS63214804A (ja) | Plc用プロセツサ及びplc | |
JPH08137684A (ja) | プログラム転送方法、プログラム開発システムならびにプログラム開発装置およびプログラム実行装置 | |
TWI637277B (zh) | 標準程式語言腳本架構結合虛擬機的控制方法及程式產品 | |
Chapman | PicoBlaze 8-bit microcontroller for Virtex-II series devices | |
US20070150873A1 (en) | Dynamic host code generation from architecture description for fast simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A625 | Written request for application examination (by other person) |
Free format text: JAPANESE INTERMEDIATE CODE: A625 Effective date: 20060810 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081225 |
|
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: 20090113 |
|
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: 20090126 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4258140 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: 20120220 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
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 |
|
EXPY | Cancellation because of completion of term |