JP2001022412A - プログラミング装置及びプログラマブルコントローラ並びにプログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

プログラミング装置及びプログラマブルコントローラ並びにプログラムを記録したコンピュータ読み取り可能な記録媒体

Info

Publication number
JP2001022412A
JP2001022412A JP11196456A JP19645699A JP2001022412A JP 2001022412 A JP2001022412 A JP 2001022412A JP 11196456 A JP11196456 A JP 11196456A JP 19645699 A JP19645699 A JP 19645699A JP 2001022412 A JP2001022412 A JP 2001022412A
Authority
JP
Japan
Prior art keywords
program
language
control
programming
programming device
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
JP11196456A
Other languages
English (en)
Other versions
JP3819639B2 (ja
Inventor
Hajime Taruishi
肇 垂石
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP19645699A priority Critical patent/JP3819639B2/ja
Publication of JP2001022412A publication Critical patent/JP2001022412A/ja
Application granted granted Critical
Publication of JP3819639B2 publication Critical patent/JP3819639B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】制御プログラムを作成するユーザの作業効率を
向上させる。 【解決手段】制御手段で実行させる制御プログラムの作
成を支援するプログラミング装置において、複数種類の
制御プログラミング言語の混在表記を可能としたプログ
ラミング装置を提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、鉄鋼プラント、製
紙プラント、上下水道などの公共システム、自動車産業
などの生産工程、化学・石油プラントなどの制御を行う
プログラムの開発を支援するプログラミング装置及びプ
ログラマブルコントローラ並びにプログラムを記録した
コンピュータ読み取り可能な記録媒体に関する。
【0002】
【従来の技術】一般的に、シーケンスプログラムはプロ
グラミング装置によって作成され、この作成されたシー
ケンスプログラムは機械語に変換されてプログラマブル
コントローラ(以下、「コントローラ」という)で実行
可能な状態となる。そして、機械語に変換されたシーケ
ンスプログラムは、コントローラに送られ、コントロー
ラ側で機械語プログラムとして保存され、実行される。
【0003】シーケンスプログラムの作成に利用される
制御プログラミング言語には、様々な言語が存在する
が、主なものにラダーダイヤグラム(LD言語)、ファ
ンクションブロックダイヤグラム(FBD言語)、シー
ケンスフローチャート(SFC言語)などがある。この
LD言語、FBD言語、SFC言語はIEC61131-3規格の
グラフィカル3言語である。
【0004】表1は、LD言語、FBD言語、SFC言
語の特徴を示すテーブルである。
【0005】
【表1】
【0006】例えば、この表1より、LD言語は論理演
算を利用する制御のプログラミングに向いている。ま
た、論理演算はシーケンス制御に利用される傾向があ
る。したがって、LD言語はシーケンスコントローラで
実行させるプログラムの作成に利用される傾向がある。
【0007】また、FBD言語は数値演算を利用する制
御のプログラミングに向いている。また、数値演算はル
ープ制御に利用される傾向がある。したがって、FBC
言語はループコントローラで実行させるプログラムの作
成に利用される傾向がある。
【0008】さらに、SFC言語は順次処理を利用する
制御のプログラミングに向いているが、論理演算や、数
値演算、文字処理は不可能である。
【0009】このように、LD言語、FBD言語、SF
C言語はぞれにおいて特徴が異なるため、ユーザ(例え
ばプログラマ)が制御対象や制御の内容、自己の理解度
を判断し、いずれかの言語を任意に選択し、プログラミ
ングに利用している。
【0010】また、従来においては、上記したように、
作成したシーケンスプログラムから機械語プログラムへ
の変換を行うのは、もっぱらプログラミング装置の役目
であり、コントローラがこの機械語変換を行うことはな
い。
【0011】
【発明が解決しようとする課題】以上のように、従来に
おいては、ユーザがシーケンスプログラムの作成前に選
択するいずれかの制御プログラミング言語によってプロ
グラミングが行われている。
【0012】しかしながら、近年、制御の対象や制御処
理の内容が複雑化しており、複数種類の制御プログラミ
ング言語を利用して一連の制御に関するプログラムを作
成する機会が多くなっている。例えば演算処理と数値処
理を組み合わせてシーケンスプログラムを作成する等の
必要性が向上している。
【0013】このような場合に、従来では、ユーザは一
連の制御内容を分割し、各分割した内容毎に、適した制
御プログラミング言語を利用してプログラミングを行っ
ている。
【0014】したがって、グラフィカルな制御プログラ
ミング言語を利用したとしても、ユーザは、分割作成す
るプログラムの全体の状態を把握しにくいという問題が
ある。
【0015】図20は、従来のプログラミング装置にお
いて異種の制御プログラミング言語を利用して作成した
プログラムの表示例を示す画面図である。
【0016】例えば、プログラミング装置として動作す
る計算機によってシーケンスプログラムのある部分をL
D言語で記述し、他のある部分をSFC言語で記述した
とする。
【0017】すると、このシーケンスプログラムを計算
機の画面100に表示させる場合には、LD言語で記述
された部分がウィンドウ200a上に表示されるが、さ
らにSFC言語で記述された部分が別のウィンドウ20
0b上に表示される。このような画面100では、ユー
ザは異なるウィンドウ200a、200b間でプログラ
ム間の呼び合いを辿る等しながらプログラムの内容(処
理の流れ等)を確認しなければならなず、容易に内容を
理解できない。
【0018】また、従来においては、作成され機械語に
変換された後のシーケンスプログラムがコントローラに
保存され、実行されている。なお、この実行中のシーケ
ンスプログラムの処理状態をプログラミング装置でモニ
タする場合には、機械語変換される前の元のシーケンス
プログラムが必要である。
【0019】しかしながら、シーケンスプログラムの作
成・変換を行ったプログラミング装置とは異なるプログ
ラミング装置で、この実行中のシーケンスプログラムを
モニタしたい場合が生じる。
【0020】図21は、このように、シーケンスプログ
ラムの作成を行ったプログラミング装置とモニタを行う
プログラミング装置とが異なる場合の例を示すブロック
図である。
【0021】プログラミング装置300aで生成された
元のプログラム400aは、変換されて機械語のプログ
ラム500aとなり、コントローラ600に保存、実行
され、制御対象700の一部分が制御される。
【0022】同様に、プログラミング装置300bで生
成された元のプログラム400bは、変換されて機械語
のプログラム500bとなり、コントローラ600に保
存、実行され、制御対象700の他の部分が制御され
る。
【0023】ここで、制御対象700の装置が変更され
たため、プログラミング装置300bで新規のプログラ
ムを作成する際に、他のプログラミング装置300aで
作成した元のプログラム400aをモニタしたい場合が
る。
【0024】この場合、モニタを行うプログラミング装
置300bには、モニタしたい元のプログラム300a
が保持されていないため、モニタすることが困難であ
る。なお、単に、コントローラ600に保持されている
機械語のプログラム500aを逆変換して、モニタを行
うプログラミング装置300bが元のプログラム400
aを得るのは、プログラムの作成を行ったプログラミン
グ装置300aとモニタを行うプログラミング装置30
0bとの間で利用する制御プログラミング言語が異なる
場合に困難である。
【0025】また、従来においては、複数の制御プログ
ラミング言語を利用可能なプログラミング装置がある。
【0026】しかしながら、この複数の言語を利用可能
なプログラミング装置であっても、ある制御プログラミ
ング言語で作成されたプログラムを、他の制御プログラ
ミング言語で作成されたプログラムに変換して表示させ
るというユーザの要請に対処可能なプログラミング装置
は存在しない。
【0027】以上をまとめると、従来においては、異種
の制御プログラミング言語で記述されたプログラムの混
在表記ができず、また混在表記したプログラムの編集、
コンパイル、制御実行、オンラインモニタができない。
【0028】また、従来においては、異なる種類の制御
プログラミング言語でシーケンスプログラムを作成する
と、統一的に取り扱うことが困難である。
【0029】本発明は、上記実情に鑑みてなされたもの
で、異種の制御プログラミングをまとめて取扱い可能と
することにより、ユーザによるプログラム記述性、理解
度を向上させ、ユーザの作業効率を向上させるプログラ
ミング装置及びプログラマブルコントローラ並びにプロ
グラムを記録したコンピュータ読み取り可能な記録媒体
を提供することを目的とする。
【0030】
【課題を解決するための手段】本発明の骨子は、複数種
類の制御プログラミング言語を自由に利用可能とする点
にある。
【0031】以下、本発明を実現するに校閲あたって講
じた具体的手段について説明する。
【0032】第1の発明は、制御手段で実行させる制御
プログラムの作成を支援するプログラミング装置におい
て、複数種類の制御プログラミング言語の混在表記を可
能とした。
【0033】これにより、ユーザが制御プログラムの内
容を容易に理解することができる。なお、制御手段の例
としてはプログラマブルコントローラがあり、制御プロ
グラムの例としてはシーケンスプログラムがある。
【0034】第2の発明は、第1の発明のプログラミン
グ装置に、混在表記された制御プログラムをコンパイル
するコンパイラを具備するとした。
【0035】また、第3の発明は、第2の発明のプログ
ラミング装置において、コンパイラは、混在表記された
制御プログラムを有向グラフとして扱い、有向グラフに
おける各ノードに対して右下から左に向かい上段にあが
って再び右から左に向かう順序でノード番号を付し、こ
のノード番号の付された有向グラフに対する深さ優先探
索アルゴリズムによりノードの実行順序を決定するとし
た。
【0036】これにより、混在表記させていたプログラ
ムをそのままコンパイルすることができるため、各種言
語の利点を活用したプログラムを作成し、このプログラ
ムを制御手段に実行させることができる。
【0037】第4の発明は、第2又は第3の発明のプロ
グラミング装置において、コンパイラは混在表記された
制御プログラムの内容とモニタデータとを関係付けて保
存するとし、コンパイラによるコンパイル時の関係付け
に基づいて、モニタデータを混在表記された制御プログ
ラム上に配置するモニタデータ重ね表示手段を付加する
とした。
【0038】この第4の発明では、制御プログラムの内
容とモニタデータとの関係を利用することで、混在表記
された制御プログラム上にモニタデータを配置すること
ができ、これによりユーザがプログラムの問題点を容易
に認識できる。
【0039】第5の発明は、制御手段で実行させる制御
プログラムの作成を支援するプログラミング装置におい
て、制御プログラミング言語によって記述された制御プ
ログラムを機械語による記述及び制御プログラミング言
語による記述のいずれにも変換可能な中間言語によって
記述された中間言語プログラムに変換する中間変換手段
を具備するとした。
【0040】この第5の発明では、あるプログラミング
言語で記述された制御プログラムを、制御手段で直接実
行可能な機械語プログラムに変換可能で、かつ元の制御
プログラムにも逆変換可能な形式の中間言語に変換でき
る。
【0041】ゆえに、ソースプログラムとなる制御プロ
グラムを例えばテキスト形式の中間言語に変換して保管
しておき、必要に応じて制御手段が実行可能な機械語プ
ログラムに変換したり、プログラミング装置での実行モ
ニタに使用するためのソースプログラムに変換したりす
ることが可能となる。
【0042】第6の発明は、第5の発明のプログラミン
グ装置において、中間言語プログラムがそのまま制御手
段で実行可能とした。
【0043】この第6の発明では、制御手段が中間言語
プログラムをそのまま実行可能であるため、機械語プロ
グラムを求める処理をなくし、機械語プログラムを記憶
するメモリ容量を節約することができる。
【0044】第7の発明は、第5の発明のプログラミン
グ装置に、中間言語プログラムを機械語によって記述さ
れた機械語プログラムに変換する機械語変換手段を付加
している。
【0045】この第7の発明では、中間言語プログラム
が制御手段によって直接実行可能な機械語プログラムに
変換される。
【0046】ゆえに、例えばテキスト言語等で記録され
た中間言語プログラムから、制御手段が直接実行可能な
機械語プログラムを得ることができる。
【0047】第8の発明は、第7の発明のプログラミン
グ装置において、機械語変換手段は中間言語プログラム
を複数の制御手段毎の機械語プログラムに変換するとし
た。
【0048】この第8の発明では、中間言語で記述され
た中間言語プログラムを2種類以上の各制御手段が直接
実行可能な機械語プログラムに変換できる。
【0049】ゆえに、一旦ソースの制御プログラムを入
力して中間言語プログラムに変換しておけば、対象とな
る制御手段が複数種類あったとしても、対応する制御手
段に合わせて機械語プログラムを作成できるので、プロ
グラミング装置の共用が可能となる。
【0050】第9の発明は、第5から第8の発明のプロ
グラミング装置に、中間言語プログラムを制御プログラ
ミング言語によって記述された制御プログラムに変換す
る逆変換手段を付加している。
【0051】この第9の発明では、制御プログラムから
中間言語プログラムに一旦変換した後でも、さらに中間
言語プログラムから制御プログラムに変換することがで
きる。
【0052】ゆえに、作成した制御プログラムを共通な
形式の中間言語プログラムとして保存しておき、この共
通な形式から再び制御プログラムに変換することでプロ
グラミングの自由性を向上させることができ、プログラ
ムを共有することができる。
【0053】第10の発明は、第9の発明のプログラミ
ング装置に、逆変換手段によって変換された内容を表示
する表示手段を付加している。これにより、ユーザは変
換結果を確認できる。
【0054】第11の発明は、第5から第10の発明の
プログラミング装置において、中間言語は変換前の制御
プログラミング言語が異なっていても共通の形式で中間
プログラムを記述するとした。
【0055】したがって、どの種類の制御プログラミン
グ言語で記述された制御プログラムであっても、この制
御プログラムを共通な形式の中間言語プログラムとして
保存し、共通に扱うことができる。
【0056】第12の発明は、第5から第11の発明の
プログラミング装置に、中間言語プログラムを複数の制
御プログラミング言語のいずれかで記述された制御プロ
グラムに任意変換可能な任意逆変換手段を付加してい
る。
【0057】この第12の発明では、一旦、共通な形式
の中間言語プログラムに変換された後には、返還前の言
語に依存することなく、指定したプログラミング言語に
逆変換が可能なのでプログラミングの自由性を向上させ
ることができる。
【0058】第13の発明は、第12のプログラミング
装置に、任意逆変換手段によって変換された内容を表示
する表示手段を付加している。
【0059】この第13の発明では、ある言語で記述さ
れた制御プログラムを中間言語プログラムに変換し、そ
の後ユーザの求める言語に逆変換した制御プログラムを
得ることができ、さらに表示させて確認することができ
る。
【0060】すなわち、もとのプログラミング言語とは
関わりなく、プログラミング言語を自由に指定して制御
プログラムを表示することが可能となる。
【0061】第14の発明は、第5から第13の発明の
プログラミング装置において、中間言語は固定長の機械
語コードにより成るプログラムで記述されるとした。
【0062】この第14の発明においては、制御手段の
機械語コードを使用して中間言語プログラムを構成し、
また、固定長コードの中間言語プログラムとすること
で、制御手段によって中間言語プログラムをそのまま直
接実行することができる。
【0063】第15の発明は、第5から第14のプログ
ラミング装置に、自己と制御手段との間での負荷レベル
の調査結果に基づいて負荷を分散する分散手段を付加し
ている。
【0064】この第15の発明においては、例えばメモ
リ容量に余裕がない場合には制御プログラム、中間言語
プログラム、機械語プログラム等を制御手段側に保持さ
せることにより、負荷を分散させる。また、CPU負荷
が高い場合には各種の変換手段の動作を制御手段側で実
行させてもよい。
【0065】すなわち、プログラミング装置や制御手段
のメモリ容量やCPU能力に合わせて、制御プログラ
ム、中間言語プログラム、機械語プログラムの格納場所
や変換場所を選択できるので、プログラミング装置かあ
るいは制御手段のどちらかの能力が低い場合でも組み合
わせて使用することが可能となる。
【0066】第16の発明は、第5から第15の発明の
プログラミング装置において、中間変換手段は、制御プ
ログラミング言語によって記述された制御プログラムの
含む処理に関与しない部分を、処理に関与しない部分で
ある旨を示すコードに変換するとした。
【0067】この第16の発明においては、制御プログ
ラムを中間言語プログラムに変換する際に、制御プログ
ラム内のコメント文やラベルなどの直接処理として実行
に関与しない部分に対して、機械語プログラムへの変換
時にそれらを分離しやすいように特別の中間言語コード
を与えるように構成している。
【0068】すなわち、この第16の発明では、機械語
プログラムを実行する際に不要となる制御プログラム中
のコメント文やプログラム区切りのために、特別なコー
ドを付与して中間言語プログラム中に格納する。
【0069】これにより、その後に中間言語プログラム
を機械語プログラムに変換する場合に容易に分離が可能
であり、コンパイル作業を簡単化することができる。
【0070】また、例えば、中間言語コードを機械語コ
ードで記述し、コメント文やラベルなどの直接実行に関
与しない部分に対する特別な中間言語コードを、制御手
段上における非実行命令のコードに対応するように構成
したとする。すると、中間言語プログラムによるシーケ
ンス実行に無関係な部分には、プログラマブルコントロ
ーラの実行上、非実行となる機械語コードを付与してい
ることになる。
【0071】したがって、例えばコメント付きの中間言
語プログラムをそのまま実行させても実行結果に影響が
出ないようにすることが可能であり、機械語プログラム
への変換を省略し、機械語プログラムと中間言語プログ
ラムを共用することが可能となる。
【0072】第17の発明は、制御プログラミング言語
によって記述された制御プログラムを受信する通信手段
と、通信手段によって受信した制御プログラムを、機械
語による記述及び制御プログラミング言語による記述の
いずれにも変換可能な中間言語によって記述された中間
言語プログラムに変換する中間変換手段とを具備したプ
ログラマブルコントローラである。
【0073】この第17の発明では、自己が制御プログ
ラムから中間言語プログラムを得ることができる。
【0074】第18の発明は、第17の発明のプログラ
マブルコントローラにおいて、中間言語プログラムをそ
のまま実行可能としている。
【0075】したがって、機械語プログラムへの変換処
理や、機械語プログラムの保存に必要となるメモリ容量
を削除することができる。
【0076】第19の発明は、第17の発明のプログラ
マブルコントローラに、中間言語プログラムを機械語に
よって記述された機械語プログラムに変換する機械語変
換手段を付加している。
【0077】したがって、プログラマブルコントローラ
本体において、中間言語プログラムを、直接実行可能な
形式の機械語プログラムに変換できるので、受信した制
御プログラミング言語によらずに実行可能なプログラマ
ブルコントローラを得ることができる。
【0078】第20の発明は、第17から第19の発明
のプログラマブルコントローラに、中間言語プログラム
を制御プログラミング言語によって記述された制御プロ
グラムに変換する逆変換手段を付加している。
【0079】この第20の発明では、共通な形式の中間
言語プログラムを元の制御プログラムに逆変換すること
ができる。
【0080】これにより、プログラマブルコントローラ
内部に保管している中間言語プログラムを制御プログラ
ムに逆変換してプログラミング装置に送ることが可能な
ので、機能の低いプログラミング装置でも制御プログラ
ムの表示やモニタが可能となる。
【0081】第21の発明は、第17から第19の発明
のプログラマブルコントローラに、中間言語プログラム
を複数の制御プログラミング言語のいずれかで記述され
た制御プログラムに任意変換可能な任意逆変換手段を付
加している。
【0082】この第21の発明によれは、あるプログラ
ミング言語で記述された制御プログラムから変換された
中間言語プログラムを、他の種類のプログラミング言語
で記述された制御プログラムに逆変換することができ
る。
【0083】これにより、プログラマブルコントローラ
内部に保管している中間言語プログラムを自由な制御プ
ログラムに逆変換してプログラミング装置に送ることが
可能なので、機能の低いプログラミング装置や単一のプ
ログラミング言語しか使用できないプログラミング装置
においても制御プログラムの表示やモニタが可能とな
る。
【0084】第22の発明は、コンピュータに、複数種
類の制御プログラミング言語を混在表記させる機能を実
現させるプログラムを記録したコンピュータ読み取り可
能な記録媒体である。
【0085】第23の発明は、コンピュータに、複数種
類の制御プログラミング言語で混在表記された制御プロ
グラムをコンパイルさせるコンパイラを記録したコンピ
ュータ読み取り可能な記録媒体である。
【0086】第24の発明は、コンピュータに、複数種
類の制御プログラミング言語を混在表記させる混在表記
機能と、複数種類の制御プログラミング言語で混在表記
された制御プログラムをコンパイルさせ、また混在表記
された制御プログラムの内容とモニタデータとを関係付
けて保存させるコンパイラと、コンパイラによるコンパ
イル時の関係付けに基づいて混在表記機能によって混在
表記されている制御プログラム上にモニタデータを配置
させるモニタデータ重ね表示機能とを実現させるプログ
ラムを記録したコンピュータ読み取り可能な記録媒体で
ある。
【0087】第25の発明は、コンピュータに、制御プ
ログラミング言語によって記述された制御プログラムを
機械語による記述及び制御プログラミング言語による記
述のいずれにも変換可能な中間言語によって記述された
中間言語プログラムに変換させる中間変換機能を実現さ
せるプログラムを記録したコンピュータ読み取り可能な
記録媒体である。
【0088】第26の発明は、第25の発明のプログラ
ムを記録したコンピュータ読み取り可能な記録媒体であ
って、中間言語プログラムを機械語によって記述された
機械語プログラムに変換させる機械語変換機能を付加し
たプログラムを記録したコンピュータ読み取り可能な記
録媒体である。
【0089】第27の発明は、第25又は第26の発明
のプログラムを記録したコンピュータ読み取り可能な記
録媒体であって、中間言語プログラムを制御プログラミ
ング言語によって記述された制御プログラムに変換させ
る逆変換機能を付加したプログラムを記録したコンピュ
ータ読み取り可能な記録媒体である。
【0090】第22乃至第27の発明は、上記各発明で
説明したプログラミング装置及びプログラマブルコント
ローラの機能をコンピュータにより実現するためのプロ
グラムを記憶したコンピュータ読み取り可能な記憶媒体
である。
【0091】このようなプログラムを記録した記録媒体
を用いることによって、上述した機能を有していないプ
ログラミング装置、プログラマブルコントローラ、計算
機、計算機システムに対しても、簡単に上述した機能を
付加することができる。
【0092】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態について説明する。
【0093】(第1の実施の形態)本実施の形態におい
ては、複数の制御プログラミング言語を混在表記(同一
表記)可能としたプログラミング装置について説明す
る。
【0094】また、本実施の形態においては、複数の言
語により混在表記されたプログラムをコンパイルして実
行可能なプログラムを得るプログラミング装置について
説明する。
【0095】なお、本実施の形態においては、LD言
語、FBD言語、SFC言語の3種の制御プログラミン
グ言語を利用する場合について説明するが、他の言語の
場合も同様である。
【0096】図1は、本実施の形態に係るプログラミン
グ装置の構成を示すブロック図である。
【0097】このプログラミング装置1は、ユーザの指
示にしたがった制御プログラミング言語でプログラムを
表示するが、さらに3種類の言語を混在させた状態でも
プログラムを表示する。また、ユーザの指示に従って3
種類の制御プログラミング言語を混在させて作成された
プログラムを変換し、プログラマブルコントローラ2に
送信する。
【0098】このプログラミング装置1は、主に、入力
装置3、表示装置4、伝送装置5を備え、プログラム編
集6、プログラム表示7、プログラムコンパイル8、フ
ァイル送信9、モニタデータ取得10、モニタ重ね表示
11等の各種処理を実行する。
【0099】このうち、本実施の形態において特徴的な
部分は。プログラムコンパイル8の処理内容と、このプ
ログラムコンパイル8やプログラム編集6等の処理で扱
われるプログラムファイル12と、モニタデータ重ね表
示11で扱われるモニタデータ13にある。
【0100】なお、図1に示すプログラミング装置1に
おいては、通常のプログラミング装置と同様の構成装置
を備え同様の処理を実行可能であるが、説明を簡略にす
るために他の構成装置及び処理の記載を省略している。
【0101】このプログラミング装置1の入力装置3
は、対人的な指示インターフェイスであり、この入力装
置3からプログラム編集6、プログラム表示7、プログ
ラムコンパイル8、モニタ重ね表示11の各処理への指
示が出力される。一般的には、キーボード、マウスが利
用される。
【0102】表示装置4は、グラフィック及びキャラク
タを表示可能な装置であり、CRTや液晶ディスプレイ
が利用される。
【0103】伝送装置5は、このプログラミング装置1
とコントローラ2の間を伝送接続する装置であり、一般
にはRS232CやEthernet等の伝送ボードやケーブルを指
す。
【0104】プログラム編集6は、入力装置3からの指
示にしたがい、3種類の制御プログラミング言語による
回路グラフィックを入力、切り取り、貼り付け、コピ
ー、削除する処理である。すなわち、このプログラム編
集6の処理により、3種類の制御プログラミング言語が
混在したプログラムの作成がなされ、作成されたプログ
ラムをプログラムファイル12の一要素として保存す
る。
【0105】なお、プログラムファイル12は、プログ
ラムの表示及び実行に関連するファイル群の総称であ
る。例えば、上記のようなプログラム編集6から得られ
る3種類の制御プログラミング言語により記述されたコ
ンパイル前のプログラムや、プログラムコンパイル8に
よるコンパイル後のプログラムを含む。
【0106】プログラム表示7は、プログラムファイル
12に基づいて、プログラム編集6等で扱われる回路グ
ラフィック等を表示する処理である。
【0107】すなわち、このプログラム編集6とプログ
ラム表示7とにより、ユーザは3種の言語の記述要素を
利用してグラフィカルなプログラムの作成が可能とな
る。
【0108】例えば、各種の制御プログラム言語で利用
される要素(LD言語における接点、コイル、FBD言
語におけるファンクション、ファンクションブロック、
SFC言語におけるステップ、トランジション、その他
処理の流れを示す線等)をマウスでドラッグし、移動さ
せてリリースするなどにより、3種の言語が混在した回
路グラフィックを表示させつつ、プログラムの編集が可
能となる。
【0109】プログラムコンパイル8は、3種類の言語
が混在している環境に適用される特別のコンパイル理論
により、3種の言語が混在している回路グラフィックを
コンパイルし、コントローラ2が実時間に実行できる命
令語(コントローラが処理する順序に並べられた命令
語)にコンパイル可能な形式を生成し、プログラムファ
イルの一部として保存する処理である。なお、コントロ
ーラ2が実時間に実行できる命令語にコンパイル可能な
形式とは、グラフィカルに記述されたプログラムから実
際にコントローラ2によって処理する順序を定めた形式
をいう。
【0110】また、プログラムコンパイル8は、適切な
順序の命令語にコンパイル可能な形式をさらに機械語の
プログラムにコンパイルし、プログラムファイル12の
一部として保存する。なお、グラフィカルに記述された
プログラムが例えばコントローラ2におけるマクロ命令
等のように、そのままコントローラ2上で実行可能であ
れば、この機械語への変換は必要ない。
【0111】ファイル送信9は、伝送装置5を利用して
プログラムファイル12のうち少なくとも機械語による
プログラムをコントローラ2の指定箇所へ送信する処理
である。
【0112】モニタデータ取得10は、伝送装置5を利
用してモニタデータ13をコントローラから取得する処
理である。
【0113】なお、モニタデータ13は、プログラム中
の演算結果や変数の現在値を示すデータである。このモ
ニタデータは、3種類の言語が混在している環境におい
て、回路グラフィック上に重ねて描画可能とするための
特別なデータ構造を持ち、回路グラフィック上に重ねて
描写することでモニタリングが可能となる。
【0114】モニタ重ね表示11は、モニタデータ13
を回路グラフィックに重ねてモニタ表示する処理であ
る。
【0115】コントローラ2は、プログラミング装置1
から受信した機械語のプログラムに基づいて図示しない
制御対象を制御する。また、この制御対象の状態やプロ
グラムの実行結果から得られるモニタデータ13をプロ
グラミング装置1に送信する。
【0116】このコントローラ2は、主に、伝送装置1
4とI/O装置15とを備え、ファイル受信16、プロ
グラム実行17、モニタデータ出力18、モニタデータ
返信19等の各種処理を実行する。なお、図1に示すコ
ントローラ2においては、説明を簡略にするために他の
構成装置及び処理の記載を省略しているが、通常のコン
トローラと同様の構成装置を備え、同様の処理を実行可
能である。
【0117】伝送装置14は、先の伝送装置5と同様
に、プログラミング装置1とコントローラ2の間を伝送
接続する装置である。
【0118】I/O装置15は、このコントローラ2が
図示しない制御対象のプロセスからのI/O信号を入出
力するための装置であり、一般的にはI/OカードやI
/Oバスなどが利用される。
【0119】ファイル受信16は、伝送装置14を利用
してプログラムファイル12のうちの少なくとも機械語
によるプログラムをプログラミング装置1から受信し、
指定箇所に配置する処理である。
【0120】プログラム実行17は、ファイル受信16
の処理によって受信されたプログラムファイル16の内
容を解釈し、I/O信号を入出力しながら機械語(命令
語)を実行する。
【0121】モニタデータ出力18は、実行されたプロ
グラムの演算結果や変数の値からモニタデータ18を生
成する処理である。
【0122】モニタデータ返信19は、モニタデータ出
力18によって生成されたモニタデータ13を、伝送装
置14を利用してプログラミング装置1に送信する処理
である。
【0123】上記のような構成を持つプログラミング装
置1におけるプログラムコンパイル8で採用されたコン
パイル理論について以下に説明する。このコンパイル理
論により、3種混在した制御プログラミング言語のコン
パイルが実現される。
【0124】なお、ここでいうコンパイルとは、ネット
ワークの集合体からコントローラ2の理解する最終的な
命令語を、IEC61131-3規格にしたがった解釈で並べるこ
とをいう。したがって、命令語への変換と実行順決定が
ここで説明しているコンパイル論理の骨子である。
【0125】図2は、本実施の形態に係るプログラミン
グ装置1で採用されたコンパイル理論を説明するための
フロー図である。
【0126】まず、3種の言語が混在したプログラムを
ノード及び矢印の要素に分解する処理が実行される(s
1)。
【0127】図3は、本実施の形態に係るプログラミン
グ装置によって混在表記されているプログラムの例を示
す図である。
【0128】このプログラム20においては、LD言
語、FBD言語、SFC言語が混在して記述されてい
る。
【0129】LD言語による記述部分には接点21やコ
イル22等のグラフィックシンボルが記述されている。
FBD言語による記述部分にはファンクション(ファン
クションブロック)23等のグラフィックシンボルが記
述されている。SFC言語による記述部分にはステップ
24、トランジション25等のグラフィックシンボルが
記述されている。
【0130】ここでは、上記のような各言語のグラフィ
ックシンボルを「ノード」として扱う。またノードを接
続する線を「矢印」として扱う。
【0131】LD言語では、IEC61131-3規格において、
左から右へパワーが流れるように解釈すると約束されて
いる(Power flow)。
【0132】同様に、FBD言語では、左から右へシグ
ナルが流れるように解釈すると約束されている(Signal
Flow)。
【0133】さらに、SFC言語では、上から下に状態
遷移するように解釈すると約束されている(Activity f
low)。
【0134】したがって、LD言語及びFBD言語で記
述されているノードを「○」とし、SFC言語で記述さ
れているノードを「△」とし、矢印の方向をパワー、シ
グナル、状態遷移の方向で表せば、ノード及び矢印で3
種混在したプログラムを書き換えることができる。
【0135】図4は、ノードと矢印でプログラムを表し
た場合の状態図である。この図4では先の図3に示すプ
ログラム20を書き換えた状態26を示している。
【0136】次に、ノードと矢印で示された状態26に
対するネットワーク単位のグルーピング処理が実行され
る(s2)。
【0137】このネットワーク単位のグルーピング処理
においては、ノードと矢印が接触されている集合体の単
位が1つのネットワークとされる。図4の状態26にお
いては、グルーピングの結果、3つのネットワークNetw
ork1、Network2、Network3が取得される。
【0138】次に、ノードと矢印で示された状態26に
対するサブネットワーク単位のグルーピング処理が実行
される(s3)。
【0139】このサブネットワーク単位のグルーピング
処理においては、先のネットワーク単位のグルーピング
処理において取得されたネットワークがSFCのノード
を含む場合に、SFC言語のトランジションに接続され
たLD言語あるいはFBD言語のネットワーク部分がサ
ブネットワークとされる。また、SFCのステップ・ト
ランジションのみで構成されたネットワーク部分がサブ
ネットワークとされる。さらに、SFC言語のステップ
に接続されたLD言語あるいはFBD言語のネットワー
ク部分がサブネットワークとされる。
【0140】上記のサブネットワークのグルーピング処
理により、図4の状態26においては、ネットワークNe
twork2がSFC言語のノードを含むため、まずネットワ
ークNetwork2のうちのLD言語を含む部分がサブネット
ワークAction1とされる。また、ネットワークNetwork2
のうちSFC言語のステップ・トランジションのみで構
成された部分がサブネットワークState1とされる。さら
に、ネットワークNetwork2のうちのFBD言語を含む部
分がサブネットワークCondition1とされる。
【0141】次に、上記処理により取得されたネットワ
ーク単位、及びサブネットワーク単位は、ノードとそれ
を接続する矢印から構成されるため、このネットワーク
単位及びサブネットワーク単位をグラフ理論における
「有向グラフ」とみなして実行順序が決定される(s
4)。
【0142】なお、有向グラフとはノード間の相対順序
が決められたグラフをいい、この有向グラフで結ばれて
いるノードを整列させる一般的な手法としてトポロジカ
ル・ソートがある。しかしながら、例えばIEC1131-3規
格にしたがうとすると、ネットワーク単位又はサブネッ
トワーク単位による有向グラフが必ずしもトポロジカル
・ソートで順序を比較できない半順序関係を形成する場
合がある。有向グラフがこのような半順序関係を含む場
合には、トポロジカル・ソートの解が一つとならない。
【0143】そこで、本実施の形態におけるプログラム
コンパイル8のコンパイル理論においては、以下のよう
な手順にしたがって、ネットワーク単位及びサブネット
ワーク単位による有向グラフの実行順序を決定する。
【0144】図5は、本実施の形態で採用されたノード
の順序決定手法を示す概念図である。
【0145】ネットワークあるいはサブネットワークが
図5(a)のような有向グラフで示されるとする。
【0146】まず、横書き文章の逆順(右下から左へ移
動し、上段にあがって再び右から左へ移動する動作を繰
り返す順序)に、各ノードが番号付けされる。
【0147】このノード番号付けにより得られる状態が
図5(b)である。
【0148】次に、ネットワークあるいはサブネットワ
ークによる有向グラフに対して、深さ優先探索(depth
first search)のアルゴリズムを適用して各ノードの拾
い上げが行われ、図5(c)の結果が得られる。
【0149】なお、深さ優先探索のアルゴリズムとは、
まず視点を出発し、番号の若い順に進む位置を調べ、行
けるところ(辺で連結されていてまだ訪問していない)
まで進む。行き場所がなくなったら、行き場所があると
ころまで戻り、再び行けることろまで進む。そして、行
き場所がすべてなくなったら終わる(来た道を戻る)と
いうアルゴリズムである。
【0150】この深さ優先探索のアルゴリズムにより
「6、3、5、8、4、2、1、7」というノードの実
行順序が得られる。
【0151】次に、上記のようなネットワーク及びサブ
ネットワークにおける実行順序を考慮して、コントロー
ラ2の理解する命令語を取得するためのコンパイラまと
め処理が実行される(s5)。
【0152】上記の処理により、ネットワーク及びサブ
ネットワーク単位内でのノードの実行順序が取得され
る。
【0153】ここで、ノードは、実際にはグラフィック
表記上「命令シンボル」であり、これがコントローラ1
上の「マクロ命令」(命令語シンボルを実行するための
CPUの理解する命令の集合)と考えれば、ノードの実
行順序はコントローラ2上の命令語実行順序に等しい。
【0154】したがって、コンパイラまとめ処理では、
最後の処理としてサブネットワーク単位間及びネットワ
ーク単位間での実行順序を求める。
【0155】サブネットワーク単位間の実行順序は、S
FC言語がステートマシンとして動作する基本の順序を
守るように決定される。
【0156】すなわち、 順序1:状態遷移の外部条件(Condition)の演算 順序2:状態遷移(State)の演算 順序3:状態遷移(Action)結果による外部動作演算 の順序を守ればよい。
【0157】したがって、サブネットワークはConditio
n1〜N、State、Action1〜Lの順で実行すればよく、先の
図4に示すネットワークNetwork2の場合も同様にサブネ
ットワークCondition1、State、Action1の順で実行すれ
ばよい。
【0158】ネットワーク単位間の実行順序は、各ネッ
トワーク単位の接続は独立であるため、例えばIEC61131
-3規格の自然な流れにしたがって、左から右、上から下
の順序を守るように決定される。
【0159】以上のような順序決定により3種混在した
プログラムのコンパイルが実行されるが、実際には編集
画面を横書き文章の順(左上から右へ移動し、下段にさ
がって再び左から右へ移動する動作を繰り返す順序)
に、ネットワークが取得され、この取得されたネットワ
ーク内でもっとも若い順序となるノードをそのネットワ
ークの代表と考え、そのノード間で最も若い順にネット
ワークを実行してゆけばよい。
【0160】図6は、上記のコンパイル理論により得ら
れるコンパイル結果を示す概念図である。
【0161】このコンパイル結果27には、ネットワー
クNerwork1〜5、ネットワークNetwork3内に含まれるサ
ブネットワークCondition1,2、Action1,2、ネットワー
クあるいはサブネットワーク内に含まれるノードNode1
〜6が実行順に記述されている。
【0162】続いて、上記のような構成を持つプログラ
ミング装置1において扱われるモニタデータ13の構造
について説明する。このモニタデータ13の構造によ
り、3種類の言語の混在表記上に入力値及び出力値等を
表示させ、制御動作のモニタが実現される。
【0163】ここで、モニタとは、コンパイルした結果
がコントローラ2で実行された場合に、このコントロー
ラ2上で実行されている命令シンボル(命令語)の入力
値、出力値を実時間でユーザが確認可能とすることをい
う。実際には、表示装置4におけるグラフィック表記上
の対応位置にこの入力値、出力値を重ね合わせて表示す
ることで、モニタが実現させる。
【0164】図7は、本実施の形態に係るプログラミン
グ装置1によって扱われるモニタデータ13の構造、コ
ンパイル結果の構造、及びモニタデータ構造テンプレー
トを示す関係図である。
【0165】上記のコンパイル理論によるコンパイルの
結果から知り得るのは、命令語とその命令語の位置(ア
ドレス)であり、コンパイル結果の構造28として各ノ
ードNode1〜8に対してアドレスAddress1〜8を割り当て
た構造が得られる。
【0166】ここで、命令語には、固有値として入力、
出力の数とデータ型とがあるため、命令語に対して一意
のモニタデータ構造があるといえる。
【0167】したがって、コンパイル時にモニタデータ
構造テンプレート29を作成しておくことで、コントロ
ーラ2の演算時に外部出力するモニタデータについて、
その構造30を予め作成しておくことができる。
【0168】なお、ここでは、モニタデータの構造30
は、各モニタデータData1〜8に対してアドレスMaddress
1〜8を割り当てた構造としている。
【0169】また、モニタデータ構造テンプレート29
では、各ノードNode1〜8のアドレスAddress1〜8と、各
モニタデータのアドレスMaddress1〜8と、各データの型
DataType1〜8とが関係付けられている。
【0170】これにより、コンパイル結果の構造28に
対応するモニタデータを取得可能となり、3種の言語を
混在表記させたグラフィック上に配置可能となる。
【0171】図8は、3種の制御プログラミング言語で
プログラムを混在表記し、このグラフィック表記上にモ
ニタデータを重ねて表示した場合の一例を示す画面図で
ある。
【0172】同様に、図9も、3種の言語でプログラム
を混在表記し、このグラフィック表記上にモニタデータ
を重ねて表示した場合の他の例を示す画面図である。
【0173】以上説明したように、本実施の形態に係る
プログラミング装置1においては、複数の制御プログラ
ミング言語を混在させて表示可能とした。
【0174】これにより、各種言語を同一編集平面上に
表記できるため、呼び合いを辿る等の必要がなくユーザ
が全体をまとめて認識することができる。
【0175】また、各種言語を自然に混在させ、補完す
ることができるため、仕様可読性を向上させることがで
きる。
【0176】すなわち、ユーザが制御処理の内容や作成
するプログラムの内容を容易に理解することができる。
【0177】ゆえに、プログラムの生産性を向上させる
ことができ、またユーザの作業効率を向上させることが
できる。
【0178】また、本実施の形態に係るプログラミング
装置1においては、各種言語の記述要素をノードとして
扱い、各種言語の流れを矢印として扱い、グラフ理論に
おける深さ探索優先アルゴリズムにより処理順序を決定
してコンパイルを行う。
【0179】したがって、複数の制御プログラミング言
語を自然に混在させて補完しつつ、編集したプログラム
をそのままコンパイルし、コントローラ2にダウンロー
ドして制御を実行させることができる。これにより、各
種言語の利点を活かしつつプログラムを作成することが
でき、仕様記述性を向上させることができる。
【0180】また、本実施の形態に係るプログラミング
装置1においては、コンパイル時に、各種言語の記述要
素とモニタデータとを関連付けておくことで、各種の言
語によるグラフィック表記上にモニタデータを重ねて表
記できるため、ユーザが容易に問題点を発見することが
できる。ゆえに、ユーザは品質の高い制御用のプログラ
ムを作成することができる。
【0181】(第2の実施の形態)本実施の形態におい
ては、制御プログラムの共用性を向上させるプログラミ
ング装置について説明する。
【0182】図10は、本実施の形態に係るプログラミ
ング装置のハードウェア構成を示すブロック図である。
【0183】プログラミング装置31は、コントローラ
のシーケンスプログラム実行状態を監視したり、シーケ
ンスプログラムの作成・修正に使用される。また、CR
T他の表示装置とキーボード他の入力装置をもつ。
【0184】このプログラミング装置31は、CPU3
2、OS・プログラムメモリ33、ワークメモリ34、
入出力インターフェイス35、表示インターフェイス3
6、通信インターフェイス37がマイコンパス41で相
互に送受信可能に接続されて構成されている。また、入
出力インターフェイス35に入力装置38が接続されて
おり、さらに表示インターフェイス36に表示器39が
接続されている。
【0185】また、このプログラミング装置31は、通
信インターフェイス37を介してプログラマブルコント
ローラ40と通信可能となっている。
【0186】このプログラミング装置31の備えるCP
U32は、プログラミング装置31の中枢部分であり、
プログラミング装置31全体の実行制御を行う。
【0187】OS・プログラム33は、CPU32が実
行するプログラムが格納されているメモリであり、OS
や制御プログラムが格納される。
【0188】ワークメモリ34は、CPU32が全体制
御を実行するときに作業領域として使用する。
【0189】入出力インタフェース35は、キーボード
他の入力機器を接続するためのインタフェース回路であ
る。
【0190】入力装置38はキーボードやタッチパネル
などで構成され、シーケンスプログラムを入力するのに
使用される。
【0191】表示インタフェース36は、表示器39を
接続するためのインタフェース回路であり、表示データ
用メモリなどを含む。
【0192】表示器39は、シーケンスプログラム(制
御プログラムの一種)やデータの表示に使用されるCR
Tや液晶表示器などの表示器である。
【0193】通信インタフェース37はプログラミング
装置31とプログラマブルコントローラ40などを通信
媒体を介して接続するためのインタフェース回路であ
る。
【0194】マイコンバス41はプログラミング装置3
1内の要素をCPU32と接続するためのバスであり、
アドレスバス、データバス、制御バスの総体である。
【0195】図11は、上記のようなハードウェア構成
を持つプログラミング装置31における処理内容を示す
ブロック図である。
【0196】ユーザが、このプログラミング装置31を
利用して、例えばLD言語で記述されたシーケンスプロ
グラム42をソース・プログラムとして作成したとす
る。なお、このシーケンスプログラム42は、入力装置
38から入力され、表示器39に表示されて編集され、
図や変数と共にワークメモリ34内に格納される。
【0197】プログラミング装置31は、ソース・プロ
グラムを中間言語による記述に変換するための中間コン
パイラ43を搭載しており、この中間コンパイラ43に
より、シーケンスプログラム42が中間言語プログラム
44に書き換えられる。
【0198】なお、中間言語とは、機械語にも変換可能
であり、またソース・プログラムを記述した言語にも変
換可能な状態でプログラムを記述する言語である。
【0199】具体的には、例えばIL(Instruction Li
st)言語のように命令コードとオペランドの組み合わせ
で表現され、テキスト形式で格納される言語が中間言語
として適用できる。
【0200】中間コンパイラ43によって得られた中間
プログラム44は、ワークメモリ34に格納される。
【0201】表2は、LD言語によって記述されたシー
ケンスプログラムを中間言語によって記述された中間言
語プログラムに変換する変換ルールの一部を示すテーブ
ルである。
【0202】
【表2】
【0203】このような変換ルールに従うことにより、
LD言語のような図式プログラムをテキスト形式の中間
プログラムに変換することが可能となる。命令文の区切
りはスペース又は改行コードで示される。
【0204】さらに、プログラミング装置31は、中間
言語で記述された中間言語プログラムを機械語のプログ
ラムによる記述に変換するための機械語コンパイラ45
を搭載しており、この機械語コンパイラ45により、中
間言語プログラム44がコントローラ40で実行可能な
機械語プログラム46に書き換えられる。
【0205】表3は、中間言語によって記述された中間
言語プログラムを機械語によって記述された機械語プロ
グラムに変換する変換ルールの一部を示すテーブルであ
る。
【0206】
【表3】
【0207】このような変換ルールに従うことにより、
中間言語プログラム44を機械語プログラム46に変換
することが可能となる。
【0208】なお、この機械語コンパイラ45による変
換によって得られる機械語プログラムに含まれる機械語
コードは、命令コード部分及びオペランドアドレス部分
とからなるが、この命令コード部分及びオペランドアド
レス部分は固定長とされる。
【0209】これにより、変換後の機械語プログラムが
コントローラ40で実行される際の演算処理が容易とな
る。
【0210】さらに、プログラミング装置31は、中間
言語で記述された中間言語プログラムをLD言語で記述
されたソース・プログラムによる記述に変換するための
逆コンパイラ47を搭載している。
【0211】この逆コンパイラ47で利用される変換ル
ールは、先の表2を逆に適用する手法が採用される。
【0212】この逆コンパイラ47により、中間言語プ
ログラム44がシーケンスプログラム42に書き換えら
れる。
【0213】以上説明したように、本実施の形態に係る
プログラミング装置31においては、ソースの図式プロ
グラムがテキスト形式の中間言語に変換されて格納され
る。
【0214】したがって、プログラムの保存や伝送が容
易になる。また、この中間言語により記述された中間プ
ログラムを表示させた場合であっても人間が内容を確認
しやすい。
【0215】また、生成した機械語プログラム46を構
成する命令語コードとオペランドアドレスとを固定長と
したため、機械語プログラムをコントローラ40で処理
しやすくなる。
【0216】なお、本実施の形態においては、ソース・
プログラムがLD言語によって記述された場合を例とし
て説明しているが、これに限定されるものではなく、F
BC言語、SFC言語、ST言語、ニーモニック言語等
の各種制御プログラムに対して同様に適用できる。
【0217】また、本実施の形態に係るプログラミング
装置31においては、中間言語から機械語へ変換する機
械語コンパイラ45を搭載しているが、例えば中間言語
自体がコントローラ40で実行可能な言語であればこの
機械語コンパイラ45を省略させることができる。
【0218】(第3の実施の形態)本実施の形態におい
ては、上記第2の実施の形態に係るプログラミング装置
31の変形例であり、制御プログラムを実行させるコン
トローラ毎に機械語コンパイラを切り換えるプログラミ
ング装置について説明する。
【0219】図12は、本実施の形態に係るプログラミ
ング装置における処理内容を示すブロック図である。
【0220】本実施の形態に係るプログラミング装置4
8において、中間言語プログラムを得るまでに関係する
構成、処理は、上記第2の実施の形態に係るプログラミ
ング装置31と同様であるため、説明を省略する。
【0221】プログラミング装置48は、中間言語を機
種の異なる複数のコントローラ40a〜40cのそれぞ
れに対応した機械語に変換する機械語コントローラ45
a〜45cを搭載している。
【0222】したがって、各機械語コンパイラ45a〜
45cによる変換により、ある中間言語プログラム44
から各コントローラ40a〜40cに対応した複数種類
の機械語プログラム46a〜46cが得られる。
【0223】以上説明したように、本実施の形態に係る
プログラミング装置48においては、対象となるコント
ローラの種類に応じて複数のコンパイラを用意してお
り、同一の中間言語プログラムから複数の種類の機械語
プログラムを作成することが可能である。
【0224】これにより、例えば同一シリーズのコント
ローラにおいて、メモリ容量が異なる機種用に機械語プ
ログラムを作成するために、アドレス範囲の変更やアド
レス割付の変更を容易に実現でき、容易に機械語プログ
ラムを作成することができる。ゆえに、機種毎に図式プ
ログラムを再入力する労力を削減することができる。
【0225】(第4の実施の形態)本実施の形態におい
ては、上記第2又は第3の実施の形態に係るプログラミ
ング装置31、48の変形例であり、各種ソース・プロ
グラムを中間言語による記述に変換するために複数の中
間コンパイラを備えたプログラミング装置について説明
する。
【0226】図13は、本実施の形態に係るプログラミ
ング装置における処理内容を示すブロック図である。こ
の図13において、図11と同一の部分については同一
の符号を付してその説明を省略し、ここでは異なる部分
についてのみ詳しく説明する。
【0227】本実施の形態に係るプログラミング装置4
9において、中間言語プログラムを得た後に関係する構
成、処理は、上記第2の実施の形態または第3の実施の
形態に係るプログラミング装置31、48と同様である
ため、説明を省略する。
【0228】プログラミング装置49は、LD言語で図
式に作成されたプログラム42を中間言語プログラム4
4に変換する中間コンパイラ43に加え、ST(ストラ
クチャードテキスト)言語、ニーモニック言語で記述さ
れたシーケンスプログラム42a、42bを、同一の中
間言語プログラム44に変換する中間コンパイラ43
a、43bを搭載している。
【0229】LD言語を中間言語に変換する変換ルール
の一部は、先で説明した表2と同様であり、中間コンパ
イラ43で採用されている。
【0230】表4は、ST言語を中間言語に変換する変
換ルールの一部を示すテーブルである。この表4の変換
ルールは、中間コンパイラ43aで採用されている。
【0231】
【表4】
【0232】表5は、ニーモニック言語を中間言語に変
換する変換ルールの一部を示すテーブルである。この表
5の変換ルールは、中間コンパイラ43bで採用されて
いる。
【0233】
【表5】
【0234】以上説明したように、本実施の形態に係る
プログラミング装置49においては、3種別々の言語に
て作成されたシーケンスプログラムであっても同一の形
式の中間言語プログラムに変換することが可能である。
すなわち、複数のシーケンスプログラムに対してもその
表現している論理が同一であれば、同一の中間言語プロ
グラムに変換が可能となる。
【0235】ユーザは、種々のシーケンスプログラムを
統一した形式の中間言語プログラムとして管理すること
ができる。
【0236】また、複数のプログラミング言語で作成さ
れたシーケンスプログラムに対する中間言語プログラム
が同一の形式であることを利用し、中間コンパイラ4
3、43a、43bと逆の変換を行う逆コンパイラを加
えることで、あるプログラミング言語で作成されたシー
ケンスプログラムを他のプログラミング言語にて自由に
表示したり、編集したりすることも可能になる。
【0237】さらに、ソース・プログラムの記述されて
いる言語がどの言語であっても、中間言語に変換されて
いれば同様に機械語コンパイラにより機械語の記述に変
換することができる。ゆえに、複数の種類のシーケンス
プログラムから作成された中間言語プログラムであって
も同様に機械語プログラムに変換することが可能であ
る。
【0238】なお、本実施の形態においては、LD言
語、ST言語、ニーモニック言語を中間言語に変換、あ
るいは、逆変換可能としているが、これに限定されるも
のではなく、他の各種の制御プログラミング言語を同様
に利用することができる。
【0239】(第5の実施の形態)本実施の形態におい
ては、上記第2から第4の実施の形態に係るプログラミ
ング装置で利用されているテキスト形式の中間言語では
なく、固定長の機械語の命令コードと固定長のアドレス
とからなる形式の中間言語を利用するプログラミング装
置について説明する。
【0240】図14は、本実施の形態に係るプログラミ
ング装置で採用される中間言語の記述形式を示す概念図
である。
【0241】ここでは、先の第2から第4の実施の形態
における中間言語で採用されたテキスト形式に代えて、
命令語と変数の表現とを、コントローラの命令語コード
50aと変数アドレスコード50bからなるバイナリ形
式50で表す。
【0242】また、中間言語で採用される命令語コード
50aと変数アドレスコード50bとを固定長とする。
【0243】ただし、この場合は変数名がコントローラ
内のメモリの物理アドレスまたは論理アドレスに変換さ
れてしまう。
【0244】したがって、本実施の形態に係るプログラ
ミング装置は、ソース・プログラムへの逆変換を可能と
するために、命令語と命令コードの対応テーブルを中間
言語プログラムと同時に保存する。
【0245】表6は、ソース・プログラムへの逆変換を
可能とするための命令語と命令コードの対応テーブルで
ある。
【0246】
【表6】
【0247】また、本実施の形態に係るプログラミング
装置は、同様の理由により、変数名とアドレスコードの
対応テーブルを中間言語プログラムと同時に保存する。
【0248】表7は、ソース・プログラムへの逆変換を
可能とするための変数名とアドレスコードの対応テーブ
ルである。
【0249】
【表7】
【0250】以上説明したように、本実施の形態に係る
プログラミング装置においては、中間言語によって記述
される中間プログラムがコントローラの命令語コードと
変数アドレスとにより記述される。
【0251】したがって、中間言語自体がコントローラ
で実行可能な言語であるので機械語コンパイラを省略さ
せることができ、中間プログラムをそのままコントロー
ラで実行させることができる。
【0252】また、中間プログラムをそのまま実行可能
とすることにより、機械語プログラムが必要ないため、
メモリを節約することができる。
【0253】(第6の実施の形態)本実施の形態におい
ては、プログラミング装置との間でメモリ容量やCPU
能力等に基づく負荷レベルが比較され、プログラミング
装置よりも自己の方が負荷レベルが低い場合に、中間コ
ンパイラ、機械語コンパイラ、逆コンパイラを動作させ
るプログラマブルコントローラについて説明する。
【0254】図15は、本実施の形態に係るプログラマ
ブルコントローラのハードウェア構成を示すブロック図
である。
【0255】このプログラマブルコントローラ51は、
CPU52、プログラムメモリ53、ワークメモリ5
4、シーケンス演算装置55、シーケンスプログラムメ
モリ、データメモリ、通信インターフェイス、I/O装
置がマイコンバス65で相互に送受信可能に接続されて
構成されている。
【0256】このプログラマブルコントローラ51は、
通信インターフェイス58を介して分散部61を搭載し
たプログラミング装置60と通信可能となっている。
【0257】このプログラマブルコントローラ51の備
えるCPU52は、このプログラマブルコントローラ5
1の中枢部分であり、コントローラ全体の実行制御を行
う。
【0258】プログラムメモリ53は、CPU52が実
行するプログラムが格納されているメモリであり、OS
や制御プログラムが格納される。
【0259】ワークメモリ54は、CPU52が全体制
御を実行するときに作業領域として使用する。
【0260】シーケンス演算装置(シーケンス演算プロ
セッサ)55は、シーケンスプログラムを実行するプロ
セッサである。
【0261】シーケンスプログラムメモリ56は、ユー
ザが作成したシーケンスプログラムを格納するメモリで
ある。
【0262】データメモリ57はユーザが使用する変数
などのデータを格納するメモリである。
【0263】通信インタフェース58はこのプログラマ
ブルコントローラ51とプログラミング装置60などを
通信媒体を介して接続するためのインタフェース回路で
ある。
【0264】I/O装置59は、このプログラマブルコ
ントローラ51と外部の制御対象を接続するための入出
力装置である。
【0265】マイコンバス65は、プログラマブルコン
トローラ51内の要素をCPU52やシーケンス演算装
置55と接続するためのバスであり、アドレスバス、デ
ータバス、制御バスの総体である。
【0266】さらに、プログラマブルコントローラ51
は、先の第2から第5の実施の形態において説明した各
種のコンパイラ(例えば中間コンパイラ43、43a、
43b、機械語コンパイラ45、逆コンパイラ47)を
搭載している。
【0267】すなわち、このプログラマブルコントロー
ラ51のプログラムメモリ53には、上記と同様の変換
を行う中間コンパイラ、機械語コンパイラ、逆コンパイ
ラが所持されている。
【0268】一方、このプログラマブルコントローラ5
1と通信可能なプログラミング装置60は、上記第2か
ら第5の実施の形態に係るプログラミング装置31、4
8、49と同様の構成を持ち、同様に動作可能である
が、さらに分散部61を備えている。
【0269】分散部61は、プログラマブルコントロー
ラ51とプログラミング装置60との間におけるCPU
処理能力やメモリ容量を調査する。そして、この調査結
果に基づいて、各種プログラムの保存やコンパイル処理
の実行をプログラマブルコントローラ51とプログラミ
ング装置60のいずれで行うかを決定し、指示する。
【0270】上記のような構成を持つ本実施の形態に係
るプログラマブルコントローラ51を利用することで、
ソース・プログラムから中間言語プログラムへの変換処
理、中間言語プログラムから機械語プログラムへの変換
処理、中間言語プログラムからソース・プログラムへの
逆変換処理が、プログラマブルコントローラ51とプロ
グラミング装置60のいずれでも実行可能となる。
【0271】したがって、プログラミング装置60の分
散部61が、プログラマブルコントローラ51とプログ
ラミング装置60との処理能力やメモリ容量にしたがっ
て、ソース・プログラムや中間言語プログラムへの処
理、及び配置を自由に選択する。
【0272】図16は、本実施の形態におけるプログラ
ムの配置関係の第1の例を示すブロック図である。
【0273】プログラミング装置60の能力に余裕があ
る場合には、ソース・プログラム611、中間言語プロ
グラム62をプログラミング装置60に配置して変換を
行い、メモリ容量の少ないプログラマブルコントローラ
51には機械語プログラム63を格納する。
【0274】図17は、本実施の形態におけるプログラ
ムの配置関係の第2の例を示すブロック図である。
【0275】プログラミング装置60に比べてプログラ
マブルコントローラ51にメモリ容量の余裕がある場合
には、プログラミング装置60にソース・プログラム6
11を格納し、中間言語プログラム62及び機プログラ
ム63をプログラマブルコントローラ51に格納する。
【0276】図18は、本実施の形態におけるプログラ
ムの配置関係の第3の例を示すブロック図である。
【0277】プログラミング装置60の処理能力に余裕
がなく、プログラマブルコントローラ51のメモリ容量
に余裕がある場合には、プログラミング装置60にソー
ス・プログラム611を格納し、プログラマブルコント
ローラ51にソース・プログラム611を転送し、この
転送後、プログラマブルコントローラ51で中間言語プ
ログラム62及び機械語プログラム63に変換し、保存
する。
【0278】以上説明したように、本実施の形態に係る
プログラマブルコントローラ51を適用することによ
り、プログラマブルコントローラ51やプログラミング
装置60のメモリ容量やCPU能力にあわせて、シーケ
ンスプログラムや、中間言語プログラム、機械語プログ
ラムの格納場所や変換場所が選択される。
【0279】ゆえに、プログラマブルコントローラ51
やプログラミング装置60のどちらかの能力が低い場合
でも、中間言語を利用することができる。
【0280】なお、本実施の形態においては、プログラ
ミング装置60側に分散部61を備えたが、これに限定
されるものではなく、プログラマブルコントローラ51
側にこの分散部61を備えてもよい。
【0281】また、本実施の形態においても、上記各種
のコンパイラを利用することで同様の効果を得ることが
できる。
【0282】(第7の実施の形態)本実施の形態におい
ては、第6の実施の形態に係るプログラミング装置60
の変形例について説明する。
【0283】先の第6の実施の形態においては、プログ
ラマブルコントローラ51とプログラミング装置60の
いずれでもプログラムを変換、配置することができると
している。しかしながら、ソース・プログラムを除く他
のプログラム(中間プログラム及び機械語プログラム)
をプログラマブルコントローラ51に固定的に配置する
とし、変換処理もこのプログラマブルコントローラ51
で実行すると定めてもよい。
【0284】すなわち、プログラマブルコントローラ5
1は、プログラミング装置60からソース・プログラム
611のみを受信して格納し、このプログラマブルコン
トローラ51で中間言語、機械語への変換がなされる。
【0285】これにより、表示器と入力装置と簡単な処
理装置と通信インターフェイスだけを持つプログラミン
グ装置60を利用しても中間言語を利用したプログラミ
ングが可能となる。
【0286】なお、本実施の形態においても、上記各種
のコンパイラを利用することで、上記と同様の効果を得
ることができる。
【0287】(第8の実施の形態)本実施の形態におい
ては、上記第2から第7の実施の形態の変形例であり、
ソース・プログラムには含まれているが中間言語に変換
した際に不要となる記述の取扱いについて説明する。
【0288】シーケンスプログラムには、命令語の他に
変数宣言、ラベル、コメントなどのような、コンパイル
後には不要となる部分も含まれている場合がある。
【0289】本実施の形態においては、中間コンパイラ
がコンパイル後に不要になる部分を特別の中間言語コー
ドに変換し、中間言語プログラムに付加させる。
【0290】表8は、コンパイル後に不要な部分を中間
言語表記のコードに変換する変換ルールの一部を示すテ
ーブルである。
【0291】
【表8】
【0292】図19は、本実施の形態における中間プロ
グラムの記述形式を示す図であり、変換後の中間言語コ
ード64aが中間プログラム64に付加されている状態
を示している。
【0293】以上説明したように、本実施の形態におい
ては、コンパイル後に不要となる記述をソース・プログ
ラムが含んでいる場合には、この不要となる記述をコー
ド化して中間言語プログラムに含めておく。
【0294】したがって、上記の変換処理を行う中間コ
ンパイラを先で述べたプログラミング装置やプログラマ
ブルコントローラに搭載することで、変数名やコメント
文も含む元のシーケンスプログラムへ容易に逆変換可能
となる。
【0295】また、プログラミング言語の種類に関係し
ない中間言語形式にもなっているので、ユーザが選択し
たプログラミング言語に逆変換して表示や編集をするこ
とが可能となる。
【0296】さらに、中間言語プログラムから機械語プ
ログラムへのコンパイル時にこの不要部分のコードのみ
を容易に分離できるため、機械語への変換を行うコンパ
イル作業が簡単化できる。
【0297】(第9の実施の形態)本実施の形態におい
ては、上記第8の実施の形態の変形例であり、中間言語
プログラムが機械語コードで記述される場合について説
明する。
【0298】先の第5の実施の形態と同様に、本実施の
形態においては中間言語プログラムをプログラマブルコ
ントローラの機械語コードを使用して、かつ固定長のコ
ードで表現できるように構成する。
【0299】ここで、第8の実施の形態と同様に、コメ
ント文等のプログラムの実行に直接関与しない部分(コ
ンパイル後に不要となる部分)の中間言語プログラムに
はプログラマブルコントローラが演算処理において非実
行命令であると解釈可能な命令コードを付与する。
【0300】なお、ここではバイナリコードによってコ
ンパイル後に不要となる部分のコードを記述する。
【0301】表9は、コンパイル後に不要な部分をバイ
ナリ形式の中間言語表記のコードに変換する変換ルール
の一部を示すテーブルである。
【0302】
【表9】
【0303】以上説明したように、本実施の形態におけ
る変換処理を先で述べたプログラミング装置やプログラ
マブルコントローラに搭載されている中間コンパイラに
適用すると、プログラマブルコントローラが機械語コー
ドを使用して固定長化された中間言語プログラムを直接
実行することが可能となる。
【0304】また、この中間言語は変数名やコメント文
も含んでいるので容易に元のシーケンスプログラムへ逆
変換可能であるし、プログラミング言語の種類に関係し
ない中間言語形式にもなっているので、ユーザが選択し
たプログラミング言語に逆変換して表示や編集をするこ
とが可能である。
【0305】このように構成することにより、プログラ
マブルコントローラ内に1種類の中間言語プログラムを
もたせるだけで、直接実行も可能であり、元のシーケン
スプログラムへの逆変換も可能にできる。
【0306】(第10の実施の形態)本実施の形態にお
いては、上記各実施の形態の変形例について説明する。
【0307】第1の実施の形態で説明したプログラミン
グ装置においては、3種混在したプログラムをコンパイ
ル後、複数のコントローラに自動分散させて処理を実行
させるとしてもよい。例えば、混在表記されたプログラ
ムのうち所定の言語で記述された部分は所定のコントロ
ーラで実現させ、他の言語で記述された部分は他のコン
トローラで実現させる等の手法で自動的に処理を分散、
実行させることができる。また、これにより、各処理に
対する適切なコントローラを自動的に選択し、処理を実
行させることができる。
【0308】また、上記各実施の形態で説明したプログ
ラミング装置やプログラマブルコントローラは、クライ
アント・サーバ型でも、スタンドアローン型でも利用可
能とすることができる。サーバが存在する場合には、自
装置に備えられていないサーバの機能を流用することが
でき、例えば自装置が持っていないファンクションやフ
ァンクションブロック、プログラムをサーバから読み出
して利用することができる。
【0309】また、上記各プログラミング装置におい
て、トップダウン方式のプログラミングを可能としても
よい。このように、トップダウン方式によりプログラミ
ングを行うことで、システム構成設計のブロックから順
次、関連する下位のブロックを開いていき、機能、設計
レベル、I/O設計レベル、モジュール設計レベル、取
扱い説明書の参照などが可能となる。
【0310】また、トップダウン方式のプログラミング
を可能とすることで、プログラミング装置上で作成した
設計仕様書などのドキュメントと、このドキュメントに
関連するプログラムを有機的にリンクさせ、ドキュメン
トとプログラムの相関関係を規定することができる。機
能ブロック図などでは、そのブロックからプログラム編
集、モニタを実行することができ、ライブラリを活用す
ることにより、システムエンジニアリングからプログラ
ミング、メンテナンスまでをシームレスに実行すること
ができる。
【0311】また、上記各プログラミング装置におい
て、ボトムダウン方式のプログラミングを可能としても
よい。このように、ボトムダウン方式によりプログラミ
ングを行うことで、I/O設計、モジュール設計を並行
に進行させた後に機能モジュールとして統合し、システ
ムとしてもプログラムを作成することができる。
【0312】また、上記各プログラミング装置を、従来
のプログラマブルコントローラで使用されていたレジス
タと同一名称の変数を自動的に定義し、あたかもレジス
タを使用してプログラムを作成しているように利用でき
るとしてもよい。
【0313】また、上記各プログラミング装置におい
て、作成するプログラム間の参照関係図を表示するとし
てもよい。これにより、一方のプログラムを変更した場
合に、他方のプログラムの変更が必要か否かど、プログ
ラム変更時の影響をユーザが容易に認識することができ
る。
【0314】また、上記各実施の形態で説明したプログ
ラミング装置やプログラマブルコントローラは、例えば
LD言語によって記述された接点やコイル命令をフォー
スする際に、プログラム全体をコンパイルし直すことな
くプログラム中の対象になる命令のコードだけを変更す
ることにより、フォース機能を実現することができる。
【0315】なお、上記各実施の形態に係るプログラミ
ング装置及びプログラマブルコントローラの各機能、各
要素(例えば異なる言語の混在表示機能、混在プログラ
ムをコンパイルするコンパイラ、中間コンパイラ、機械
語コンパイラ、逆コンパイラ等)は、コンピュータに実
行させることのできるプログラムとして、例えば磁気デ
ィスク(フロッピーディスク、ハードディスク等)、光
ディスク(CD−ROM、DVD等)、半導体メモリな
どの記録媒体に書き込んで適用したり、通信媒体により
伝送して計算機あるいは計算機システム、プログラマブ
ルコントローラに適用することも可能である。上記各機
能を実現するコンピュータは、記録媒体に記録されたプ
ログラムを読み込み、プログラムによって動作が制御さ
れることにより、上述した処理を実行する。
【0316】
【発明の効果】以上詳記したように本発明においては、
複数種類の制御プログラミング言語を混在表記できるた
め、ユーザが制御プログラムの内容を容易に理解するこ
とができる。
【0317】また、本発明においては、混在表記させて
いたプログラムをそのままコンパイルすることができる
ため、各種言語の利点を活用したプログラムを作成し、
実行させることができる。
【0318】また、本発明においては、モニタデータを
混在表記させたプログラム上に表示させるため、ユーザ
が容易に問題点を発見することができる。
【0319】また、本発明においては、制御プログラム
をプログラミング言語の種類によらない共通の形式の中
間言語プログラムに変換するので、プログラムの形式が
統一され、管理が簡単になる。なお、中間言語をテキス
ト形式で表現した場合には、人間が論理を検証する際に
図式言語に比較して検証しやすく、また1種類の共通形
式で記述されたプログラムを検証するだけですむ。ゆえ
に、複数の種類のプログラミング言語で記述された制御
プログラムの検証労力を軽減させることができる。
【0320】また、本発明においては、中間言語プログ
ラムを制御プログラムに逆変換する際に、あるプログラ
ミング言語を選択して逆変換可能なので、あるプログラ
ミング言語のプログラムを他のプログラミング言語のプ
ログラムに変換することも可能になる。
【0321】したがって、一旦入力したプログラムを任
意のプログラミング言語で表示・編集することが可能と
なる。
【0322】また、本発明においては、中間言語プログ
ラムをテキスト形式だけでなく、プログラマブルコント
ローラが直接実行可能な機械語コードを利用して構成す
ることにより、プログラマブルコントローラで直接実行
可能で、かつ元のシーケンスプログラムに逆変換するこ
とも可能な中間言語プログラムを得ることが可能となっ
ている。
【0323】これはプログラムのコンパイル後もソース
プログラムの情報が失われていないということであり、
従来のプログラマブルコントローラやプログラミング装
置がソースプログラムと機械語プログラムを2重に保存
しておかなければならなかったことに比べてメモリの節
約が可能になる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るプログラミン
グ装置の構成を示すブロック図。
【図2】同実施の形態に係るプログラミング装置で採用
されたコンパイル理論を説明するためのフロー図。
【図3】同実施の形態に係るプログラミング装置によっ
て混在表記されているプログラムの例を示す画面図。
【図4】ノードと矢印でプログラムを表した場合を示す
状態図。
【図5】同実施の形態で採用されたノードの順序決定手
法を示す概念図。
【図6】同実施の形態で採用されたコンパイル理論によ
り得られるコンパイル結果を示す概念図。
【図7】同実施の形態に係るプログラミング装置によっ
て扱われるモニタデータの構造と、コンパイル結果の構
造、及びモニタデータ構造テンプレートを示す関係図。
【図8】3種の制御プログラミング言語でプログラムを
混在表記し、モニタデータを重ねて表示した場合の一例
を示す画面図。
【図9】3種の制御プログラミング言語でプログラムを
混在表記し、モニタデータを重ねて表示した場合の他の
例を示す画面図。
【図10】本発明の第2の実施の形態に係るプログラミ
ング装置のハードウェア構成を示すブロック図。
【図11】同実施の形態に係るプログラミング装置にお
ける処理内容を示すブロック図。
【図12】本発明の第3の実施の形態に係るプログラミ
ング装置における処理内容を示すブロック図
【図13】本発明の第4の実施の形態に係るプログラミ
ング装置における処理内容を示すブロック図
【図14】本発明の第5の実施の形態に係るプログラミ
ング装置で採用される中間言語の記述形式を示す概念
図。
【図15】本発明の第6の実施の形態に係るプログラマ
ブルコントローラのハードウェア構成を示すブロック
図。
【図16】同実施の形態におけるプログラムの配置関係
の第1の例を示すブロック図。
【図17】同実施の形態におけるプログラムの配置関係
の第2の例を示すブロック図。
【図18】同実施の形態におけるプログラムの配置関係
の第3の例を示すブロック図。
【図19】本発明の第8の実施の形態における中間プロ
グラムの記述形式を示す図。
【図20】従来のプログラミング装置において異種の制
御プログラミング言語を利用して作成したプログラムを
表示した例を示す画面図。
【図21】シーケンスプログラムを作成したプログラミ
ング装置とモニタを行うプログラミング装置が異なる場
合の例を示すブロック図。
【符号の説明】
1、31、48、49、60…プログラミング装置 2、40、40a〜40c、51…プログラマブルコン
トローラ 6…プログラム編集 7…プログラム表示 8…プログラムコンパイル 10…モニタデータ 11…モニタ重ね表示 12…プログラムファイル 13…モニタデータ 17…プログラム実行 18…モニタデータ出力 19…モニタデータ返信 32、52…CPU 33…OS・プログラムメモリ 34、54…ワークメモリ 42、42a、42b…シーケンスプログラム 43、43a、43b…中間コンパイラ 44、62…中間言語プログラム 45、45a〜45c…機械語コンパイラ 46、46a〜46c、63…機械語プログラム 47…逆コンパイラ 50…バイナリ形式中間言語 53…プログラムメモリ 55…シーケンス演算装置 56…シーケンスプログラムメモリ 57…データメモリ 61…処理分散部 611…ソース・プログラム

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 制御手段で実行させる制御プログラムの
    作成を支援するプログラミング装置において、 複数種類の制御プログラミング言語の混在表記を可能と
    したことを特徴とするプログラミング装置。
  2. 【請求項2】 請求項1記載のプログラミング装置にお
    いて、 混在表記された制御プログラムをコンパイルするコンパ
    イラを具備したことを特徴とするプログラミング装置。
  3. 【請求項3】 請求項2記載のプログラミング装置にお
    いて、 前記コンパイラは、混在表記された制御プログラムを有
    向グラフとして扱い、有向グラフにおける各ノードに対
    して右下から左に向かい上段にあがって再び右から左に
    向かう順序でノード番号を付し、このノード番号の付さ
    れた有向グラフに対する深さ優先探索アルゴリズムによ
    りノードの実行順序を決定することを特徴とするプログ
    ラミング装置。
  4. 【請求項4】 請求項2又は請求項3記載のプログラミ
    ング装置において、 前記コンパイラは、混在表記された制御プログラムの内
    容とモニタデータとを関係付けて保存するとし、 前記コンパイラによるコンパイル時の関係付けに基づい
    て、モニタデータを混在表記された制御プログラム上に
    配置するモニタデータ重ね表示手段を付加したことを特
    徴とするプログラミング装置。
  5. 【請求項5】 制御手段で実行させる制御プログラムの
    作成を支援するプログラミング装置において、 制御プログラミング言語によって記述された制御プログ
    ラムを、機械語による記述及び制御プログラミング言語
    による記述のいずれにも変換可能な中間言語によって記
    述された中間言語プログラムに変換する中間変換手段を
    具備したことを特徴とするプログラミング装置。
  6. 【請求項6】 請求項5記載のプログラミング装置にお
    いて、 前記中間言語プログラムがそのまま前記制御手段で実行
    可能なことを特徴とするプログラミング装置。
  7. 【請求項7】 請求項5記載のプログラミング装置にお
    いて、 前記中間言語プログラムを機械語によって記述された機
    械語プログラムに変換する機械語変換手段を付加したこ
    とを特徴とするプログラミング装置。
  8. 【請求項8】 請求項7記載のプログラミング装置にお
    いて、 前記機械語変換手段は、前記中間言語プログラムを、複
    数の制御手段毎の機械語プログラムに変換することを特
    徴とするプログラミング装置。
  9. 【請求項9】 請求項5乃至請求項8のいずれか1項に
    記載したプログラミング装置において、 前記中間言語プログラムを制御プログラミング言語によ
    って記述された制御プログラムに変換する逆変換手段を
    付加したことを特徴とするプログラミング装置。
  10. 【請求項10】 請求項9記載のプログラミング装置に
    おいて、 前記逆変換手段によって変換された内容を表示する表示
    手段を付加したことを特徴とするプログラミング装置。
  11. 【請求項11】 請求項5乃至請求項10のいずれか1
    項に記載したプログラミング装置において、 前記中間言語は、変換前の制御プログラミング言語が異
    なっていても共通の形式で中間プログラムを記述するこ
    とを特徴とするプログラミング装置。
  12. 【請求項12】 請求項5乃至請求項11のいずれか1
    項に記載したプログラミング装置において、 前記中間言語プログラムを、複数の制御プログラミング
    言語のいずれかで記述された制御プログラムに任意変換
    可能な任意逆変換手段を付加したことを特徴とするプロ
    グラミング装置。
  13. 【請求項13】 請求項12記載のプログラミング装置
    において、 前記任意逆変換手段によって変換された内容を表示する
    表示手段を付加したことを特徴とするプログラミング装
    置。
  14. 【請求項14】 請求項5乃至請求項13のいずれか1
    項に記載したプログラミング装置において、 前記中間言語は、固定長の機械語コードにより成るプロ
    グラムで記述されることを特徴とするプログラミング装
    置。
  15. 【請求項15】 請求項5乃至請求項14のいずれか1
    項に記載したプログラミング装置において、 自己と前記制御手段との間での負荷レベルの調査結果に
    基づいて、負荷を分散する分散手段を付加したことを特
    徴とするプログラミング装置。
  16. 【請求項16】 請求項5乃至請求項15のいずれか1
    項に記載したプログラミング装置において、 前記中間変換手段は、制御プログラミング言語によって
    記述された制御プログラムの含む処理に関与しない部分
    を、処理に関与しない部分である旨を示すコードに変換
    することを特徴とするプログラミング装置。
  17. 【請求項17】 制御プログラミング言語によって記述
    された制御プログラムを受信する通信手段と、 前記通信手段によって受信した制御プログラムを、機械
    語による記述及び制御プログラミング言語による記述の
    いずれにも変換可能な中間言語によって記述された中間
    言語プログラムに変換する中間変換手段とを具備したこ
    とを特徴とするプログラマブルコントローラ。
  18. 【請求項18】 請求項17記載のプログラマブルコン
    トローラにおいて、 前記中間言語プログラムをそのまま実行可能なことを特
    徴とするプログラマブルコントローラ。
  19. 【請求項19】 請求項17記載のプログラマブルコン
    トローラにおいて、 前記中間言語プログラムを機械語によって記述された機
    械語プログラムに変換する機械語変換手段を付加したこ
    とを特徴とするプログラマブルコントローラ。
  20. 【請求項20】 請求項17乃至請求項19のいずれか
    1項に記載したプログラマブルコントローラにおいて、 前記中間言語プログラムを制御プログラミング言語によ
    って記述された制御プログラムに変換する逆変換手段を
    付加したことを特徴とするプログラマブルコントロー
    ラ。
  21. 【請求項21】 請求項17乃至請求項19のいずれか
    1項に記載したプログラマブルコントローラにおいて、 前記中間言語プログラムを、複数の制御プログラミング
    言語のいずれかで記述された制御プログラムに任意変換
    可能な任意逆変換手段を付加したことを特徴とするプロ
    グラマブルコントローラ。
  22. 【請求項22】 コンピュータに、 複数種類の制御プログラミング言語を混在表記させる機
    能を実現させるためのプログラムを記録したコンピュー
    タ読み取り可能な記録媒体。
  23. 【請求項23】 コンピュータに、 複数種類の制御プログラミング言語で混在表記された制
    御プログラムをコンパイルさせるコンパイラを記録した
    コンピュータ読み取り可能な記録媒体。
  24. 【請求項24】 コンピュータに、 複数種類の制御プログラミング言語を混在表記させる混
    在表記機能と、 複数種類の制御プログラミング言語で混在表記された制
    御プログラムをコンパイルさせ、また混在表記された制
    御プログラムの内容とモニタデータとを関係付けて保存
    させるコンパイラと、 前記コンパイラによるコンパイル時の関係付けに基づい
    て、前記混在表記機能によって混在表記されている制御
    プログラム上にモニタデータを配置させるモニタデータ
    重ね表示機能とを実現させるためのプログラムを記録し
    たコンピュータ読み取り可能な記録媒体。
  25. 【請求項25】 コンピュータに、 制御プログラミング言語によって記述された制御プログ
    ラムを、機械語による記述及び制御プログラミング言語
    による記述のいずれにも変換可能な中間言語によって記
    述された中間言語プログラムに変換させる中間変換機能
    を実現させるためのプログラムを記録したコンピュータ
    読み取り可能な記録媒体。
  26. 【請求項26】 請求項25記載のプログラムを記録し
    たコンピュータ読み取り可能な記録媒体であって、 前記中間言語プログラムを機械語によって記述された機
    械語プログラムに変換させる機械語変換機能を付加した
    プログラムを記録したコンピュータ読み取り可能な記録
    媒体。
  27. 【請求項27】 請求項25又は請求項26記載のプロ
    グラムを記録したコンピュータ読み取り可能な記録媒体
    であって、 前記中間言語プログラムを制御プログラミング言語によ
    って記述された制御プログラムに変換させる逆変換機能
    を付加したプログラムを記録したコンピュータ読み取り
    可能な記録媒体。
JP19645699A 1999-07-09 1999-07-09 プログラミング装置 Expired - Fee Related JP3819639B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19645699A JP3819639B2 (ja) 1999-07-09 1999-07-09 プログラミング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19645699A JP3819639B2 (ja) 1999-07-09 1999-07-09 プログラミング装置

Publications (2)

Publication Number Publication Date
JP2001022412A true JP2001022412A (ja) 2001-01-26
JP3819639B2 JP3819639B2 (ja) 2006-09-13

Family

ID=16358121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19645699A Expired - Fee Related JP3819639B2 (ja) 1999-07-09 1999-07-09 プログラミング装置

Country Status (1)

Country Link
JP (1) JP3819639B2 (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002351504A (ja) * 2001-05-30 2002-12-06 Yokogawa Electric Corp 制御データ保護装置
JP2005135383A (ja) * 2003-09-05 2005-05-26 Fisher Rosemount Syst Inc ユーザによる修正可能な出力コンフィギュレーションデータベースを備えた状態マシン機能ブロック
JP2007128378A (ja) * 2005-11-07 2007-05-24 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラのプログラミング装置
JP2007280377A (ja) * 2006-03-15 2007-10-25 Omron Corp Plcシステム
JP2007299132A (ja) * 2006-04-28 2007-11-15 Yokogawa Electric Corp プラント運転支援装置
JP2008059594A (ja) * 2006-09-01 2008-03-13 Fisher Rosemount Syst Inc グラフィック・プログラミング言語オブジェクトを編集及び報告する方法及び編集・報告システム
JP2009151791A (ja) * 2007-12-22 2009-07-09 Robert Bosch Gmbh メモリにプログラム可能な制御のプログラミング方法および/または診断方法
JP2010003073A (ja) * 2008-06-19 2010-01-07 Hitachi Ltd エンジニアリングツール
US8600524B2 (en) 2003-09-05 2013-12-03 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable state transition configuration database
CN104977892A (zh) * 2014-04-10 2015-10-14 株式会社捷太格特 可编程逻辑控制器用程序的创建支持装置
JP2016539444A (ja) * 2013-11-05 2016-12-15 シュネーデル、エレクトリック、インダストリーズ、エスアーエスSchneider Electric Industries Sas 自動化システムを構成するための処理装置および方法
KR20180004825A (ko) 2015-06-01 2018-01-12 미쓰비시덴키 가부시키가이샤 디버그 장치, 디버그 방법 및 디버그 프로그램
JP2018206362A (ja) * 2017-06-02 2018-12-27 オムロン株式会社 工程解析装置、工程解析方法、及び工程解析プログラム
KR101974069B1 (ko) * 2018-04-30 2019-04-30 한국과학기술원 바이너리 구조 도식화 장치 및 방법
CN111026382A (zh) * 2019-12-13 2020-04-17 深圳市杰美康机电有限公司 混合编程方法、终端设备及计算机可读存储介质
CN115335782A (zh) * 2020-03-26 2022-11-11 三菱电机株式会社 编程辅助程序、编程辅助装置及编程辅助方法
JP7208441B1 (ja) * 2021-12-22 2023-01-18 三菱電機株式会社 Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム
US11768482B2 (en) 2020-07-30 2023-09-26 Canon Kabushiki Kaisha Information processing apparatus, ladder-program generation apparatus, information processing method, ladder-program generation method, method of manufacturing product, and recording medium

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002351504A (ja) * 2001-05-30 2002-12-06 Yokogawa Electric Corp 制御データ保護装置
US8600524B2 (en) 2003-09-05 2013-12-03 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable state transition configuration database
JP2005135383A (ja) * 2003-09-05 2005-05-26 Fisher Rosemount Syst Inc ユーザによる修正可能な出力コンフィギュレーションデータベースを備えた状態マシン機能ブロック
JP2007128378A (ja) * 2005-11-07 2007-05-24 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラのプログラミング装置
JP4737441B2 (ja) * 2006-03-15 2011-08-03 オムロン株式会社 Plcシステム
JP2007280377A (ja) * 2006-03-15 2007-10-25 Omron Corp Plcシステム
JP4730606B2 (ja) * 2006-04-28 2011-07-20 横河電機株式会社 プラント運転支援装置
JP2007299132A (ja) * 2006-04-28 2007-11-15 Yokogawa Electric Corp プラント運転支援装置
JP2008059594A (ja) * 2006-09-01 2008-03-13 Fisher Rosemount Syst Inc グラフィック・プログラミング言語オブジェクトを編集及び報告する方法及び編集・報告システム
JP2017142839A (ja) * 2006-09-01 2017-08-17 フィッシャー−ローズマウント システムズ,インコーポレイテッド グラフィック・プログラミング言語オブジェクトを編集及び報告する方法及び編集・報告システム
JP2014041624A (ja) * 2006-09-01 2014-03-06 Fisher Rosemount Systems Inc グラフィック・プログラミング言語オブジェクトを編集及び報告する方法及び編集・報告システム
JP2009151791A (ja) * 2007-12-22 2009-07-09 Robert Bosch Gmbh メモリにプログラム可能な制御のプログラミング方法および/または診断方法
JP2010003073A (ja) * 2008-06-19 2010-01-07 Hitachi Ltd エンジニアリングツール
US10228674B2 (en) 2013-11-05 2019-03-12 Schneider Electric Industries Sas Processing device and method for configuring an automation system
JP2016539444A (ja) * 2013-11-05 2016-12-15 シュネーデル、エレクトリック、インダストリーズ、エスアーエスSchneider Electric Industries Sas 自動化システムを構成するための処理装置および方法
JP2015201132A (ja) * 2014-04-10 2015-11-12 株式会社ジェイテクト プログラマブルロジックコントローラ用プログラムの作成支援装置及びプログラマブルロジックコントローラ用プログラムの作成支援方法
CN104977892A (zh) * 2014-04-10 2015-10-14 株式会社捷太格特 可编程逻辑控制器用程序的创建支持装置
CN104977892B (zh) * 2014-04-10 2019-03-26 株式会社捷太格特 可编程逻辑控制器用程序的创建支持装置和创建支持方法
KR20180004825A (ko) 2015-06-01 2018-01-12 미쓰비시덴키 가부시키가이샤 디버그 장치, 디버그 방법 및 디버그 프로그램
JP2018206362A (ja) * 2017-06-02 2018-12-27 オムロン株式会社 工程解析装置、工程解析方法、及び工程解析プログラム
KR101974069B1 (ko) * 2018-04-30 2019-04-30 한국과학기술원 바이너리 구조 도식화 장치 및 방법
CN111026382A (zh) * 2019-12-13 2020-04-17 深圳市杰美康机电有限公司 混合编程方法、终端设备及计算机可读存储介质
CN111026382B (zh) * 2019-12-13 2024-01-16 深圳市杰美康机电有限公司 混合编程方法、终端设备及计算机可读存储介质
CN115335782A (zh) * 2020-03-26 2022-11-11 三菱电机株式会社 编程辅助程序、编程辅助装置及编程辅助方法
US11768482B2 (en) 2020-07-30 2023-09-26 Canon Kabushiki Kaisha Information processing apparatus, ladder-program generation apparatus, information processing method, ladder-program generation method, method of manufacturing product, and recording medium
JP7208441B1 (ja) * 2021-12-22 2023-01-18 三菱電機株式会社 Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム

Also Published As

Publication number Publication date
JP3819639B2 (ja) 2006-09-13

Similar Documents

Publication Publication Date Title
JP2001022412A (ja) プログラミング装置及びプログラマブルコントローラ並びにプログラムを記録したコンピュータ読み取り可能な記録媒体
US9235381B2 (en) Method and device for the programming and configuration of a programmable logic controller
Perchat et al. Component based framework to create mobile cross-platform applications
US20200019147A1 (en) Abstraction layers for automation applications
JPH0561683A (ja) オブジエクトに基づく情報処理システム及びソフトウエア保守システム
AU2002365594A1 (en) Method and apparatus for creating software objects
KR20000069716A (ko) 계층 상태 차트를 구현하는 장치 및 그것의 사용 방법 및 장치
García-Sánchez et al. Service oriented evolutionary algorithms
CN110673844A (zh) 一种图像处理软件开发方法及系统
US20010037362A1 (en) Automation system for solving a technical-process task and corresponding method
CN115840421A (zh) 开发工业控制编程的系统、对工业系统编程的方法和介质
Freire et al. Opla-tool v2. 0: a tool for product line architecture design optimization
Jamro et al. An approach to SysML modeling of IEC 61131-3 control software
CN106933568B (zh) 一种组态软件系统及一种工业控制方法
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
GB2373349A (en) Data definition language
Rzońca et al. Developing a multiplatform control environment
CN115658140A (zh) 一种sdk的打包方法、装置、终端以及存储介质
JP2007122187A (ja) プログラム・コード生成装置
Stec SFC graphic editor for CPDev environment
Muhlhauser Software engineering for distributed applications: The design project
Barker et al. The making of eXCes-a software engineering perspective
Neelamkavil et al. Separating graphics from application in the design of user interfaces
CN116126366B (zh) 芯片输入输出接口配置方法,装置,介质及电子设备
KR100423742B1 (ko) 순차기능챠트에 의한 전용 제어 시스템

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051205

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060307

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060426

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060517

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: 20060613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060615

R151 Written notification of patent or utility model registration

Ref document number: 3819639

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090623

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100623

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100623

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110623

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120623

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120623

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130623

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees