JPH08179953A - コントローラのプログラム自動生成装置及び方法 - Google Patents

コントローラのプログラム自動生成装置及び方法

Info

Publication number
JPH08179953A
JPH08179953A JP6323104A JP32310494A JPH08179953A JP H08179953 A JPH08179953 A JP H08179953A JP 6323104 A JP6323104 A JP 6323104A JP 32310494 A JP32310494 A JP 32310494A JP H08179953 A JPH08179953 A JP H08179953A
Authority
JP
Japan
Prior art keywords
processing
intermediate language
program
controller
assembler
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
Application number
JP6323104A
Other languages
English (en)
Inventor
Eiji Yoshioka
英治 吉岡
Yasunori Katayama
恭紀 片山
Susumu Kitani
進 木谷
Yuji Kikuchi
雄司 菊池
Osamu Takahashi
修 高橋
Yoshitoshi Hamada
佐敏 浜田
Masami Ito
正己 伊藤
Haruyoshi Kumayama
治良 熊山
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.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Information and Control Systems Inc
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 Hitachi Ltd, Hitachi Information and Control Systems Inc filed Critical Hitachi Ltd
Priority to JP6323104A priority Critical patent/JPH08179953A/ja
Publication of JPH08179953A publication Critical patent/JPH08179953A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】中間言語コマンドとコントローラのハードウェ
ア構成との依存関係を示す対応表と、前記ハードウェア
構成に依存しない変換アルゴリズムとを用いて、中間言
語をオブジェクトコードへ変換するプログラム生成装置
を提供する。 【構成】プログラム生成装置2において、中間言語処理
機構6は、中間言語コマンドとコントローラのハードウ
ェア構成との依存関係を示す対応表を記憶する辞書ファ
イル18と、入力される中間言語コマンドの処理形態を
識別する制御機構10と、識別された中間コマンドを、
辞書ファイル18に記憶されている対応表を用い、その
識別された種別に応じて設定されているアルゴリズムに
よりアセンブラ命令列へ変換するビット演算処理部1
1、混合演算処理部12、数値演算処理部13及びプロ
グラム制御用処理部14と、前記変換されたアセンブラ
命令列に含まれるラベルの管理処理を行なうラベル管理
部19とを有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラマブル・ロジ
ック・コントローラ(PLC)に係り、特に、ラダー図
等の図式表現のシーケンス制御プログラムを、コントロ
ーラの実行可能なオブジェクトコードによるプログラム
に変換する装置及び方法に関する。
【0002】
【従来技術】従来、産業用機器を制御するコントローラ
のプログラムを生成する方法としては、例えば特願平2
−15412号公報に記載されている例のように、入力
されたラダー図等の図式表現の制御プログラムを、使用
するコントローラに対応するオブジェクトコードに変換
する方法がある。
【0003】
【発明が解決しようとする課題】しかし、上記従来技術
では、コントローラに対する専用のオブジェクトコード
を生成するため、コントローラのハード構成を変更する
毎に、オブジェクトコードを再生成する必要があるが、
この再生成のためには、オブジェクトコードの変換に用
いる変換プログラムを、コントローラのハード構成に応
じて変更しなければならない。
【0004】このような変換プログラムの変更には、手
間がかかる上、変換ミスがコントローラの誤動作の原因
となる場合があり、信頼性を下げる原因の一つとなる可
能性がある。
【0005】本発明の目的は、上記点を考慮して、コン
トローラのハードウエア構成が変更された場合でも、簡
単な変更処理を行なうだけで、適切なオブジェクトコー
ドを生成することを可能とする、コントローラのプログ
ラム生成装置及び方法を提供することにある。
【0006】より具体的には、図式表現した制御用プロ
グラムに対応する前記ハードウエア構成に依存しない中
間言語のコマンド列を、前記中間言語の各コマンドと前
記ハードウエア構成に応じたアセンブラ命令列とを対応
づける対応表を用いて、前記ハードウエア構成に応じた
オブジェクトコードに変換することを可能とする、コン
トローラのプログラム生成装置及び方法を提供すること
を目的とする。
【0007】本発明の他の目的は、前記中間言語のコマ
ンド列を前記オブジェクトコードに変換する際に、前記
中間言語の各コマンドを、当該コマンドが示す演算処理
の形態によって識別し、その演算処理形態毎に予め定め
られているアルゴリズムを用いて、オブジェクトコード
に変換することを可能とする、コントローラのプログラ
ム自動生成装置及び方法を提供することにある。
【0008】
【課題を解決するための手段】上記目的は、図式表現に
よる制御プログラムの処理ステップを定義する中間言語
コマンドのリストを受け入れ、前記中間言語コマンドの
リストからコントローラが実行可能な、前記制御プログ
ラムに対応する機械語プログラムを生成するコントロー
ラのプログラム自動生成装置であって、予め設定され前
記コントローラのハードウエア構成に応じて交換可能
な、前記中間言語コマンドのそれぞれと当該ハードウエ
ア構成に依存するアセンブラ命令列との対応関係を示す
対応表を記憶する記憶部と、前記記憶部に記憶されてい
る対応表を参照して、前記制御プログラムの各処理ステ
ップに応じた中間言語コマンドのそれぞれを、前記アセ
ンブラ命令列に変換することにより、前記受け入れた中
間言語コマンドのリストに対応するアセンブラ列を求め
る中間言語処理機構と、前記アセンブラ列から、前記コ
ントローラのハードウエア構成に応じて機械語プログラ
ムを生成する機械言語生成機構とを有することを特徴と
するコントローラのプログラム自動生成装置により達成
できる。
【0009】上記目的は、また、図式表現による制御プ
ログラムの処理ステップを定義する中間言語コマンドの
リストを受け入れて、前記中間言語コマンドのリストか
らコントローラが実行可能な、前記制御プログラムに対
応する機械語プログラムを生成するコントローラのプロ
グラム自動生成方法であって、前記中間言語コマンドの
それぞれと前記コントローラのハードウエア構成に依存
したアセンブラ命令列との関係を示す対応表を、前記コ
ントローラのハードウエア構成毎に予め設定し、前記中
間言語コマンドを、前記対応表を参照して、前記アセン
ブラ命令列に変換することにより、前記受け入れた中間
言語コマンドのリストに対応するアセンブラ列を求め、
前記アセンブラ列から、前記コントローラのハードウエ
ア構成に応じて機械語プログラムを生成することを特徴
とするコントローラのプログラム自動生成方法を特徴と
するコントローラのプログラム自動生成方法により達成
できる。
【0010】
【作用】本発明によるプログラム生成装置では、記憶部
に、コントローラのハードウエア構成毎に予め設定され
ている、中間言語コマンドのそれぞれと、コントローラ
のハードウエア構成に依存したアセンブラ命令列との対
応関係を示す対応表が記憶されている。
【0011】中間言語処理機構では、この対応表を参照
して、制御プログラムの各処理ステップに応じた中間言
語コマンドのそれぞれを、所定の変換アルゴリズムによ
りアセンブラ命令列に順次変換し、変換された複数のア
センブラ命令列を統合することにより、前記受け入れた
中間言語コマンドのリストに対応するアセンブラ列を求
める。機械言語生成機構では、求められたアセンブラ列
に応じて、コントローラのハードウエア構成に応じた機
械語プログラムを生成する。
【0012】本発明においては、コントローラのハード
ウエア構成との依存関係は、前記対応表に含まれてお
り、前記対応表を参照する中間言語処理機構で用いられ
る変換アルゴリズムは、コントローラのハードウエア構
成に直接は依存しないものである。
【0013】このため、本発明によれば、コントローラ
のハードウェア構成が変更された場合には、前記対応表
を変更するだけで、変更後のコントローラのハードウエ
ア構成に応じた、適切な機械語プログラムを生成するこ
とが可能となる。
【0014】
【実施例】以下、本発明の一実施例を、図を用いて説明
する。
【0015】本実施例によるプログラム生成装置2は、
例えば図1に示すような、制御システムで用いられるも
のである。最初、本実施例のプログラム生成装置2の説
明に先立ち、本制御システムの全体的な動作、及び生成
したプログラムにより制御しようとするプログラム可能
なコントローラ3について説明する。
【0016】プログラム生成装置2は、例えば図1に示
すように、コントローラ3のハードウエア構成に関する
情報(以下、コントローラ情報と略称する)や、そのコ
ントローラの制御に関する情報を示した、SEQUENCE CON
TROL DIAGRAM (SCDと略称する)、SEQUENCE FUNCTION CH
ART(SFCと略称する)、数値演算等の制御プログラムから
構成されるプログラム生成用情報(a)を、入力装置1か
ら受け入れる。
【0017】本実施例において、入力装置1は、例えば
図2、図3、図4に示されるような、ラダー図等の図式
表現によって表わされた制御プログラムを、図5に示す
ような中間言語コマンドのリストに変換して出力するも
のとする。ここで、中間言語コマンドは、コントローラ
3のハードウエア構成に直接は依存しないものとする。
【0018】入力装置1としては、例えば特開平2−1
5412号記載の装置のように、SCD、SFC、数値
演算などの図式表現の制御プログラムを、上記図5のよ
うな中間言語コマンドのリストに変換して出力する装置
を用いることが出来る。
【0019】もちろん、本発明に用いることができる入
力装置1の形態は、これに限定されるものではなく、入
力されるコントローラの制御プログラムを、後述するよ
うなビット演算や数値演算等の複数種類の演算処理によ
って表現される中間言語コマンドのリストに変換して出
力するものであれば、その構成は限定されない。
【0020】プログラム生成装置2は、上記図5に示す
ような中間言語コマンドのリストを受け入れ、その中間
言語コマンドが示す演算処理形態の種類を識別し、その
形態の種類に応じてそれぞれ用意されている対応表を用
いて、前記中間言語コマンドのリストを、例えば図45
に示すようなアセンブラリストへ変換して、そのアセン
ブラリストに応じて機械語プログラム(b)を生成して、
コントローラ3へ出力する。
【0021】ここで、前記中間言語コマンドの変換に用
いられる対応表とは、演算処理形態の各種類に含まれる
各コマンドに対応する、コントローラ3のハードウエア
構成に応じたアセンブラ命令列を示す対応表である。
【0022】なお、図5及び図45中に示す、ビット演
算A1、A2、数値演算B1、B2、B3、混合演算C
1、プログラム制御コマンドD1(D1’)は、それぞ
れ、図2及び図3に同じ符号で示されている制御プログ
ラムに対応する部分を示すものである。
【0023】コントローラ3は、プログラム(b)を受
け入れ、それに従って、PI/O3aを介し指令情報
(c)を駆動機能などを有する装置4へ出力するととも
に、装置4の動作状態情報(d)を受け入れることによ
り、装置4の動作を制御する。また、装置4の動作状態
は、コントローラ3を介し、モニタ情報(e)として表示
機構5に出力される。
【0024】表示機構5は、上記モニタ情報(e)と共
に、プログラム生成装置2から出力される、入力装置1
から出力された変換前制御プログラムや、変換後のアセ
ンブラリスト、及び変換に伴い生じる各種の情報などを
表示する。
【0025】コントローラ3は、より具体的には、例え
ば図6に示すように、イーサネット等で接続されている
複数のコントローラユニット31、・・・、33から構
成されるものである。また、同様に装置4は、各コント
ローラユニットから制御される装置41、・・・、42
から構成されている。
【0026】コントローラユニット31は、例えば図6
に示すように、プログラム生成装置2で生成されたプロ
グラムを処理するコントローラa311、コントローラ
b313、コントローラa311、コントローラb31
3の制御プログラムを格納するメモリa312、メモリ
b314、コントローラa311及びコントローラb3
13の処理結果を装置41へ出力及び装置41の動作状
態を入力するI/O315、及び、上記各機器との間の
情報伝達を行うための制御用バスa316を有する。
【0027】コントローラa311は、例えば図7に示
すように、プログラム生成装置2のプログラム情報をイ
ーサネットを介して入力するLANC3111、受信し
たプログラム情報を記憶するメモリ3113、制御用バ
スaの情報伝達の管理を行うのバス制御装置3114、
及び、入力されたプログラムを処理するMPU3112
を有する。
【0028】次に、上記のような制御システムにおける
コントローラ3のプログラムを生成する、本実施例のプ
ログラム生成装置2について説明する。
【0029】本実施例のプログラム生成装置2は、例え
ば図1に示すように、入力装置1から出力されたプログ
ラム生成用情報(a)からアセンブラリストを生成する
ために必要な対応表等の情報を記憶する辞書ファイル1
8と、入力装置1からのプログラム生成用情報(a)を
アセンブラリストへ変換する中間言語処理機構6と、中
間言語処理機構6の処理結果であるアセンブラリストを
格納するアセンブラリストファイル17と、中間言語処
理機構6での処理に用いられる各種情報を格納する内部
表現ファイル9と、入力装置1を介して入力されたSC
D、SFC、数値演算等の制御プログラムに関する各種情報
を格納するプログラムファイル8と、アセンブラリスト
ファイル17に格納されているアセンブラリストに基づ
いて、コントローラ3が実行できる機械語プログラムを
生成する機械言語生成機構7とを有する。
【0030】中間言語処理機構6は、本発明の特徴的構
成であり、制御機構10、ビット演算部11、混合演算
部12、数値演算部13、制御用プログラム部14、及
び、ラベル管理部19を有する。各構成の動作について
は、以下でフローチャートを用いて詳細に説明する。
【0031】機械言語生成装置16は、アセンブラ変換
機器15及び機械言語変換機構16を備え、入力される
アセンブラリストに基づいて、コントローラ3のハード
ウエア構成に応じた機械語を生成するもので、例えば周
知の技術のアセンブラ装置を用いることが出来る。
【0032】辞書ファイル18は、例えば、入力装置1
から入力された制御プログラムに含まれる中間言語コマ
ンドの演算処理形態の種類が、以下で説明するビット演
算処理、混合演算処理、数値演算処理、制御処理のうち
いずれに該当するかを判定するために用いるコマンド分
離対応表と、前記4種類の処理のそれぞれにおいて、各
中間言語コマンドに対応するアセンブラ命令列とアセン
ブラ語数とを示す、例えば図8(イ)〜(ニ)に示すよ
うな、ビット演算用対応表、混合演算用対応表、数値演
算用対応表、及び、プログラム制御用対応表とを、予め
データとして格納している。なお、図中に示すA1〜D
1は、図5に示されているコマンドにそれぞれ対応す
る。
【0033】本実施例においては、辞書ファイル18に
記憶されている上記対応表は、コントローラ3のハード
ウエア構成に応じて予め設定しておき、それを用いるこ
とにより、中間言語処理機構6での処理アルゴリズムに
おいては、コントローラ3のハードウエア構成を考慮し
なくとも良い構成となっている。
【0034】このため、本実施例によれば、コントロー
ラ3のハードウエア構成が変更された場合には、これら
対応表を変更するだけで、ハードウエア構成の変更に応
じた、機械語プログラムを生成することが出来る。
【0035】また、本実施例では、中間言語コマンドの
演算処理形態の種類を4つに分けているが、本発明での
演算処理形態の種類の決定方法はこれに限定されるもの
ではなく、例えば、ビット演算処理、数値演算処理、プ
ログラム制御処理の3つに分けて、処理を行なう構成と
しても良い。
【0036】内部表現ファイル9は、後述する中間言語
処理機構6での処理に用いられる情報や、当該処理に伴
い生成される特定の情報等を格納するものであり、例え
ば図9(イ)〜(ハ)に示すように、入力装置1を介し
て入力されたコントローラ3のハードウエア構成に関す
る情報として、例えばID番号、制御バスナンバー、ネ
ットワークアドレス、命令アドレス先頭番地等を含むコ
ントローラ情報テーブル9001と、中間言語コマンド
をアセンブラ命令列に変換するときに必要となる情報と
して、例えば入力されたSCD、SFC、数値演算等で
表わされた制御プログラムに対応する中間言語コマンド
を所定の内部表現に変換して得られる、変換の対象とな
る中間言語コマンドのプログラムナンバー、中間言語コ
マンド、中間言語データ記号等を含むコマンド情報テー
ブル109とを格納する。
【0037】内部表現ファイル9は、さらに、中間言語
コマンドをアセンブラ命令列に変換した後にコントロー
ラ3が実行できるオブジェクトコードを機械語生成機構
7で生成するために必要な情報として、例えばアセンブ
ラリストファイル17に格納されているアセンブラリス
トのポインタ、語数、命令実行アドレス等を含むリンケ
ージ情報テーブル118と、コマンド情報テーブル10
9に格納されているコマンド情報を展開するときに必要
なアドレスを示している中間言語ポインタとデータ記号
の関係を示すデータ情報テーブル9002とを格納す
る。
【0038】内部表現ファイル9は、さらに、予め設定
されている中間言語コマンドで示されている各コントロ
ーラの内部メモリまたはI/Oメモリ(外部メモリ)と
そのベースアドレスとの関係を示すベースアドレス情報
テーブル11447と、アセンブラ命令列にラベルで記
述されているアドレスの定義参照関係等を示す、各種の
ラベル管理情報テーブル等(図示せず)を格納する。
【0039】次に、本実施例の中間言語処理機構6の各
構成要素の動作について、図10〜図22を用いて説明
する。また、具体的なデータ例を用いての中間言語処理
機構6の動作については、後に、図23〜図32を用い
て説明する。
【0040】最初、中間言語処理機構6の制御機構10
の動作を、図10のフローチャートを参照して説明す
る。
【0041】制御機構10は、最初、入力処理101と
して、入力装置1から出力される、コントローラ情報、
SCD、SFC、数値演算等のプログラム生成用情報(a)を
入力する入力処理を行なう。次に、内部表現変換処理1
02として、入力処理101で入力されたSCD、SFC、数
値演算等に対応する中間言語コマンドを、後述するよう
な形態の内部表現に変換する。具体的には、入力された
中間言語のプログラム(図5参照)の各コマンドを、プ
ログラムナンバー(以下PNと略称する)、中間言語コマ
ンド、中間言語データ記号からなるコマンド情報によっ
て表現する。このコマンド情報は、内部表現ファイル9
のコマンド情報テーブル109へ順次出力され、格納さ
れる。
【0042】コマンド形式処理103では、内部表現変
換処理102の結果である中間言語コマンドを、辞書フ
ァイル18に予め記憶されているコマンド分離対応表1
08を用いて、各中間言語コマンドがプログラム制御処
理か、数値処理か、混合演算処理か、ビット処理かを判
断する。
【0043】コマンド形式処理103の判断結果から、
現在対象となっている中間言語コマンドがビット処理で
あると判断されたならば、当該中間言語コマンドに対応
する、上記内部表現変換処理102で生成され内部表現
ファイル9のコマンド情報テーブル109に格納されて
いるコマンド情報をビット演算処理部11へ出力する、
という内部表現出力処理(ビット演算用)104を実行
する。
【0044】同様に、コマンド形式処理103処理判断
の結果が混合演算ならば、そのコマンド情報を混合演算
処理部12へ出力する内部表現出力処理(混合演算用)
105を、コマンド形式処理103処理判断の結果が数
値演算ならば、そのコマンド情報を数値演算処理部13
へ出力する内部表現出力処理(数値演算用)106を、
コマンド形式処理103処理判断の結果がプログラム制
御処理ならば、そのコマンド情報を制御処理部14へ出
力する内部表現出力処理(制御処理用)107を実行す
る。
【0045】次に、ビット演算処理部11の動作を図1
1のフローチャートを用いて説明する。
【0046】ビット演算処理部11は、内部表現ファイ
ル9のコマンド情報テーブル109からのビット演算に
係るコマンド情報を入力する入力処理111を実行し、
この入力されたコマンド情報から中間言語コマンドとデ
ータ記号とを切分けるデータ記号切分け処理112を実
行する。
【0047】中間言語コマンド照合処理113では、上
記処理112で切り分けられた中間言語コマンドの中間
言語コマンド名を、辞書ファイル18のビット演算対応
表ファイル117(図8参照)の中からサーチし、その
中間言語コマンド名に対応するアセンブラ命令列とアセ
ンブラの語数を抽出する。
【0048】アドレス変換処理114では、上記処理1
12で切り分けられたデータ記号を用いて実アドレス変
換を行なう。このアドレス変換処理については、後に図
15等を用いて詳細に説明する。
【0049】中間言語コマンド照合処理113で得られ
たアセンブラ命令列は、ビット演算対応表ファイル11
7より生成されているため、アドレスは未定である。こ
のため、アセンブラ列出力処理115では、前記アセン
ブラ命令列と、アドレス変換処理114の処理で求めら
れたI/Oやデータの実アドレスを用いて、前記アセン
ブラ命令列の未定アドレスを決定し、アセンブラリスト
ファイル17へ出力する。
【0050】中間言語コマンドは、通常、複数のアセン
ブラ命令から構成されるので、内部表現出力処理116
では、前記アセンブラ列と中間言語コマンドの対応を取
るために、当該中間言語コマンドに対応するアセンブラ
リストの先頭アドレスを示すポインタ118bと、コマ
ンドを展開したときのアセンブラ命令列の語数118a
を、内部表現ファイル9へ送り、リンケージ情報118
に格納する。機械言語生成機構7では、このリンケージ
情報を用いて、中間言語処理機構6で得られたアセンブ
ラリスト(アセンブラ列)から機械語プログラムを生成
する。
【0051】次に、混合演算処理部12の動作を、図1
2のフローチャートを用いて説明する。混合演算処理部
12の詳細フローは、上記図11に示されるビット演算
処理部11の動作と、以下の点を除いて同じである。よ
って、ここでは、相違点のみを説明する。
【0052】混合演算処理部12では、図11の中間言
語コマンド照合処理113が、中間言語コマンド照合処
理123と、ラベル管理処理124とに変更される。
【0053】すなわち、中間言語コマンド照合処理12
3では、辞書ファイル18の混合演算対応表ファイル1
28を用い、上記図11の中間言語コマンド照合処理1
13と同様に、アセンブラ列を生成する。
【0054】ラベル管理処理124では、前記アセンブ
ラ命令列にラベルで記述されているアドレスの定義参照
関係を明確にするために、前記ラベルの定義されている
アセンブラ命令のアドレスと、参照されているアセンブ
ラ命令のアドレスとを、内部表現ファイル9のラベル管
理テーブル127に格納する。
【0055】次に、数値演算処理部13の動作を、図1
3のフローチャートを用いて説明する。数値演算処理部
13の詳細フローは、上記図11に示されるビット演算
処理部11の動作と、以下の点を除いて同じであるの
で、ここでは、相違点のみを説明する。
【0056】数値演算処理部12では、図11の中間言
語コマンド照合処理113が、中間言語コマンド照合処
理133に変更される。すなわち、中間言語コマンド照
合処理133では、辞書ファイル18の数値演算対応表
136を用い、上記図11の中間言語コマンド照合処理
113と同様に、アセンブラ列を生成する。
【0057】次に、制御用プログラム処理部(以下では
制御処理部と略称する)14の動作を、図14のフロー
チャートを用いて説明する。制御処理部14の詳細フロ
ーは、上記図11に示されるビット演算処理部11の動
作と、以下の点を除いて同じであるので、ここでは、相
違点のみを説明する。
【0058】制御処理部14では、図11の中間言語コ
マンド照合処理113が、中間言語コマンド照合処理1
43に変更され、当該処理143とアドレス変換処理1
14とが終了した時点で、ラベル管理処理144が実行
される。
【0059】すなわち、中間言語コマンド照合処理14
3では、辞書ファイル18のプログラム制御用対応表1
48を用い、上記図11の中間言語コマンド照合処理1
13と同様に、アセンブラ列を生成する。さらに、ラベ
ル管理処理144では、上記図12のラベル管理処理1
24と同様に、前記アセンブラ命令列にラベルで記述さ
れているアドレスの定義参照関係を明確にするために、
前記ラベルの定義されているアセンブラ命令のアドレス
と、参照されているアセンブラ命令のアドレスとを、内
部表現ファイル9のラベル管理テーブル147に格納す
る。
【0060】ラベル管理処理144と図12のラベル管
理処理124との違いは、ラベル管理処理144が中間
言語コマンド照合処理143とアドレス変換処理114
の両方が完了してから起動される点である。
【0061】この理由は、混合演算処理に於いてラベル
は、コマンド内でクローズするため、アドレス変換処理
114が終了しなくても定義アドレスと参照アドレスが
定義できるためである。一方、制御演算処理のラベル
は、複数コマンドに渡って影響があるため、アドレス変
換処理114が終了しないと、前記定義アドレス、参照
アドレスが決定できないためである。
【0062】上記図11〜14のビット演算処理11、
混合演算処理12、数値演算処理13、制御処理14で
用いられるアドレス変換114を、図15〜図19を用
いて、より詳細に説明する。また、具体的な処理例につ
いては、図33〜図44を用いて、後に説明する。
【0063】アドレス変換処理114では、図15に示
すように、最初、前記コマンドとデータの切り分け処理
112(例えば図11参照)で切り分けられたデータ記
号の構成により、データ記号がビット演算によるもの
か、数値演算によるものかの判断をするビット演算、数
値演算判断処理1141が実行される。
【0064】ビット演算、数値演算判断処理1141の
判断結果が、ビット演算処理の場合、さらに、変換しよ
うとするアドレスがメモリかメモリマップドI/Oかを
判断するメモリ、I/O判断処理1142が実行され
る。一方、当該処理1141の結果が数値演算処理の場
合には、変換しようとするアドレスが、メモリかメモリ
マップドI/Oかを判断するメモリ、I/O判断処理1
143が実行される。
【0065】メモリ、I/O判断処理1142の結果に
より、アドレスがメモリ上のとき、ビット演算メモリア
ドレス変換処理1144へ進み、そこでデータ記号を実
アドレスに変換する。また、前記処理1142の結果に
よりアドレスがI/O上のとき、ビット演算I/Oアド
レス変換処理1145へ進み、データ記号を実アドレス
に変換する。
【0066】同様に、メモリ、I/O判断処理1143
の結果により、アドレスがメモリ上のデータの場合に
は、数値演算処理メモリアドレス変換処理1146へ進
み、データ記号を実アドレスに変換し、前記処理114
3の結果によりアドレスがI/O上の場合には、数値演
算処理I/Oアドレス変換処理1147へ進み、データ
記号を実アドレスに変換する。
【0067】ビット演算メモリアドレス変換処理114
4では、図16のフローチャートに示すように、前記デ
ータ記号の中からビット情報を抽出してワークメモリ1
1448へ格納するビット抽出処理11441、及び、
前記データ記号の中からワード情報を抽出してワードア
ドレスとしてワークメモリ11448へ格納するワード
抽出処理11442が実行される。
【0068】さらに、ビット演算メモリアドレス変換処
理1144では、コントローラ3がバイト単位で処理さ
れる場合に対応できるように、ワークメモリ11448
に格納されているワードアドレスをバイトアドレスに変
換し、それをオフセットアドレスとするオフセットアド
レス変換処理処理11443と、前記データ記号の情報
を用いて内部表現ファイル9に格納されているベースア
ドレス情報11447を参照し、ビット型のベースアド
レスに対応するアドレスをサーチするベースアドレス変
換処理11444とが実行される。
【0069】さらに、ビット演算メモリアドレス変換処
理1144では、前記ベースアドレスと前記オフセット
アドレスとの和を求め、それを実行アドレスとする実行
アドレス変換処理11445と、前記実行アドレスとワ
ークメモリ11448に格納されているビット情報とを
用いて、所定のビット操作を行うビット変換処理114
46とが実行される。
【0070】ビット演算I/Oアドレス変換処理114
5でも、上記ビット演算メモリアドレス変換処理114
4と同様な処理が実行される。
【0071】すなわち、ビット演算I/Oアドレス変換
処理1145では、図17のフローチャートに示すよう
に、前記データ記号のビット情報を抽出してワークメモ
リ11448へ格納するビット抽出処理11451、前
記データ記号の中からワード情報を抽出してワードアド
レスとしてワークメモリ11448へ格納するワード抽
出処理11452、バイト単位で処理されるコントロー
ラ3に対応できるように、ワークメモリ11448に格
納されているワードアドレスをバイトアドレスに変換
し、オフセットアドレスとするオフセットアドレス変換
処理11453が順次実行される。
【0072】さらに、ビット演算I/Oアドレス変換処
理1145では、前記データ記号の情報を用いて、内部
表現ファイル9のベースアドレス情報11447よりI
/Oのベースアドレスに対応するアドレスをサーチする
ベースアドレス変換処理11454、前記ベースアドレ
スと前記オフセットアドレスとの和を求め、その和を実
行アドレスとする実行アドレス変換処理11455、及
び、前記実行アドレスとワークメモリ11448に格納
されているビット情報とを用いて、所定のビット操作を
行うビット変換処理11456が順次実行される。
【0073】数値演算メモリアドレス変換処理1146
では、図18のフローチャートに示すように、前記デー
タ記号のワードアドレスを抽出してワークメモリ114
48に格納するワード抽出処理11461と、コントロ
ーラ3でアドレスがバイト単位で処理される場合に対応
して、ワークメモリ11448に格納されているワード
アドレスをバイトアドレスに変換しオフセットアドレス
とするオフセットアドレス変換処理11462と、前記
データ記号のデータ型がワードかロングワードか浮動小
数点かを判定するデータ型判定処理11463とが順次
実行される。
【0074】さらに、数値演算メモリアドレス変換処理
1146では、前記処理11463の判定結果がワード
の場合、内部表現ファイル9のベースアドレス情報11
447よりワード型のベースアドレスに対応するアドレ
スをサーチするワード型ベースアドレス変換処理114
64と、前記処理11463の判定結果がロングワード
の場合、内部表現ファイル9のベースアドレス情報11
447よりロングワード型のベースアドレスに対応する
アドレスをサーチするロングワード型ベースアドレス変
換処理11465と、前記処理11463の判定結果が
浮動小数点型の場合、内部表現ファイル9のベースアド
レス情報11447より浮動小数点型のベースアドレス
に対応するアドレスをサーチする浮動小数点型ベースア
ドレス変換処理11466とがそれぞれ実行される。
【0075】最後に、数値演算メモリアドレス変換処理
1146では、前記サーチされ決定されたベースアドレ
スと前記オフセットアドレスとの和が求められ、その和
を実行アドレスとして設定する実行アドレス変換処理1
1467が実行される。
【0076】数値演算I/Oアドレス変換処理1147
では、図19のフローチャートに示すように、前記デー
タ記号のワードアドレスを抽出してワークメモリ114
48に格納するワード抽出処理11471と、ワークメ
モリ11448に格納されているワードアドレスを、ア
ドレスがバイト単位で処理されるコントローラ3の場
合、バイトアドレスに変換しオフセットアドレスとする
オフセットアドレス変換処理11472と、前記データ
記号の情報から内部表現ファイル9のベースアドレス情
報11447よりI/Oのベースアドレスに対応するア
ドレスをサーチするベースアドレス変換処理11473
と、前記ベースアドレスと前記オフセットアドレスとの
和を求め、それを実行アドレスとする実行アドレス変換
処理11474とが、順次実行される。
【0077】次に、上記で述べたラベル管理部19(図
1参照)、ラベル管理処理124(図12参照)、ラベ
ル管理処理144(図14参照)で行なわれる、アセン
ブラ列でのラベルの管理に関する処理手順例を、図20
〜22を用いて説明する。
【0078】ラベル管理部19の処理では、図20に示
すように、最初、内部表現ファイル9のラベル管理テー
ブル147からラベル定義場所とラベル名を入力するラ
ベル入力処理191を行なう。次に、内部表現ファイル
9に格納されているコマンド情報109とリンケージ情
報118とから、中間言語コマンドのPN及びポインタ
を入力し、前記ラベル定義位置に相当するアセンブラリ
ストのポインタをサーチするポインタ抽出処理192を
実行する。最後に、ポインタ抽出処理192の処理結果
である前記ポインタを、アセンブラリストファイル17
に記憶されているアセンブラリストに、ラベル定義とし
てラベル名を出力するアセンブラリストラベル出力処理
193を実行する。
【0079】ラベル管理処理124では、図21に示す
ように、図12の中間言語コマンド照合処理123から
PNを入力するPN入力処理1241と、内部表現ファ
イル9に格納されている混合ラベル管理テーブル127
に前記PNを登録するPN登録処理1242とを行な
う。次に、前記PNが登録された混合ラベル管理テーブ
ル127から、前記PNに対応するラベル名を抽出する
ラベル抽出処理1243を行ない、さらに、アセンブラ
命令列内の参照ラベル位置の仮ラベルを前記ラベル抽出
処理1243で求めた前記ラベルで置き換るアセンブラ
命令列参照ラベル置換処理1244を実行する。最後
に、アセンブラ命令列内の定義ラベル位置の仮ラベルを
前記ラベル抽出処理1243で求めた前記ラベルで置き
換るアセンブラ命令列定義用仮ラベル置換処理1245
を行なう。
【0080】ラベル管理処理144では、図22に示す
ように、前記コマンドとデータ切り分け処理112(図
14参照)からPNを入力するPN入力処理1441が
行なわれ、次に、この入力されたPNが、内部表現ファ
イル9に格納されているラベル管理テーブル147の定
義場所に登録されているかどうかを判断する定義PN登
録確認処理1442が行なわれる。定義PN登録確認処
理1442の判断の結果、前記PNが未登録の場合、ラ
ベル管理テーブル147に定義場所及び参照場所を出力
するPN登録処理1443を行なう。
【0081】定義PN登録確認処理1442の結果が登
録済みの場合及びPN登録処理1443の処理後には、
ラベル管理テーブル147から定義場所に登録されてい
るPNに相当するラベル名を抽出するラベル抽出処理1
444を実行し、最後に、アセンブラ命令列の参照ラベ
ルを、前記抽出されたラベルに置き換えるアセンブラ命
令列参照ラベル置換処理1445が実行される。
【0082】次に、上記で説明したような処理構成を有
する、本実施例のプログラム生成装置2の具体的な動作
例を、入力される制御コマンドの種別毎、すなわち、ビ
ット演算処理、数値演算処理、混合演算処理、及び、プ
ログラム制御用処理のそれぞれについて、図23〜32
を用いて説明する。
【0083】なお、以下の説明で用いる各フローチャー
トにおいては、矩形部で囲まれたものは処理、角が丸い
矩形部で囲まれているものは情報を表すものとする。ま
た、図中に示す辞書ファイル18、内部表現ファイル
9、及びアセンブラリストファイル17に格納されてい
る情報の内容及び格納形態は、一例であり、本発明にお
ける情報記憶部として機能する各ファイル9、17、1
8の構成を限定するものではない。
【0084】また、以下の説明において、本実施例のプ
ログラム生成装置2は、特願平2ー15412号記載の
「コンピュータ制御システムの制御用プログラム自動生
成方法及び装置」に例示されている装置(MICAと略
称する)からの出力を受け入れるものとする。すなわ
ち、SCD、SFC、数値演算等の制御プログラムは、
MICAを介して入力され、中間言語コマンドのリスト
として出力されるものとする。
【0085】入力される制御コマンドがビット演算処理
の場合における、プログラム生成装置2の動作につい
て、図23、24を用いて説明する。ここでの基本的な
処理は、図10の制御機構処理及び図11のビット演算
部処理に従うものである。
【0086】最初、図23に示すように、中間言語処理
機構6の制御機構10は、入力装置1からの出力である
制御プログラムに応じた中間言語コマンドのリストを取
り込むための入力処理101を実行し、次に、入力され
た中間言語コマンドリストを、内部表現ファイル9のコ
マンド情報テーブル109に出力する内部表現変換処理
102を実行する。ここで、内部表現変換処理102に
よると、図23中に示されているような、SCDのプロ
グラムの結合要素1001に対応する処理は、中間言語
コマンド”QST”1003となる。
【0087】コマンド形式処理103では、出力”QS
T”1003が、辞書ファイル18のコマンド分離対応
表108と照合されて、その演算処理形態の種類であ
る”ビット”1004として出力される。
【0088】出力”ビット”1004は、ビット演算処
理を示すので、内部表現処理(ビット演算)104に入
力される。内部表現処理104では、内部表現変換処理
102で求められたコマンド情報であるデータ群(P
N”4000”、コマンド”QST”、内部表現デー
タ”M100”)1005を、ビット演算処理11へ出
力する。
【0089】ビット演算処理11では、図24に示すよ
うに、最初、入力処理111で、内部表現処理104か
ら出力されたデータ群(PN”4000”、コマンド”
QST”、内部表現データ”M100”)1005を、
コマンドとデータ記号の切り分け処理112へ出力す
る。
【0090】コマンドとデータ記号の切り分け処理11
2では、コマンド”QST”1007を、中間言語コマ
ンド照合処理113へ出力し、内部表現によりデータ記
号”M100”1010をアドレス変換処理114へ出
力し、さらに、PN”4000”1009をアセンブラ
列出力処理115に出力する。
【0091】出力”QST”1007は、辞書ファイル
18のビット演算用対応表117と照合されて、データ
群(語数”3”、アセンブラ列”move(stck)(Ab),・・,
and(Ab)(Ls F/F)”)1008として、中間言語コマン
ド照合処理113から出力される。一方、データ記号”
M100”1010は、上述したアドレス変換処理11
4(図15参照)により、M100の示す情報としての
データ群(実行アドレス”ea”、ビット情報”offsse
t”)1011に変換され、出力される。
【0092】アセンブラ列出力処理115では、データ
群(語数”3”、アセンブラ列”move(stck)(Ab),・・,
and(Ab)(Ls F/F)”)1008内のアセンブラ列の仮ア
ドレス部分が、データ群(実行アドレス”ea”、ビット
情報”offsset”)1011に置き換えられ、アセンブ
ラリストファイル17へアセンブラ命令列1013とし
て出力され、そのアセンブラ命令列1013に応じたポ
インタ”1”がアセンブラリストファイル17から内部
表現格納処理116へ出力される。
【0093】アセンブラ列出力処理115では、さら
に、データ群(語数”3”及びアセンブラ列”move(stc
k)(Ab),・・,and(Ab)(Ls F/F)”)1008、及び、P
N”4000”1009から、データ群(語数”3”、
PN”4000”)1012が求められ、内部表現格納
処理116へ出力される。
【0094】内部表現格納処理116では、データ群
(語数”3”、PN”4000”)1012、及び、ア
センブラリストファイル17から出力されたポインタ”
1”1014を合わせて、リンケージ情報(語数”
3”、PN”4000”、ポインタ”1”)1015を
求め、内部表現ファイル9のリンケージ情報テーブル1
18へ出力する。
【0095】入力される制御コマンドが混合演算処理の
場合における、プログラム生成装置2の動作について、
図25〜27を用いて説明する。ここでの基本的な処理
は、図10の制御機構処理10及び図12の混合演算部
処理12に従うものである。
【0096】ここで、上記ビット演算処理の場合と同じ
処理については、図中に同じ符号を付し、その説明を省
略する。
【0097】本混合演算処理の場合と上記ビット演算処
理の場合との主な違いは、上記のビット演算処理11
が、混合演算の場合には混合演算処理12に変更され、
中間言語コマンド照合処理113が、中間言語コマンド
照合処理123とラベル管理処理124とに変更される
点である。
【0098】すなわち、混合演算処理の場合には、図2
5に示すように、例えば図中の混合演算1001が入力
装置1を介して入力されると、上記ビット演算処理の場
合と同様に、入力処理101と内部表現変換処理102
とにより、コマンド”CLD”1003が得られる。さ
らに、コマンド”CLD”1003を用いて、コマンド
形式処理103及び内部表現出力処理105により、こ
の混合演算処理に対応したデータ群(PN”400
1”、コマンド”CLD”、データ”NW300)10
09が求められ、混合演算処理12へ出力される。
【0099】混合演算処理12では、図26に示すよう
に、入力処理111を介して入力されたデータ群100
9がコマンドとデータ記号との切り分け処理112で、
コマンド”CLD”1010と、データ記号”NW30
0”1017と、PN”4001”とに切り分けられ
る。
【0100】中間言語コマンド照合処理123では、コ
マンド”CLD”1011を用いて、辞書ファイル18
の混合演算用対応表128から、前記コマンドに対応す
るデータ群(語数"4"、アセンブラ列”CMP(Ea0)(A
b);..;L1 Nop”、参照位置"2"、定義位置"4")101
3を求め、ラベル管理処理124へ出力する。ここで、
アセンブラ列には、所定の仮ラベル名(本例では”L
1”)を有するラベルが用いられている。
【0101】ラベル管理処理124では、データ群(語
数"4"、アセンブラ列”CMP(Ea0)(Ab);..;L1 Nop”、
参照位置"2"、定義位置"4")1013と、コマンドとデ
ータ記号の切り分け処理112から出力されたPN”4
001”1016とを受け入れ、PN”4001”10
14を、内部表現ファイル6の混合ラベル管理テーブル
127の使用されていない登録場所に格納する。内部表
現ファイル9の混合ラベル管理テーブル127では、前
記PNが格納された登録場所に対応するラベル名”KG
1”1015が、ラベル管理処理124へ出力される。
【0102】アセンブラ列出力処理115及び内部表現
格納処理116では、図27に示すように、上記ビット
演算処理の場合と同様な処理が実行される。
【0103】すなわち、アセンブラ列出力処理115で
は、ラベル管理処理124から出力された前記ラベル名
が用いられたアセンブラ列を有するデータ群1019、
コマンドとデータの切り分け処理112から出力される
PN”4001”(PNデータ)1016、及びアドレ
ス変換処理114から出力される実行アドレス”ea”
(実行アドレスデータ)1018を用いて、データ群1
019内のアセンブラ列の仮アドレス部分を、実行アド
レスデータ1018へ置き換える。さらに、仮アドレス
部分が置き換えられたアセンブラ命令列1020を、ア
センブラリストファイル17へ出力すると共に、データ
群(語数”4”、PN”4001”)1021を求め
て、内部表現格納処理116へ出力する。
【0104】アセンブラ列出力処理115では、さら
に、入力されたアセンブラ命令列1020に応じたポイ
ンタ”4”を、アセンブラリストファイル17から内部
表現格納処理116へ出力する。
【0105】内部表現格納処理116では、データ群
(語数”4”、PN”4001”)1021、及び、ア
センブラリストファイル17から出力されたポインタ”
4”1022を合わせて、リンケージ情報(語数”
4”、PN”4001”、ポインタ”4”)1023と
して、内部表現ファイル9のリンケージ情報テーブル1
18へ出力する。
【0106】入力される制御コマンドが数値演算処理の
場合における、プログラム生成装置2の動作について、
図28、29を用いて説明する。ここでの基本的な処理
は、図10の制御機構処理10及び図13の数値演算部
処理13に従うものである。ここで、上記ビット演算処
理の場合と同じ処理については、図中に同じ符号を付
し、その説明を省略する。
【0107】本数値演算処理の場合と、上記ビット演算
処理の場合との主な違いは、上記場合のビット演算処理
11が、数値演算処理13に変更され、中間言語コマン
ド照合処理113が、中間言語コマンド照合処理133
に変更される点である。
【0108】すなわち、数値演算処理の場合には、図2
8に示すように、例えば図中の数値演算1001が入力
装置1を介して入力されると、上記ビット演算処理の場
合と同様に、入力処理101と内部表現変換処理102
とにより、コマンド”A”1003が得られる。さら
に、コマンド”A”1003を用いて、コマンド形式処
理103及び内部表現出力処理106により、この数値
演算に対応したデータ群(PN”4002”、コマン
ド”A”、データ”NW200)1005が求められ、
数値演算処理13へ出力される。
【0109】数値演算処理13では、図29に示すよう
に、入力処理111を介して入力されたデータ群100
6がコマンドとデータ記号との切り分け処理112で、
コマンド”A”1007と、データ記号”NW200”
1010と、PN”4002”とに切り分けられる。
【0110】中間言語コマンド照合処理133では、コ
マンド”A”1007を用いて、辞書ファイル18の数
値演算用対応表136から、前記コマンドに対応するア
センブラ命令列とその語数を含むデータ群1008を求
める。また、アドレス変更処理114では、データ記
号”NW200”1010に対応する実行アドレス”e
a”1011を求める。
【0111】アセンブラ列出力処理115及び内部表現
格納処理116では、図29に示すように、上記ビット
演算処理の場合と同様な処理が実行される。
【0112】すなわち、アセンブラ列出力処理115で
は、中間言語コマンド照合処理133から出力されたデ
ータ群1008、コマンドとデータの切り分け処理11
2から出力されるPNデータ1009、及びアドレス変
換処理114から出力される実行アドレスデータ101
1を用いて、データ群1008内のアセンブラ命令列の
仮アドレス部分が、実行アドレスデータ1011に置き
換えられ、アセンブラリストファイル17へアセンブラ
命令列1014として出力される。さらに、データ群
(語数”1”、PN”4002”)1013が求めら
れ、内部表現格納処理116へ出力される。
【0113】アセンブラ列出力処理115では、さら
に、入力されたアセンブラ命令列1014に応じたポイ
ンタ”8”を、アセンブラリストファイル17から内部
表現格納処理116へ出力する。
【0114】内部表現格納処理116では、データ群1
013、及び、アセンブラリストファイル17から出力
されたポインタデータ1015を合わせて、リンケージ
情報(語数”1”、PN”4002”、ポインタ”
8”)1016を求め、内部表現ファイル9のリンケー
ジ情報テーブル118へ出力する。
【0115】入力される制御コマンドがプログラム制御
処理の場合における、プログラム生成装置2の動作につ
いて、図30〜32を用いて説明する。ここでの基本的
な処理は、図10の制御機構処理10及び図14の制御
処理14に従うものである。ここで、上記ビット演算処
理の場合と同じ処理については、図中に同じ符号を付
し、その説明を省略する。
【0116】本プログラム制御処理の場合と、上記ビッ
ト演算処理の場合との主な違いは、上記場合のビット演
算処理11が、混合演算の場合には制御処理14に変更
され、中間言語コマンド照合処理113が、中間言語コ
マンド照合処理143に変更され、ラベル管理処理14
4が追加される点である。
【0117】すなわち、プログラム制御処理の場合に
は、図30に示すように、例えば図中の制御1001が
入力装置1を介して入力されると、上記ビット演算処理
の場合と同様に、入力処理101と内部表現変換処理1
02とにより、コマンド”B”1003が得られる。さ
らに、コマンド”B”1003を用いて、コマンド形式
処理103及び内部表現出力処理105により、この制
御に対応したデータ群(PN”4003”、コマンド”
B”、データ”PN4010)1008が求められ、制
御処理14へ出力される。
【0118】制御処理14では、図31に示すように、
入力処理111を介して入力されたデータ群1009
が、コマンドとデータ記号との切り分け処理112で、
コマンド”B”(コマンドデータ)1010と、PN”
4003、4010”(PNデータ)1014とに切り
分けられる。なお、ここでは、データ記号に該当するデ
ータは含まれていない。
【0119】中間言語コマンド照合処理143では、コ
マンド”B”1010を用いて、辞書ファイル18の制
御用対応表148から、前記コマンドに対応するデータ
群(語数"1"、アセンブラ列"Bra L1"、参照位置"1")
1013を求め、ラベル管理処理144へ出力する。
【0120】ラベル管理処理144では、ラベル定義場
所”4010”を示すPNデータ1014と、内部表現
ファイル9の制御ラベル管理テーブル147の定義場所
のデータとを照合し、前記PNが未登録の場合には、制
御ラベル管理テーブル147の使用されていないラベル
名の定義場所の項目に”4010”を格納し、参照場所
の項目に”4003”を格納する。登録されている場合
には、内部表現ファイルの制御ラベル管理テーブル14
7から出力される参照場所に”4003”を追加し、該
当ラベル名を出力する。
【0121】アセンブラ列出力処理115及び内部表現
格納処理116では、図32に示すように、上記ビット
演算処理の場合と同様な処理が実行される。
【0122】すなわち、アセンブラ列出力処理115で
は、ラベル管理処理144から出力された前記ラベル名
が用いられたアセンブラ命令列を有するデータ群101
7から、アセンブラ命令列1018を求めアセンブラリ
ストファイル17へ出力し、さらに、データ群(語数”
1”、PN”4003”)1019を求め、内部表現格
納処理116へ出力する。
【0123】アセンブラ列出力処理115では、さら
に、入力されたアセンブラ命令列1018に応じたポイ
ンタ”9”(ポインタデータ)1020が、アセンブラ
リストファイル17から内部表現格納処理116へ出力
される。
【0124】内部表現格納処理116では、データ群1
019、及びポインタデータ1020を合わせて、リン
ケージ情報(語数”1”、PN”4003”、ポイン
タ”9”)1021を求め、内部表現ファイル9のリン
ケージ情報テーブル118へ出力する。
【0125】次に、上記図24、図26、図29で用い
られているアドレス変換処理114(図15参照)にお
ける処理動作について、データ記号の種別毎の具体例
を、図33〜図44を用いて説明する。
【0126】アドレス変換処理114に、データ記号”
I/O204”が入力された場合について、図33、図
34を用いて説明する。ここで、基本的な処理は、図1
5のアドレス変換処理114及び図17のビット演算I
/Oアドレス変換処理1145に従うものである。
【0127】データ記号”I/O204”は、データ記
号がビット演算用であることを示す情報’I/O’を有
しているので、図33に示すように、ビット演算、数値
演算判断処理1141の判断結果により、メモリI/O
判断処理1142へ前記データ記号”I/O204”1
001を出力する。さらに、データ記号”I/O20
4”1001は、当該データ記号がI/O用であること
を示す情報’I/O’を有しているので、メモリI/O
判断処理1142の判断結果により、ビット演算I/O
アドレス変換処理1145にデータ記号”I/O20
4”1002を出力する。
【0128】ビット演算I/Oアドレス変換処理114
5では、以下のような処理が実行される。
【0129】最初、ビット抽出処理11451では、前
記出力であるデータ記号”I/O204”1002から
ビット情報”4”(4ビット目)1004を抽出し、ワ
ークメモリ11448へ出力し、さらに、ワード抽出処
理11452へデータ記号”I/O204”1005を
出力する。
【0130】ワード抽出処理11452では、前記出力
であるデータ記号”I/O204”1005から、ワー
ド情報”20”1006を抽出し、ワークメモリ114
48へ格納する。
【0131】オフセットアドレス変換処理11453で
は、ワークメモリ11448に格納されているワード情
報”20”1008を用い、ワードのオフセットであ
る”20”を2倍して得られるバイトオフセットを、オ
フセットアドレス”40”1009として出力する。こ
こで2倍するのは、本実施例では、ワードが2バイトか
ら構成されるのであるためである。
【0132】ベースアドレス変換処理11454では、
内部表現ファイル9のベースアドレス情報11447か
ら、データ型がI/Oに相当するベースアドレス”$F
F00”1010をサーチし、それを前記オフセットア
ドレス”40”1009と合わせて、ベースアドレス及
びオフセットアドレスを示すデータ群として、ベースア
ドレス、オフセットアドレス”$FF00、40”10
11を出力する。
【0133】実行アドレス変換処理11455では、図
34に示すように、前記出力であるベースアドレス、オ
フセットアドレス”$FF00、40”1011から、
ベースアドレスとオフセットアドレスとの和が求めら
れ、実行アドレス”$FF40”1013として出力さ
れる。
【0134】ビット変換処理11456では、前記出力
である実行アドレス”$FF40”1013を、本実施
例でのアセンブラ言語に記述されているアセンブラ列の
実行アドレスeaとして出力するとともに、前記ビット
情報”4”(4ビット目)1014をビット情報off
set”4”として出力する。
【0135】アドレス変換処理114に、データ記号”
M100”が入力された場合について、図35、図36
を用いて説明する。ここで、基本的な処理は、図15の
アドレス変換処理114及び図16のビット演算メモリ
アドレス変換処理1144に従うものである。
【0136】データ記号”M100”は、データ記号が
ビット演算用であることを示す情報’M’を有している
ので、図35に示すように、ビット演算、数値演算判断
処理1141の判断結果により、データ記号”M10
0”1001を、メモリI/O判断処理1142へ出力
する。さらに、前記出力であるデータ記号”M100”
1001は、データ記号がメモリ用であることを示す情
報’M’を有しているので、メモリI/O判断処理11
42の判断結果により、データ記号”M100”100
2をビット演算メモリアドレス変換処理1144へ出力
する。
【0137】ビット演算メモリアドレス変換処理114
4では、以下のような処理が実行される。
【0138】最初、ビット抽出処理11441では、前
記出力であるデータ記号”M100”1002のビット
情報”0”(0ビット目)1004を抽出して、ワーク
メモリ11448へ出力するとともに、ワード抽出処理
11442へデータ記号”M100”1005を出力す
る。ワード抽出処理11442では、前記出力であるデ
ータ記号”M100”1005から、ワード情報”1
0”1006を抽出して、ワークメモリ11448へ格
納する。
【0139】ここで、本実施例では、ワードは2バイト
から構成されるため、オフセットアドレス変換処理11
443では、ワークメモリ11448に格納されている
ワード情報”10”1008から、ワードのオフセット
である”10”を2倍し、得られるバイトオフセットに
応じたオフセットアドレス”20”1009を出力す
る。
【0140】ベースアドレス変換処理11444では、
内部表現ファイル9のベースアドレス情報11447か
ら、データ型が”M”に相当するベースアドレス”$F
000”1010をサーチし、先の処理11443で求
められたオフセットアドレス”20”1009と合わせ
て、ベースアドレス、オフセットアドレス”$F00
0、20”1011として出力する。
【0141】実行アドレス変換処理11445では、図
36に示すように、前記出力であるベースアドレス、オ
フセットアドレス”$F000、20”1011から、
ベースアドレスとオフセットアドレスとの和が求めら
れ、実行アドレス”$F020”1013として出力さ
れる。
【0142】ビット変換処理11446では、前記出力
である実行アドレス”$F020”1013を、本実施
例のアセンブラ言語に記述されているアセンブラ列の実
行アドレスeaとして出力するとともに、ワークメモリ
11448に格納されているビット情報”0”(0ビッ
ト目)1014ビットを、情報offset”0”とし
て出力する。
【0143】アドレス変換処理114に、データ記号”
I/OW30”が入力された場合について、図37、図
38を用いて説明する。ここで、基本的な処理は、図1
5のアドレス変換処理114及び図19の数値演算I/
Oアドレス変換処理1147に従うものである。
【0144】データ記号”I/OW30”は、データ記
号が数値演算用であることを示す情報’I/OW’また
は’MW’を有しているので、図37に示すように、ビ
ット演算、数値演算判断処理1141の判断結果によ
り、メモリI/O判断処理1143へデータ記号”I/
OW30”1001を出力する。さらに、前記出力であ
るデータ記号”I/OW30”1001は、データ記号
がI/O用であることを示す情報’I/O’を有してい
るので、メモリI/O判断処理1143の判断結果によ
り、数値演算I/Oアドレス変換処理1147へ、デー
タ記号”I/OW30”1002を出力する。
【0145】数値演算I/Oアドレス変換処理1147
では、以下のような処理が実行される。
【0146】最初、ワード抽出処理11471では、図
37に示すように、前記出力であるデータ記号”I/O
W30”1002から、ワード情報”30”1004を
抽出し、ワークメモリ11448へ格納する。
【0147】ここで、本実施例では、ワードは2バイト
から構成されているため、オフセットアドレス変換処理
11472では、ワークメモリ11448に格納されて
いるワード情報”30”1006を用い、ワードのオフ
セットである”30”を2倍して得られるバイトオフセ
ットから、オフセットアドレス”60”1007を求め
て出力する。
【0148】ベースアドレス変換処理11473では、
内部表現ファイル9のベースアドレス情報11447か
ら、データ型がI/Oに相当するベースアドレス、例え
ば”$FF00”1008をサーチして、前記オフセッ
トアドレス”60”1007と合わせて、ベースアドレ
ス、オフセットアドレス”$FF00、60”1009
として出力する。
【0149】実行アドレス変換処理11474では、図
38に示すように、前記出力であるベースアドレス、オ
フセットアドレス”$FF00、60”1009から、
ベースアドレスとオフセットアドレスとの和を求め、そ
れを本実施例のアセンブラ言語に記述されているアセン
ブラ列の実行アドレスeaとして”$FF60”101
1を出力する。
【0150】アドレス変換処理114に、ワード型のデ
ータ記号”MW60”が入力された場合について、図3
9、図40を用いて説明する。ここで、基本的な処理
は、図15のアドレス変換処理114及び図18の数値
演算メモリアドレス変換処理1146に従うものであ
る。
【0151】データ記号”MW60”は、データ記号が
数値演算用であることを示す情報’MW’を有している
ので、図39に示すように、ビット演算、数値演算判断
処理1141の判断結果により、データ記号”MW6
0”1001を、メモリI/O判断処理1143へ出力
する。さらに、前記出力であるデータ記号”MW60”
1001は、データ記号がメモリ用であることを示す情
報’MW’を有しているので、メモリI/O判断処理1
143の判断結果により、数値演算メモリアドレス変換
処理1146へ、データ記号”MW60”1002を出
力する。
【0152】数値演算メモリアドレス変換処理1146
では、例えば以下のような処理を実行する。
【0153】すなわち、ワード抽出処理11461で
は、前記出力であるデータ記号”MW60”1002か
らワード情報”60”1004を抽出し、ワークメモリ
11448へ格納する。
【0154】オフセットアドレス変換処理11462で
は、ワークメモリ11448に格納されているワード情
報”60”1006を用い、ワードのオフセットであ
る”60”を2倍してバイトオフセットを求め、オフセ
ットアドレス”C0”1007として出力する。ここ
で、2倍するのは、本実施例では、ワードは2バイトか
ら構成されるためである。
【0155】データ型判定処理11463では、前記出
力であるデータ記号”MW60”1002がワード用で
あることを示す情報’MW’を有しているので、その判
断結果により、オフセットアドレス”C0”1007
を、ワード型ベースアドレス変換処理11464へ出力
する。
【0156】ワード型ベースアドレス変換処理1146
4では、内部表現ファイル9のベースアドレス情報11
447をサーチし、データ型が’MW’に相当するベー
スアドレス”$F100”1008を求め、前記オフセ
ットアドレス”C0”1007と合わせて、ベースアド
レス、オフセットアドレス”$F100、C0”100
9として出力する。
【0157】実行アドレス変換処理11467では、図
40に示すように、前記出力であるベースアドレス、オ
フセットアドレス”$F100、C0”1009から、
ベースアドレスとオフセットアドレスとの和を求め、そ
れを本実施例のアセンブラ言語に記述されているアセン
ブラ列の実行アドレスeaとして”$F1C0”101
0を出力する。
【0158】アドレス変換処理114に、ロングワード
型のデータ記号”M!70”が入力された場合につい
て、図41、図42を用いて説明する。ここで、基本的
な処理は、図15のアドレス変換処理114及び図18
の数値演算メモリアドレス変換処理1146に従うもの
である。
【0159】データ記号”M!70”は、データ記号が
数値演算用であることを示す情報’M!’を有している
ので、図41に示すように、ビット演算、数値演算判断
処理1141の判断結果により、前記メモリI/O判断
処理1143へ、データ記号”M!70”1001を出
力する。さらに、前記出力であるデータ記号”M!7
0”1001は、データ記号がメモリ用であることを示
す情報’M!’を有しているので、メモリI/O判断処
理1143の判断結果により、数値演算メモリアドレス
変換処理1146へ、データ記号”M!70”1002
を出力する。
【0160】数値演算メモリアドレス変換処理1146
では、以下のような処理が実行される。すなわち、ワー
ド抽出処理11461では、前記出力であるデータ記
号”M!70”1002からワード情報”70”100
4を抽出して、ワークメモリ11448へ格納する。
【0161】オフセットアドレス変換処理11462で
は、ワークメモリ11448に格納されているワード情
報”70”1006を用いて、ワードのオフセットであ
る”70”を2倍してバイトオフセットを求め、それを
オフセットアドレス”E0”1007として出力する。
ここで、2倍するのは、本実施例では、ワードは2バイ
トから構成されるためである。
【0162】データ型判定処理11463では、前記出
力であるデータ記号”M!70”1002が、データ記
号がロングワード用であることを示す情報’M!’を有
しているので、その判断結果により、前記オフセットア
ドレス”E0”1007を、ロングワード型ベースアド
レス変換処理11465へ出力する。
【0163】ロングワード型ベースアドレス変換処理1
1465では、内部表現ファイル9のベースアドレス情
報11447をサーチすることで、データ型が’M!’
に相当するベースアドレス”$F300”1008を求
め、前記オフセットアドレス”E0”1007と合わせ
て、ベースアドレス、オフセットアドレス”$F30
0、E0”1009として出力する。
【0164】実行アドレス変換処理11467では、前
記出力であるベースアドレス、オフセットアドレス”$
F300、E0”1009から、ベースアドレスとオフ
セットアドレスの和が求められ、本実施例のアセンブラ
言語に記述されているアセンブラ列の実行アドレスea
として”$F3E0”1011を出力する。
【0165】アドレス変換処理114に、浮動小数点型
のデータ記号”M%80”が入力された場合について、
図43、図44を用いて説明する。ここで、基本的な処
理は、図15のアドレス変換処理114及び図18の数
値演算メモリアドレス変換処理1146に従うものであ
る。
【0166】データ記号”M%80”は、データ記号が
数値演算用であることを示す情報’M%’を有している
ので、図43に示すように、ビット演算、数値演算判断
処理1141の判断結果により、前記データ記号”M%
80”1001をメモリI/O判断処理1143へ出力
する。さらに、前記出力であるデータ記号”M%80”
1001は、データ記号がメモリ用であることを示す情
報’M%’を有しているので、メモリI/O判断処理1
143の判断結果により、データ記号”M%80”10
02を、数値演算メモリアドレス変換処理1146へ出
力する。
【0167】数値演算メモリアドレス変換処理1146
では、以下のような処理が実行される。すなわち、ワー
ド抽出処理11461では、前記出力であるデータ記
号”M%80”1002からワード情報”80”100
4を抽出して、ワークメモリ11448へ格納する。
【0168】オフセットアドレス変換処理11462で
は、ワークメモリ11448に格納されているワード情
報”80”1006を用い、ワードのオフセットであ
る”80”を2倍してバイトオフセットを求め、オフセ
ットアドレス”100”1007を出力する。ここで、
2倍するのは、本実施例では、ワードは2バイトから構
成されるためである。
【0169】データ型判定処理11463では、前記出
力であるデータ記号”M%80”1002が、データ記
号が浮動小数点用であることを示す情報’M%’を有し
ているので、その判断結果により、オフセットアドレ
ス”100”1007を、浮動小数点型ベースアドレス
変換処理11466へ出力する。
【0170】浮動小数点型ベースアドレス変換処理11
466では、内部表現ファイル9のベースアドレス情報
11447をサーチすることで、データ型が’M!’に
相当するベースアドレス”$F500”1008を求
め、前記オフセットアドレス”100”1007と合わ
せて、ベースアドレス、オフセットアドレス”$F50
0、100”1009として出力する。
【0171】実行アドレス変換処理11467では、図
44に示すように、前記出力であるベースアドレス、オ
フセットアドレス”$F500、100”1009か
ら、ベースアドレスとオフセットアドレスとの和を求
め、本実施例のアセンブラ言語に記述されているアセン
ブラ列の実行アドレスeaとして”$F600”101
0を出力する。
【0172】本実施例のプログラム生成装置2では、図
式表現の制御プログラムの各処理ステップに対応する中
間言語コマンドをオブジェクトコードに変換する際に、
各中間言語コマンドに対応するコントローラのハードウ
ェア構成に応じたアセンブラ命令列を示す対応表を用い
る。
【0173】このため、本実施例によれば、コントロー
ラ3のハードウェア構成の変更をした場合でも、前記対
応表を変更するだけで、中間言語コマンドを適切なオブ
ジェクトコードへ変換することが可能となる。したがっ
て、制御プログラムを作成する際に、コントローラ3の
ハードウエア構成の相違を意識しないで、制御プログラ
ムを作成できるという効果がある。
【0174】さらに、本実施例によれば、図式表現の制
御プログラムのコマンドを、ビット演算処理、数値演算
処理、混合演算処理、及び、プログラム制御処理の4種
類の処理形態に識別して、それぞれの処理形態の特性に
あわせて処理を行なうため、より信頼性の高い変換処理
を実現することができる。
【0175】
【発明の効果】本発明によれば、コントローラのハード
ウエア構成が変更された場合でも、簡単な変更処理を行
なうだけで、適切なオブジェクトコードを生成すること
を可能とする、コントローラのプログラム生成装置及び
方法を提供することができる。
【0176】さらに、本発明によれば、中間言語コマン
ドをオブジェクトコードに変換する際に、各中間言語コ
マンドを、当該コマンドが示す演算処理の形態によって
識別し、その演算処理形態毎に予め定められているアル
ゴリズムを用いて、オブジェクトコードに変換すること
を可能とする、コントローラのプログラム自動生成装置
及び方法を提供することができる。
【0177】
【図面の簡単な説明】
【図1】本発明によるプログラム生成装置の一実施例を
含む制御システムの構成の一例を示すブロック図。
【図2】図式表現による制御プログラムの処理ステップ
の一例を示す説明図。
【図3】図式表現による制御プログラムの処理ステップ
の他の例を示す説明図。
【図4】図式表現による制御プログラムの処理ステップ
の他の例を示す説明図。
【図5】図1のプログラム生成装置の実施例に入力され
る中間言語コマンドのリストの一例を示す説明図。
【図6】図1のプログラム生成装置で生成されたプログ
ラムを用いるコントローラの構成の一例を示すブロック
図。
【図7】図6のコントローラの詳細構成の一例を示すブ
ロック図。
【図8】図8(イ):辞書ファイルのビット演算対応表
の一例を示した説明図。 図8(ロ):辞書ファイルの数値演算対応表の一例を示
した説明図。 図8(ハ):辞書ファイルの混合演算対応表の一例を示
した説明図。 図8(ニ):辞書ファイルのプログラム制御用対応表の
一例を示した説明図。
【図9】図9(イ):内部表現ファイルに格納される各
種情報の一例を示す説明図。 図9(ロ):内部表現ファイルに格納される各種情報の
一例を示す説明図。 図9(ハ):内部表現ファイルに格納される各種情報の
一例を示す説明図。
【図10】図1の実施例の制御機構の動作例を示すフロ
ーチャート。
【図11】図1の実施例のビット演算処理11の動作例
を示すフローチャート。
【図12】図1の実施例の混合演算処理12の動作例を
示すフローチャート。
【図13】図1の実施例の数値演算処理13の動作例を
示すフローチャート。
【図14】図1の実施例の制御処理14の動作例を示す
フローチャート。
【図15】図1の実施例のアドレス変換処理114の動
作例を示すフローチャート。
【図16】図15のアドレス変換処理114でのビット
演算メモリアドレス変換処理1144の動作例を示すフ
ローチャート。
【図17】図15のアドレス変換処理114でのビット
演算I/Oアドレス変換処理1145の動作例を示すフ
ローチャート。
【図18】図15のアドレス変換処理114での数値演
算メモリアドレス変換処理1146の動作例を示すフロ
ーチャート。
【図19】図15のアドレス変換処理114での数値演
算I/Oアドレス変換処理1147の動作例を示すフロ
ーチャート。
【図20】図1の実施例のラベル管理処理19の動作例
を示すフローチャート。
【図21】図12の混合演算処理12での混合ラベル管
理処理124の動作例を示すフローチャート。
【図22】図14の制御処理14での制御ラベル管理処
理144の動作例を示すフローチャート。
【図23】図11のビット演算処理11の具体適所理動
作の一例を示すフローチャート。
【図24】図11のビット演算処理11の具体適所理動
作の一例を示すフローチャート。
【図25】図12の混合演算処理12の具体的動作の一
例を示すフローチャート。
【図26】図12の混合演算処理12の具体的動作の一
例を示すフローチャート。
【図27】図12の混合演算処理12の具体的動作の一
例を示すフローチャート。
【図28】図13の数値演算処理13の具体的動作の一
例を示すフローチャート。
【図29】図13の数値演算処理13の具体的動作の一
例を示すフローチャート。
【図30】図14の制御処理14の具体的動作の一例を
示すフローチャート。
【図31】図14の制御処理14の具体的動作の一例を
示すフローチャート。
【図32】図14の制御処理14の具体的動作の一例を
示すフローチャート。
【図33】ビット演算I/Oアドレス変換処理1145
の具体的動作の一例を示すフローチャート。
【図34】ビット演算I/Oアドレス変換処理1145
の具体的動作の一例を示すフローチャート。
【図35】ビット演算メモリアドレス変換処理1144
の具体的動作の一例を示すフローチャート。
【図36】ビット演算メモリアドレス変換処理1144
の具体的動作の一例を示すフローチャート。
【図37】数値演算I/Oアドレス変換処理1147の
具体的動作の一例を示すフローチャート。
【図38】数値演算I/Oアドレス変換処理1147の
具体的動作の一例を示すフローチャート。
【図39】数値演算メモリアドレス変換処理(ワード
型)の具体的動作の一例を示すフローチャート。
【図40】数値演算メモリアドレス変換処理(ワード
型)の具体的動作の一例を示すフローチャート。
【図41】数値演算メモリアドレス変換処理(ロングワ
ード型)の具体的動作の一例を示すフローチャート。
【図42】数値演算メモリアドレス変換処理(ロングワ
ード型)の具体的動作の一例を示すフローチャート。
【図43】数値演算メモリアドレス変換処理(浮動小数
点型)の具体的動作の一例を示すフローチャート。
【図44】数値演算メモリアドレス変換処理(浮動小数
点型)の具体的動作の一例を示すフローチャート。
【図45】図1の実施例のプログラム生成装置2の中間
言語処理機構6から出力されるアセンブラリストの一例
を示す説明図。
【符号の説明】
1・・入力装置,2・・プログラム生成装置,3・・コ
ントローラ,4・・駆動装置,5・・表示機構,6・・
中間言語処理機構,7・・機械語生成機構,8・・プロ
グラムファイル,9・・内部表現ファイル,10・・制
御機構,11・・ビット演算処理,12・・混合演算処
理,13・・数値演算処理,14・・制御処理,17・
・アセンブラリスト,18・・辞書ファイル,19・・
ラベル管理処理,102・・内部表現変換処理,103
・・コマンド形式処理,108・・コマンド分離対応
表,112・・コマンドとデータ記号切分け処理,11
3・・中間言語コマンド照合処理,114・・アドレス
変換処理,115・・アセンブラ列出力処理,117・
・ビット用対応表,124・・ラベル管理処理,127
・・ラベル管理テーブル,128・・混合演算用対応
表,136・・数値演算用対応表,144・・ラベル管
理処理,147・・ラベル管理テーブル,148・・制
御用対応表,1144・・ビット演算メモリアドレス変
換処理,1145・・ビット演算I/Oアドレス変換処
理,1146・・数値演算メモリアドレス変換処理,1
147・・ビット演算I/Oアドレス変換処理。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 木谷 進 茨城県日立市大みか町五丁目2番1号 株 式会社日立情報制御システム内 (72)発明者 菊池 雄司 茨城県日立市大みか町五丁目2番1号 株 式会社日立情報制御システム内 (72)発明者 高橋 修 茨城県日立市大みか町五丁目2番1号 株 式会社日立情報制御システム内 (72)発明者 浜田 佐敏 茨城県日立市大みか町五丁目2番1号 株 式会社日立情報制御システム内 (72)発明者 伊藤 正己 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 熊山 治良 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】図式表現による制御プログラムの処理ステ
    ップを定義する中間言語コマンドのリストを受け入れ、
    前記中間言語コマンドのリストからコントローラが実行
    可能な、前記制御プログラムに対応する機械語プログラ
    ムを生成するコントローラのプログラム自動生成装置で
    あって、 予め設定され前記コントローラのハードウエア構成に応
    じて交換可能な、前記中間言語コマンドのそれぞれと当
    該ハードウエア構成に依存するアセンブラ命令列との対
    応関係を示す対応表を記憶する記憶部と、 前記記憶部に記憶されている対応表を参照して、前記制
    御プログラムの各処理ステップに応じた中間言語コマン
    ドのそれぞれを、前記アセンブラ命令列に変換すること
    により、前記受け入れた中間言語コマンドのリストに対
    応するアセンブラ列を求める中間言語処理機構と、 前記アセンブラ列から、前記コントローラのハードウエ
    ア構成に応じて機械語プログラムを生成する機械言語生
    成機構とを有することを特徴とするコントローラのプロ
    グラム自動生成装置。
  2. 【請求項2】請求項1において、 前記中間言語処理機構は、前記受け入れた中間言語コマ
    ンドのそれぞれが、予め設定されている複数の演算処理
    形態のうちのどれに該当するかを識別する識別手段と、
    前記識別手段で演算処理形態が識別された中間言語コマ
    ンドを、前記処理形態毎に予め設定されている変換アル
    ゴリズムに従い、前記アセンブラ命令列に変換する変換
    手段とを有し、 前記記憶部は、前記対応表として、前記処理形態毎に、
    前記中間言語コマンドと前記アセンブラ命令列とを対応
    づける、複数の個別対応表を記憶するものであり、 前記変換手段は、前記処理形態毎に設定されている変換
    アルゴリズムでは、該当する処理形態に対応する前記個
    別対応表を参照して、前記該当する処理形態に含まれる
    中間言語コマンドを、前記アセンブラ命令列に変換する
    ことを特徴とするコントローラのプログラム自動生成装
    置。
  3. 【請求項3】請求項1において、 前記中間言語処理機構は、さらに、 前記変換手段で変換された個々の前記中間言語コマンド
    に対応する前記アセンブラ命令列で用いる仮ラベルとそ
    の定義場所及び参照場所とをそれぞれ登録するラベル管
    理テーブルを作成し、前記ラベル管理テーブルを参照し
    て、前記仮ラベルを、前記アセンブラ命令列が統合され
    てできる前記アセンブラ列でのラベルで置き換えるラベ
    ル管理手段を有することを特徴とするコントローラのプ
    ログラム自動生成装置。
  4. 【請求項4】請求項1〜3のいずれかにおいて、 前記識別手段は、前記中間言語コマンドの処理形態が、
    ビット演算処理、数値演算処理、及びプログラム制御処
    理のうち、いずれに該当するかを識別するものであり、 前記変換手段は、前記処理形態毎に設定されている変換
    アルゴリズムに従い、前記中間言語コマンドを前記アセ
    ンブラ命令列に変換する、ビット演算処理部、数値演算
    処理部、及びプログラム制御処理部を有することを特徴
    とするコントローラのプログラム自動生成装置。
  5. 【請求項5】請求項1〜3のいずれかにおいて、 前記識別手段は、前記中間言語コマンドの演算処理形態
    が、ビット演算処理、数値演算処理、プログラム制御処
    理、及び、これら処理が複合されている混合演算処理の
    うち、いずれに該当するかを識別するものであり、 前記変換手段は、前記演算処理形態毎に設定されている
    変換アルゴリズムに従い、前記中間言語コマンドを前記
    アセンブラ命令列に変換する、ビット演算処理部、数値
    演算処理部、プログラム制御処理部、及び混合演算処理
    部を有することを特徴とするコントローラのプログラム
    自動生成装置。
  6. 【請求項6】図式表現による制御プログラムの処理ステ
    ップを定義する中間言語コマンドのリストを受け入れ
    て、前記中間言語コマンドのリストからコントローラが
    実行可能な、前記制御プログラムに対応する機械語プロ
    グラムを生成するコントローラのプログラム自動生成方
    法であって、 前記中間言語コマンドのそれぞれと前記コントローラの
    ハードウエア構成に依存したアセンブラ命令列との関係
    を示す対応表を、前記コントローラのハードウエア構成
    毎に予め設定し、 前記中間言語コマンドを、前記対応表を参照して、前記
    アセンブラ命令列に変換することにより、前記受け入れ
    た中間言語コマンドのリストに対応するアセンブラ列を
    求め、 前記アセンブラ列から、前記コントローラのハードウエ
    ア構成に応じて機械語プログラムを生成することを特徴
    とするコントローラのプログラム自動生成方法。
  7. 【請求項7】制御対象である駆動装置と、前記駆動装置
    を制御するコントローラと、前記コントローラの制御プ
    ログラムを入力する入力装置と、前記入力装置から出力
    される、前記制御プログラムの処理ステップを定義する
    中間言語コマンドのリストから、前記コントローラが実
    行可能な機械語プログラムを生成するプログラム自動生
    成装置とを有する制御システムであって、 前記プログラム生成装置は、請求項1〜5のいずれかに
    記載のプログラム自動生成装置であることを特徴とする
    制御システム。
