JP2003005809A - プログラマブルコントローラのインタフェース装置 - Google Patents

プログラマブルコントローラのインタフェース装置

Info

Publication number
JP2003005809A
JP2003005809A JP2001183877A JP2001183877A JP2003005809A JP 2003005809 A JP2003005809 A JP 2003005809A JP 2001183877 A JP2001183877 A JP 2001183877A JP 2001183877 A JP2001183877 A JP 2001183877A JP 2003005809 A JP2003005809 A JP 2003005809A
Authority
JP
Japan
Prior art keywords
new
intermediate language
command
old
instruction
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.)
Granted
Application number
JP2001183877A
Other languages
English (en)
Other versions
JP4258140B2 (ja
Inventor
Keiji Ishibashi
景二 石橋
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 JP2001183877A priority Critical patent/JP4258140B2/ja
Publication of JP2003005809A publication Critical patent/JP2003005809A/ja
Application granted granted Critical
Publication of JP4258140B2 publication Critical patent/JP4258140B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【課題】 アーキテクチャ変更された新機種に対しても
旧ローダのプログラムをそのままダウンロードしても動
作できるようにする。 【解決手段】 新旧コマンド判断部11は、ダウンロー
ドされたプログラム(中間言語形式)が新/旧何れのコ
マンドによるものかを判断する。旧コマンドである場合
には、新中間言語への変換/インタプリト部15によ
り、新コマンド体系で同一の処理内容となるように新中
間言語への変換/インタプリト処理を行ってから、新中
間言語/マシン語変換部13によりマシン語に変換され
る。その際、旧コマンドが何であったかを示す疑似命令
を付加し、中間言語の逆変換部16はこの疑似命令を参
照して逆変換処理を行う。逆変換結果は旧ローダに戻さ
れ、正しく変換されているかをチェックする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラマブルコ
ントローラに係わり、特にローダ・インタフェース部に
関する。
【0002】
【従来の技術】図12は、従来のプログラマブルコント
ローラの構成ブロック図である。同図において、プログ
ラマブルコントローラ100には、ローダ110が接続
されている。プログラマブルコントローラ100内部
は、大別して、ローダI/F(インタフェース)部11
1と演算実行部112とより成る。ローダI/F(イン
タフェース)部111は、ローダコマンド解読部11
3、中間言語/マシン語変換部114より成る。演算実
行部112は、プログラムメモリ115、CPU部11
6、I/O部117等より成る。
【0003】ローダ110は、プログラマブルコントロ
ーラのプログラム作成/動作モニタ等を行うツールであ
り、パソコン等で実現される。ローダ110においてユ
ーザ等により作成されたアプリケーションプログラム
が、ローダ110内の不図示のコンパイラにより中間言
語にされた後、プログラマブルコントローラ100側に
ダウンロードされるときには、ローダコマンド解読部1
13を介して、中間言語/マシン語変換部114により
中間言語からマシン語に変換される。
【0004】ここで、中間言語とは、ローダ110等の
プログラミングツールとプログラマブルコントローラと
の間の機種依存を無くす為に、実際にプログラマブルコ
ントローラ100上で動作するマシン語とは別の形式の
コードで定義されている言語である。従来において中間
言語を用いない方式では、ローダにおいてアプリケーシ
ョンプログラムをマシン語に変換してダウンロードして
いた。この為、例えば、プログラマブルコントローラに
機種A、機種B、機種Cが存在していた場合、同一のア
プリケーションプログラムを各機種にダウンロードする
場合であっても、ダウンロード先の機種毎にその機種用
のマシン語に変換しなければならなかった(各機種毎に
それぞれ対応するコンパイラが必要であった)。これに
対し、中間言語を用いる方式では、ローダ側ではアプリ
ケーションプログラムを中間言語(のプログラム)に変
換してダウンロードし、これを各機種側でそれぞれ、中
間言語/マシン語変換部114が、その機種対応のマシ
ン語に変換してから演算実行部112側に渡し、プログ
ラムメモリ115に格納していた。
【0005】演算実行部112においては、CPU部1
16が、プログラムメモリ115に格納されているマシ
ン語のコードを読み出して、実行/演算することで、I
/O部117を介して接続されている不図示の機器の制
御等の処理を実行する。
【0006】
【発明が解決しようとする課題】一般に、上述したよう
に中間言語を用いる方式は、中間言語のコードを仲介す
ることにより、プログラマブルコントローラの機種依存
性を無くすことを目的とした言語I/F方式である。
【0007】しかしながら、例えばプログラマブルコン
トローラのアーキテクチャの変更等により、中間言語自
体への追加/変更が必要になる場合があり、この場合に
は、そのままでは新旧機種相互の接続が出来なくなる場
合がある。
【0008】上記アーキテクチャの変更等の具体例とし
ては、例えば以下に列挙するものがある。 (1) プログラマブルコントローラの性能UPによる命令
速度のUP (2) 命令機能のUP(1W(ワード)実行命令であった
ものを、1W/2Wの両方を実行できる命令へと、命令
機能をUPする等) (3) 新規命令の追加 図13、図14は、上記中間言語の追加/変更等が起こ
った場合の従来の対応方法を説明する為の図である。
【0009】図13に示すように、アーキテクチャが変
更前/後で(旧機種のプログラマブルコントローラ10
0A、新機種のプログラマブルコントローラ100
B)、基本的な内部構造が特に変わるわけではないが
(図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”だ
けでなく他にも存在する場合、逆変換する際に“ADD
S”にすべき否か判断出来なくなる。
【0016】また、上記(1) の「命令速度のUP」に関
しては、命令間で速度を調整しているような処理の場
合、旧機種対応のプログラムをそのまま新機種のプログ
ラマブルコントローラ100Bに用いると、誤動作する
か動作不能となる可能性がある。
【0017】この為、従来では、コンバート部120を
経て変換後のプログラムを、新ローダ110B上でユー
ザ等がデバッグする作業を行った後、新機種のプログラ
マブルコントローラ100Bにダウンロードさせる、と
いうような手間が掛かっていた。
【0018】本発明の課題は、アーキテクチャが変更さ
れた機種、または異なるアーキテクチャの機種に対して
も、そのままローダを接続してプログラムをダウンロー
ドすれば動作可能とできるプログラマブルコントローラ
のインタフェース装置を提供することである。
【0019】
【課題を解決するための手段】本発明によるプログラマ
ブルコントローラのインタフェース装置は、ダウンロー
ドされる中間言語形式のプログラムが、新/旧何れのコ
マンド体系に依るものかを判断する新旧コマンド判断手
段と、新コマンド体系の中間言語を、プログラマブルコ
ントローラ本体側で実行可能な形式のマシン語に変換す
る新中間言語/マシン語変換手段と、旧コマンド体系の
1または複数の中間言語を、同一の処理内容となり且つ
前記プログラマブルコントローラ本体側で正常に動作す
るような1または複数の新コマンド体系の中間言語へと
変換/インタプリトする新中間言語への変換/インタプ
リト手段とを有し、該新中間言語への変換/インタプリ
ト手段による変換/インタラプト結果を前記新中間言語
/マシン語変換手段に入力させてマシン語へと変換させ
るように構成する。
【0020】上記プログラマブルコントローラのインタ
フェース装置によれば、例えばプログラマブルコントロ
ーラを新機種にバージョンアップしたことに伴って中間
言語が新コマンド体系へと移行した場合に、旧コマンド
体系のプログラム(ローダ側で中間言語に変換されてい
る)であってもそのままダウンロードして動作可能とで
き、保守性、プログラムの継承に優れる。
【0021】また、例えば、前記新中間言語への変換/
インタプリト手段は、更に、変換した新コマンド体系の
コマンドに変換前の旧コマンドを示す疑似命令を付加
し、該疑似命令を用いて、該新中間言語への変換/イン
タプリト手段により変換された新コマンド体系の中間言
語を、旧コマンド体系の中間言語へと逆変換する中間言
語の逆変換手段を更に有するように構成する。
【0022】前記新中間言語への変換/インタプリト手
段により正しく変換/インタプリトされたか否かを旧ロ
ーダ側で確認(verify)する必要がある。これより、逆
変換手段により中間言語の逆変換を行うが、その際、例
えば旧コマンド体系では1W(ワード)命令、2W(ワ
ード)命令に区別されていたものが、新コマンド体系で
は両方に対応する1つの新命令になっていた場合、この
新命令を逆変換する際、そのままでは、1W(ワード)
命令/2W(ワード)命令のどちらに逆変換すべきか判
断できない。よって、変換時に1W(ワード)命令/2
W(ワード)命令のどちらであったかを示す疑似命令を
付加するようにしている。尚、疑似命令は、マシン語に
変換する処理の際には、無意味な命令であるとして無視
される。
【0023】また、例えば、前記新中間言語への変換/
インタプリト手段は、必要に応じて、変換した新コマン
ド体系の中間言語の前/後に遅延命令またはオペランド
を挿入する。
【0024】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。図1は、本実施の形態によ
るプログラマブルコントローラの構成ブロック図であ
る。
【0025】同図において、プログラマブルコントロー
ラ1は、新機種であるものとする。本例によるプログラ
マブルコントローラ1は、図示の通り、新機種対応のロ
ーダ(新ローダ30B)だけでなく、旧機種対応のロー
ダ(旧ローダ30A)も直接接続してプログラム(中間
言語)をダウンロードしても動作可能となっている。動
作可能となる理由は、プログラマブルコントローラ1内
のローダI/F部10の構成にあり、詳しくは後述す
る。尚、プログラマブルコントローラ1−新ローダ30
B/旧ローダ30A間の接続には、例えばRS−232
Cが用いられている。
【0026】プログラマブルコントローラ1内部は、大
別して、ローダI/F(インタフェース)部10と演算
実行部20とより成る。ローダI/F(インタフェー
ス)部10は、新旧コマンド判断部11、新コマンド解
読部12、新中間言語/マシン語変換部13、旧コマン
ド解読部14、新中間言語への変換/インタプリト部1
5、中間言語の逆変換部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から
ダウンロードされたプログラムであっても新機種で実行
可能な形式に変換されて、基本的には新機種で動作可能
となるはずであるが、何等かの理由で正しく変換されな
かった為に誤動作/動作不能となる可能性もある。よっ
て、正しく変換されたか否かをローダ側で確認(verif
y)する為に、新中間言語への変換/インタプリト部1
5により変換後のコマンド群(新中間言語)を、中間言
語の逆変換部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処理疑似命令を伴う新AD
Dは旧ADDへと逆変換する。尚、疑似命令の具体例を
示すことに意味はない。新中間言語への変換/インタプ
リト部15と中間言語の逆変換部16との間で整合がと
れていれば良い(例えば、それぞれ、同一内容のテーブ
ル(“疑似命令−旧命令−新命令テーブル”等)を記憶
して、このテーブルを参照して上記処理を行うようにす
ればよい)。
【0046】図6には、他の例を示す。図示の例では、
旧命令体系では、ビット命令(&)、1W(ワード)命
令(ANDS)、2W(ワード)命令(AND;以後、
旧ANDと呼ぶ)というように各データ型毎にコマンド
が存在していたものを、新命令体系では1つの命令(A
ND;以後、新ANDと呼ぶ)で各種データ型の演算が
可能となったものとする。尚、新AND命令は、新AD
D命令と同様、オペランドの論理名によって処理対象デ
ータのデータ型を判断する。
【0047】新中間言語への変換/インタプリト部15
は、図示の通り、旧コマンド「&」は「ビット処理疑似
命令+(新)AND」に変換し、旧コマンド「AND
S」は「1W処理疑似命令+(新)AND」に変換し、
旧コマンド「AND」は「2W処理疑似命令+(新)A
ND」に変換する。中間言語の逆変換部16は、各疑似
命令に基づいて逆変換処理を行う。
【0048】上記図5、図6では、各コマンドのみを示
して説明したが、実際には例えば図7に示すような命令
文単位で変換していくことになる。図7の最も左側に、
図示表現プログラムの一例を示す。この例では、入力が
Si0、Si1(それぞれ、論理名で1W領域を示す)
で、これらを加算(+S)するコマンドが示されてい
る。これをテキスト表現にしたもの(+S Si0 Si
1)をその右側に示す。ここで、旧コマンド「+S」に
対応する新コマンドが「+」であり、また「+S」は1
W(ワード)命令であり、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(ワード)は図示の通り‘000
0’と見做される)。
【0054】この為、例えば図9(a)に示すように、
旧命令体系におけるBCD変換命令が、BCDS(1W
(ワード)用)、BCD(2W(ワード)用)であった
ものが、新命令体系においては1W/2Wを区別しない
命令(BCD;以下、新BCDと呼ぶ)に変わっていた
とする。この場合、疑似命令を付加したとしても、新中
間言語/マシン語変換部13で1W/2Wを区別できる
わけではないので、正しい処理が行えなくなる。すなわ
ち、例えば図9(a)上側のようにBCDSへの入力値
が「−123」である場合、「−123」(−012
3)は1W(ワード)で扱う場合には2進表記で「1000
0001 0010 0011」(先頭1ビットはサインフラグ)と
なるが、これを2W(ワード)とした場合には「812
3」と解釈されてしまう。(尚、新ローダで作成された
プログラムは、データにオペランドが付加してあり、こ
れによって新BCD命令自体は1W/2Wを区別しない
命令であっても区別可能となっている)。
【0055】このような問題に対し、本例の新中間言語
への変換/インタプリト部15では、図9(b)に示す
ように、例えば旧命令BCDSを新BCDに変換する際
に(図示していないが、疑似命令も付加している)、
「1Wレジスタ格納命令」を挿入する処理を実行してい
る。これにより、後に演算実行部20でこの命令を実行
する際には、データ「−123」が1Wレジスタに格納
されてBCD変換処理が実行されることになるので、正
しい演算結果が得られる。同様に、旧BCD命令を新B
CD命令に変換する際には、「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,A
ND B,WT C)が作成されていたとする(その上
にはこれのラダー図表現プログラムを示している)。こ
れは通常はこのアーキテクチャに従った機器(プログラ
マブルコントローラ)にダウンロードして動作させるも
のであるが、本発明による言語変換方法を利用すれば、
別のアーキテクチャに従った機器と接続してダウンロー
ドしても動作させることができる。例えば、80x86
系のアーキテクチャのプログラマブルコントローラにダ
ウンロードしても、このコントローラのインタフェース
部が80x86系への命令変換/インタプリト(同じ動
作を行わせる命令となるように置き換える)する機能を
備えていれば(開発者等が設定しておく)、このコント
ローラの演算実行部で正しく動作できるようになる。図
11(b)には、図11(a)に示すプログラムを、8
0x86系のアーキテクチャ下で動作するように変換/
インタプリトした例を示す。
【0062】尚、従来でも、プログラム(RD A,A
ND B,WT C)をコンパイルして86系オブジェ
クトを生成することは行われていたが、コンバート部1
20の場合と同様、デバッグ作業等が必要であった。
【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. 【請求項2】 前記新中間言語への変換/インタプリト
    手段は、更に、変換した新コマンド体系のコマンドに変
    換前の旧コマンドを示す疑似命令を付加し、 該疑似命令を用いて、該新中間言語への変換/インタプ
    リト手段により変換された新コマンド体系の中間言語
    を、旧コマンド体系の中間言語へと逆変換する中間言語
    の逆変換手段を更に有することを特徴とする請求項1記
    載のプログラマブルコントローラのインタフェース装
    置。
  3. 【請求項3】 前記新中間言語への変換/インタプリト
    手段は、必要に応じて、変換した新コマンド体系の中間
    言語の前/後に遅延命令またはオペランドを挿入するこ
    とを特徴とする請求項1または2記載のプログラマブル
    コントローラのインタフェース装置。