JP6323104A 1994-12-26 1994-12-26 コントローラのプログラム自動生成装置及び方法 Pending JPH08179953A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6323104A JPH08179953A (ja) 1994-12-26 1994-12-26 コントローラのプログラム自動生成装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6323104A JPH08179953A (ja) 1994-12-26 1994-12-26 コントローラのプログラム自動生成装置及び方法

Publications (1)

Publication Number Publication Date
JPH08179953A true JPH08179953A (ja) 1996-07-12

Family

ID=18151128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6323104A Pending JPH08179953A (ja) 1994-12-26 1994-12-26 コントローラのプログラム自動生成装置及び方法

Country Status (1)

Country Link
JP (1) JPH08179953A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299460B2 (en) 2003-05-29 2007-11-20 Nec Corporation Method and computer program for converting an assembly language program for one processor to another
JP2017162215A (ja) * 2016-03-09 2017-09-14 ソフトバンク株式会社 コマンド処理装置及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62154102A (ja) * 1985-12-27 1987-07-09 Fuji Electric Co Ltd プログラム書込み装置
JPH02148331A (ja) * 1988-11-30 1990-06-07 Nec Corp 言語処理装置
JPH0460805A (ja) * 1990-06-29 1992-02-26 Fanuc Ltd シーケンス・プログラム作成方法
JPH05274011A (ja) * 1992-01-23 1993-10-22 Mitsubishi Electric Corp プログラマブルコントローラ及びその制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62154102A (ja) * 1985-12-27 1987-07-09 Fuji Electric Co Ltd プログラム書込み装置
JPH02148331A (ja) * 1988-11-30 1990-06-07 Nec Corp 言語処理装置
JPH0460805A (ja) * 1990-06-29 1992-02-26 Fanuc Ltd シーケンス・プログラム作成方法
JPH05274011A (ja) * 1992-01-23 1993-10-22 Mitsubishi Electric Corp プログラマブルコントローラ及びその制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299460B2 (en) 2003-05-29 2007-11-20 Nec Corporation Method and computer program for converting an assembly language program for one processor to another
JP2017162215A (ja) * 2016-03-09 2017-09-14 ソフトバンク株式会社 コマンド処理装置及びプログラム