JP2001183877A 2001-06-18 2001-06-18 プログラマブルコントローラのインタフェース装置 Expired - Lifetime JP4258140B2 (ja)

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 true JP2003005809A (ja) 2003-01-08
JP4258140B2 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008158846A (ja) * 2006-12-25 2008-07-10 Toshiba Mitsubishi-Electric Industrial System Corp プラントコントローラ
JP2008293176A (ja) * 2007-05-23 2008-12-04 Toshiba Mitsubishi-Electric Industrial System Corp プラントコントローラ
JP5791855B1 (ja) * 2014-06-02 2015-10-07 三菱電機株式会社 プログラマブルコントローラシステム、プログラマブルコントローラ、プログラム表示装置、プログラムの表示方法
US9363936B2 (en) 2010-04-29 2016-06-07 Fuji Machine Mfg. Co., Ltd. Manufacture work machine and manufacture work system
US9374935B2 (en) 2010-04-29 2016-06-21 Fuji Machine Mfg. Co., Ltd. Manufacture work machine

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008158846A (ja) * 2006-12-25 2008-07-10 Toshiba Mitsubishi-Electric Industrial System Corp プラントコントローラ
JP2008293176A (ja) * 2007-05-23 2008-12-04 Toshiba Mitsubishi-Electric Industrial System Corp プラントコントローラ
US9363936B2 (en) 2010-04-29 2016-06-07 Fuji Machine Mfg. Co., Ltd. Manufacture work machine and manufacture work system
US9374935B2 (en) 2010-04-29 2016-06-21 Fuji Machine Mfg. Co., Ltd. Manufacture work machine
US9485895B2 (en) 2010-04-29 2016-11-01 Fuji Machine Mfg. Co., Ltd. Central control device and centralized control method
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
JP5791855B1 (ja) * 2014-06-02 2015-10-07 三菱電機株式会社 プログラマブルコントローラシステム、プログラマブルコントローラ、プログラム表示装置、プログラムの表示方法
WO2015186178A1 (ja) * 2014-06-02 2015-12-10 三菱電機株式会社 プログラマブルコントローラシステム、プログラマブルコントローラ、プログラム表示装置、プログラムの表示方法
KR20160014116A (ko) * 2014-06-02 2016-02-05 미쓰비시덴키 가부시키가이샤 프로그래머블 컨트롤러 시스템, 프로그래머블 컨트롤러, 프로그램 표시장치, 프로그램의 표시 방법
KR101632864B1 (ko) 2014-06-02 2016-06-22 미쓰비시덴키 가부시키가이샤 프로그래머블 컨트롤러 시스템, 프로그래머블 컨트롤러, 프로그램 표시장치, 프로그램의 표시 방법
US10001767B2 (en) 2014-06-02 2018-06-19 Mitsubishi Electric Corporation Programmable controller system, programmable controller, program display device, and program display method