Similar Documents

Publication Publication Date Title
US6854111B1 (en) Library manager for automated programming of industrial controls
JP2765423B2 (ja) プログラマブルコントローラ及びその制御方法
JP3115237B2 (ja) 制御プログラム作成装置及び制御プログラム作成方法
JPH0855019A (ja) 視覚的プログラミング方法
JP5426938B2 (ja) 情報処理装置、情報処理方法
US5564053A (en) Method for generating specific program systems and tools to facilitate in generating the specific program systems
JPH08179953A (ja) コントローラのプログラム自動生成装置及び方法
EP0218258A3 (en) Software structuring system and method by data table translation
JP2002268896A (ja) 制御プログラム作成方法とその装置
JPH10320027A (ja) 数値制御装置
JPH0934698A (ja) ソフトウェア生成方法及び開発支援方法
CN114981743A (zh) 设计辅助装置、设计辅助方法及设计辅助程序
JP4473026B2 (ja) データ交換計算機
JP2007011728A (ja) 汎用計算機の操作手順作成装置及び方法、並びにプログラム
JP3312608B2 (ja) リンクディレクティブファイルの作成方法及び作成装置
JPH01177128A (ja) アセンブラ方式
JP2969423B2 (ja) Cadシステムにおけるグラフィックス表示装置とテキスト・ファイル表示装置との間のコミュニケーション・システム
JP2020161102A (ja) 図面作成支援装置、図面作成支援プログラム及び図面作成支援方法
JPH10149208A (ja) プログラムの比較方法およびコントローラプログラムの作成装置
US20080092126A1 (en) Input of program instructions in imperative programming languages
JPH04248624A (ja) プログラム変換処理装置
JP2003085223A (ja) ハードウェア・ソフトウェア統合設計システム
Campbell et al. Crossassembler for the TMS32010 digital signal processor
JPH06236282A (ja) データ型サイズ可変なコンパイラ、およびインタプリタ
JPH07168711A (ja) プログラム管理方法