Also Published As

Publication number Publication date
JP4258140B2 (ja) 2009-04-30

Similar Documents

Publication Publication Date Title
US6243864B1 (en) Compiler for optimizing memory instruction sequences by marking instructions not having multiple memory address paths
JP4950454B2 (ja) テスト自動化のスタック階層化
US7721250B2 (en) System and method for interactive and integrated software development process and phases
JPS6017539A (ja) エミユレ−シヨン方式
KR20010086159A (ko) 자바 프로그램들 및 이를 위한 소프트웨어 프러덕트의플랫폼 특정 효율 강화를 위한 방법
US20040261055A1 (en) Predictively processing tasks for building software
CN101916223A (zh) 程序调试方法及系统
JPH04266125A (ja) ディジタルコンピュータの操作方法
JP2003005809A (ja) プログラマブルコントローラのインタフェース装置
JPH11514119A (ja) 転送可能および転送不可能なプログラム部分を有するプログラムを移送するための方法
JP2006227681A (ja) デバッグ装置、デバッグ方法およびプログラム
JP5082797B2 (ja) ソフトウェア部分テストシステム
JP4152659B2 (ja) データ処理システムおよび設計システム
JP2003122409A (ja) プログラムチェック方法、シーケンスプログラム編集装置、記録媒体、及びプログラム
JP4569284B2 (ja) 集積回路のデバッグ方法、デバッグプログラム
JPS63214804A (ja) Plc用プロセツサ及びplc
JPH08137684A (ja) プログラム転送方法、プログラム開発システムならびにプログラム開発装置およびプログラム実行装置
US20090254879A1 (en) Method and system for assuring data integrity in data-driven software
JP2005141406A (ja) コンパイラ検査システムおよび同プログラム
JP2007004516A (ja) 組込みシステムのプログラムデバッグ方法
JPH05250221A (ja) シミュレータ実行方式
JP2559924B2 (ja) プログラマブルコントローラ
Oliveira et al. The Preprocessor
JP2004139369A (ja) 定数アドレス領域を指示するポインタ解析方法
JPH11120030A (ja) プログラムのテスト装置及び方法並びにプログラムのテスト用ソフトウェアを記録した記録媒体

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