JPH0680482B2 - ソース・コードを有するプログラマブル・コントローラ装置及びコントロールプログラムを発生する方法 - Google Patents

ソース・コードを有するプログラマブル・コントローラ装置及びコントロールプログラムを発生する方法

Info

Publication number
JPH0680482B2
JPH0680482B2 JP1046370A JP4637089A JPH0680482B2 JP H0680482 B2 JPH0680482 B2 JP H0680482B2 JP 1046370 A JP1046370 A JP 1046370A JP 4637089 A JP4637089 A JP 4637089A JP H0680482 B2 JPH0680482 B2 JP H0680482B2
Authority
JP
Japan
Prior art keywords
program
source code
instructions
rung
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.)
Expired - Lifetime
Application number
JP1046370A
Other languages
English (en)
Other versions
JPH0210403A (ja
Inventor
エイ.フラッド マーク
ディー.カラン マイクル
エム.リスチャー チャールズ
アール.セプシ ロバート
エフ.トマ ジャツク
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.)
Allen Bradley Co LLC
Original Assignee
Allen Bradley Co LLC
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22581365&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH0680482(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Publication of JPH0210403A publication Critical patent/JPH0210403A/ja
Publication of JPH0680482B2 publication Critical patent/JPH0680482B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13118Decompiler, translate machine code to hll, reverse processing, easy modification
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13144GUI graphical user interface, icon, function bloc editor, OI operator interface
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15059Floating point coprocessor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15127Bit and word, byte oriented instructions, boolean and arithmetic operations

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 本発明は、米国特許第3,810,118号、第3,942,158号、第
4,165,534号及び第4,442,504号に説明されているような
プログラマブル・コントローラ及びコントロール・プロ
グラム発生方法に関し、特にプログラマブル・コントロ
ーラを動作させるプログラムを記憶し、かつ編集するプ
ログラマブル・コントローラ及びコントロール・プログ
ラム発生方法に関する。
[発明の背景] プログラマブル・コントローラは、典型的なものとし
て、アツセンブリ・ライン及び工作機械のような生産装
置に接続されて記憶しているプログラムに従つて逐次的
に装置を動作させるものである。例えば、前述の特許に
開示されたようなプログラマブル・コントローラでは、
コントロール・プログラムがメモリに記憶されると共
に、高速度で連続的に読み出されて、解釈されることに
より被制御設備から選択した検知装置の条件を調べ、又
は調べた1以上の検知装置のステータスに基づいて可能
な被制御設備から選択した運転装置を活性化又は減勢さ
せている。
これらのプログラマブル・コントローラのプログラム実
行処理は、中型から大型のプログラマブル・コントロー
ラにおいて1ビツトの入出力データの処理命令ばかりで
なく、演算命令、フアイル処理命令、タイマ、カウン
タ、シーケンサ及び他の更に複雑な命令も含むプログラ
マブル・コントローラ型式に命令を高速度で解釈するよ
うに設計されている。このような命令は産業においてよ
く標準化されており、コントロール技術者にとり理解が
容易なラダー図の要素と直接関連付けることができる。
従つて、米国特許第3,798,612号及び第3,813,649号に開
示されたようなパネルを編集するのに都合よく、また第
4,070,702号にはこのようなプログラマブル・コントロ
ーラ命令からなるラダー図型式のコントロール命令を展
開して編集する際にユーザを支援するように開発されて
いた。
特に、ラダー図のコントロール・プログラムは比較的に
小規模から中規模のコントロール・タスクを生成して編
集するのが容易であるが、大きなコントロール・タスク
用として用いると面倒であり、非能率的である。大きな
ラダー図のコントロール・プログラムは理解すること
も、トラブル・シユートも容易でなく、実行に長い時間
が掛かる。
1985年3月28日に出願された米国特許出願第06/717,221
号はこの問題を指摘している。そこで説明されているコ
ントローラは、記憶した構造チヤート・プログラムによ
つてそれぞれ理論的に関連されている複数の個別的なラ
ダー・コントロール・プログラムを記憶するプログラム
実行プロセツサを備えている。また、このプログラム実
行プロセツサは記憶した構造チヤート・プログラムを解
釈するように動作可能であり、この構造チヤート・プロ
グラムが任意の時点で記憶した複数のラダー・プログラ
ムのうちのどれを反復して解釈すべきかを指示する。通
常、大きなコントラール・タスクは被制御設備即ちプロ
セスがその状態により進む際に、逐次的に実行する複数
の個別的な制御ステツプに分解可能なものであることが
分かつた。各制御ステツプは理解が容易、かつ非常に高
い走査速度で実行可能とすると共に、個別的に解釈可能
なラダー・プログラムにより定められる。個別的な制御
ステツプを解釈するシーケンスは、被制御機械又はプロ
セスの運転方法を全般的に表現する構造チヤート・プロ
グラムにより定められる。従つて、ユーザは、構造チヤ
ート規約を用いて機械又はプロセスが動作すべき全般的
な方法を定めると共に、個別的に管理が容易なラダー・
プログラムにおける被制御設備即ちプロセスの詳細な動
作を定めることができる。
従来、ラダー・プログラムはコントローラにおけるイン
タプリータが処理する比較的に高レベル言語により記述
されていた。プログラム実行プロセツサにおけるインタ
プリータ・プログラムは各ラダー・ラング(rung)又は
一つのラングの副部分を分析し、ラダーの当該部分によ
り定められた機能を対応する機械言語ルーチンを実行す
る。ラダー・プログラムを高レベル言語として記憶して
いたので、再呼出してプログラマブル・コントローラに
接続されている端末装置上で編集することができる。し
かし、インタプリータは比較的に遅い。プログラマブル
・コントローラが更に複雑になり、多くのタスクを処理
し、また装置の更に大きな部分を動作させるに従つて、
装置を制御し、かつタイミングの良い形式でタスクを処
理するインタプリータの能力は、重要な問題となる。
プログラムの実行速度を高める周知の一方法は、高レベ
ル言語をプロセツサが直接実行することができる機械語
命令にコンパイルすることである。コンパイラーを、ラ
ダー図ソース・コードの形式で書き込み、プログラマブ
ル・コントローラにおいてコントロール・プログラムの
機械語のオブジエクト・コード・バージヨンを生成して
実行することもできる。コンパイルしたプログラムの欠
点は、被制御プロセスに変更を加えたときにオブジエク
ト・コードを容易に編集できないことである。装置のオ
ペレータは熟練したコンピユータ・プログラマーではな
いので、プログラマブル・コントローラにとつて、この
欠点の方がより重大である。従つて、ラダー・コントロ
ール・プログラムのソース・コード・バージヨンを編集
するのが良い。しかし、プログラマブル・コントローラ
にソース・コードのコピーを保持するためには、かなり
メモリを付加する必要がある。ソース・コードをフロツ
ピー・デイスク又は磁気テープに記録することは可能だ
が、このような媒体は、汚染や磁界により損傷を受ける
かも知れない製造環境において記憶したり、使用するの
には必ずしも実際的なものではない。
これに代る方法は、記憶しているオブジエクト・コード
をデコンパイルして高レベル言語のチヤート・プログラ
ム・バージヨンを生成することである。ラダー・コント
ロール・プログラムのいくつかのラングをデコンパイル
することは可能であるが、コンパイルされたあらゆるス
テツプを逆処理してもとのラダー図の部分を再生するこ
とはできない。算術計算のような複雑なラングの区間は
多数の機械語命令にコンパイルされる。これが不可能の
ときは、一連の機械語命令を調べてラングのもとの部分
を再生することがしばしば困難となる。
オブジエクト・コードを正しくデコンパイルできたとし
ても、プログラマブル・コントローラが特定のプログラ
ムを実行しなかつたときは、予め編集を実行する必要が
あつた。米国特許第3,813,649号に示すような従来の編
集技術によると、編集は、プログラマブル・コントロー
ラにより実行していた装置を停止したとき、又はラダー
コントロール・プログラムのうちの他方を解釈したとき
は、編集を実行する必要があつた。これは、プログラム
を編集するときに厳しい条件を課するだけではなく、装
置の動作に逆効果であつた。
[発明の概要] 本発明によるプログラマブル・コントローラは、コンパ
イラを用いて高レベル言語により書き込まれたソース・
コードのコントロール・プログラムから機械語命令のオ
ブジエクト・コード命令を発生する。プログラマブル・
コントローラには、オブジエクト・コード・プログラム
と、対応するオブジエクト・コードから容易に再構築す
ることはできないソース・コードのこれらの部分とを保
持するメモリ装置が備えられている。オブジエクト・コ
ードと、記憶したソース・コードの複数部分とからもと
のオブジエクト・コードを再生する手段が備えられてい
る。メモリを節約するために、記憶したソース・コード
をトークンにより表わしてもよい。
プログラマブル・コントローラはオブジエクト・コード
の命令を実行するために特定目的のコ・プロセツサを備
えてもよい。典型的なものとして、サブセツトにおける
コ・プロセツサ命令は、ソース・コードにおける命令と
1対1で対応している。従つて、ソース・コードをこの
サブセツトにおけるオブジエクト・コード命令から再生
することができる。残りのオブジエクト・コード命令は
汎用のマイクロプロセツサにより処理され、高レベルの
ソース・コード命令と1対1で対応する必要はない。従
つて、これら後者の命令を用いて容易にソース・コード
命令を再生することはできない。マイクロプロセツサの
命令用のソース・コードの複数部分はオブジエクト・コ
ードと共に記憶される。
本発明の目的は、コントロール・プログラムの全ソース
・コード・バージヨンの記憶を必要とせずに、プログラ
マブル・コントローラのコンパイル済みコントロール・
プログラムを編集する手段を提供することにある。
本発明の他の目的はコンパイルされたオブジエクト・コ
ードからソース・コードのコントロール・プログラムを
再生する機構を提供することである。
更に、本発明の目的はオブジエクト・コードをプログラ
マブル・コントローラが実行する速度に影響を与えない
方法により、オブジエクト・コードのうちで対応する部
分と共に、ソース・コードの複数部分のみを記憶するこ
とにある。この目的はメモリ空間を変換するようにこれ
らのソース・コードの部分のトークン化されたものを記
憶することにより強化される。
[実施例の詳細な説明] 本発明によるプログラム・メモリ及び編集技術の動作を
説明するために、実施可能なプログラマブル・コントロ
ーラ・システムのハードウエアを総合的に理解する必要
がある。このようなシステムの詳細な説明のために、
「並列プロセツサを有するプログラマブル・コントロー
ラ」と題して1987年8月26日に出願された米国特許出願
第089,587号(U.S4,858,101)を参照すべきである。本
発明は特定の型式のプログラマブル・コントローラ上で
用いるものとして説明されているが、本発明を他の型式
のプログラマブル・コントローラ及び一般的なコンピユ
ータに適用可能である。
システム・ハードウエア 先ず第1図及び第2図を参照すると、本発明に関連する
プログラマブル・コントローラ10がラツク12に収容され
ている。ラツク12は電源モジユール15、システム・コン
トローラ・モジユール16、多数のプログラム実行モジユ
ール18及び複数のリモート入出力(I/O)走査モジユー
ル20を格納する一連のスロツトを備えている。これらの
機能モジユールはラツク12の背面に沿つて伸延している
バツクプレーン11に接続されている。バツクプレーン11
は、このモジユール・コネクタはバツクプレーン11上の
導体パターンにより相互接続された複数のモジユール・
コネクタを有し、電源モジユール15、システム・コント
ローラ・モジユール16、多数のプログラム実行モジユー
ル18及び複数のリモート入出力(I/O)走査モジユール2
0を接続する一連の信号バスをなす。ラツク12は電源モ
ジユール15、システム・コントローラ・モジユール16、
多数のプログラム実行モジユール18及び複数のリモート
入出力(I/O)走査モジユール20を備えているが、1プ
ログラム実行モジユール及び1走査モジユールのみが必
要である。ラツク12の残りのスロツト位置は空であり、
付加的な機能モジユールをこれらのスロツトに挿入する
までは、これらのスロツトをめくら板により塞いであ
る。
システム・コントローラ・モジュール16は端末装置24と
して設計されたパーソナル・コンピユータと、ローカル
・エリア・ネツトワーク28に接続されている外部装置と
の通信を管理している。ローカル・エリア・ネツトワー
ク28を介してホスト・コンピユータ又は同等のプログラ
マブル・コントローラ、並びに他の端末装置とデータの
交換が可能である。これは、例えばホスト・コンピユー
タにその動作に関連したプログマブル・コントローラ10
の状態情報を収集させるものである。更に、動作データ
がシステム・コントローラ・モジユール16により端末装
置24上に表示されるので、オペレータはシステム・パフ
オーマンスを監視して、被制御設備上で故障したセンサ
又は運転装置を検出することができる。本発明に関連す
るシステム・コントローラ・モジユール16が実行する重
要なタスクは、リモート端末装置を介してプログラマブ
ル・コントローラ10のプログラムの監視をしている。こ
の動作には被制御設備の動作を指示するプログラムの生
成、及び編集が含まれている。これらのプログラムは、
通常のプロセス・コントロール機能チヤート、及びこの
機能チヤートの各ステツプにおける動作を規定するラダ
ー型コントロール・プログラムの強化バージヨンであつ
てもよい。例えば端末装置24のようなプログラマブル・
コントローラ10に直接又はローカル・エリア・ネツトワ
ーク28を介して接続される端末装置上に、種々のプログ
ラムが展開される。次いで、プログラムがコンパイルさ
れ、プログラマブル・コントローラ10にダウンロードさ
れる。プログラマブル・コントローラ10では、システム
・コントローラ・モジユール16がプログラムに従つて将
来実行するプログラム実行モジユール18にプログラムを
記憶する。同様に、プログラムがローカル・エリア・ネ
ツトワーク28を介してホスト・コンピユータからダウン
ロードされてもよい。
更に、システム・コントローラ・モジユール16は命令に
従つてプログラム実行モジユール18に以前に記憶したプ
ログラムを実行する。編集には、典型的なものとして、
コントロール・プログラムの部分的な付加、削除、及び
変更が含まれる。コントロール・プログラムの複数部分
は変更を行なう端末装置24にアツプロードされる。次
に、変更された部分はコンパイルされ、システム・コン
トローラ・モジユール16にダウンロードされる。この変
更はシステム・コントローラ・モジユール16を介して対
応するプログラム実行モジユール18に対して行なわれ
る。システム・コントローラ・モジユール16では、ソフ
トウエア・ルーチンが記憶したコントロール・プログラ
ムにおける変更した複数部分に入る。この編集処理につ
いては、以下で詳細に説明する。
更に、外部端末装置及びローカル・エリア・ネツトワー
ク28に対するプログラマブル・コントローラ10の通信イ
ンタフエースをするために、システム・コントローラ・
モジユール16も、例えばシステム・ステータスの表示、
及びバツクプレーン11を介して中間モジユールとの通信
をするためのシステム・ハウスキーピング機能を実行す
る。
先に説明したように、コントロール・プログラムはプロ
グラム実行モジユール18のうちの異なる一つにより記憶
され、かつ実行される。これらのモジユールはそれぞれ
コントロール・プログラムのうちの特定の一つを同時に
実行することができる。この実行中に、プログラム実行
モジユール18はI/O走査モジユール20のメモリ30にある
入力イメージ・テーブルから検知装置のステータスを読
み出し、I/O走査モジユール20における出力イメージ・
テーブルへそのメモリからの出力ステータス・データを
書き込む。
コントロール・プログラムを実行するプログラム実行モ
ジユール18のうちの一つを第3図に概要的に示す。各プ
ログラム実行モジユール18はバツクプレーン11に接続さ
れているコントロール・バス41、データ・バス42及びア
ドレス・バス43を有する。特に、プログラム実行モジユ
ール18は32ビツトのデータ・バス42、一組のコントロー
ル・バス41及び1本のアドレス・バス43を有する。これ
らは、それぞれ一組のトライ・ステートの双方向伝送ゲ
ート44及び46によりデータ・バス22及びアドレス・バス
23に接続されている。これらの組の双方向伝送ゲート44
及び46の動作はデータ・、バス21及びコントロール・バ
ス41に接続されている内部コントロール回路45により管
理されている。内部コントロール回路45はコントロール
・バス41上の信号に応答して、プログラム実行モジユー
ル18がバツクプレーン11に対するアクセスをシークして
いることを表わす。次いで、バツクプレーン・アクセス
要求は内部コントロール回路45によりコントロール・バ
ス21を介してシステム・コントローラ・モジユール16に
送出される。システム・コントローラ・モジユール16が
コントロール・バス21のうちの一つから前記アクセスを
許可する信号を受け取ると、内部コントロール回路45は
複数組の双方向伝送ゲート44及び46を介してアドレス・
バス42及び43をバツクプレーン11に接続する。システム
・コントローラ・モジユール16のような他のモジユール
がプログラム実行モジユール18にデータを送出すると、
内部コントロール回路45はコントロール・バス21から信
号を受け取つて、データ・バス42及びアドレス・バス43
をデータ・バス22及びプログラム実行モジユール18の残
りの部分はアドレス・バス23に接続するように指令を出
す。
コントロール・バス41〜アドレス・バス43にのみ接続さ
れる。内部バス・システムはマイクロプロセツサ43の周
辺に構築されており、マイクロプロセツサ48は32ビツト
のモトローラ68020マイクロプロセツサを有するもので
もよい。従来、ビツト・コ・プロセツサは、「機能チヤ
ート・インタプリータを有するプログラマブル・コント
ローラ」と題して1985年3月28日に出願された係属中の
米国特許出願第717,221号に説明されているように、プ
ログラマブル・コントローラに用いられ、ハードウエア
結線により、異なるサブ・セツトのラダー・プログラム
命令を実行していた。
3つのプロセツサ装置、即ちマイクロプロセツサ48、浮
動小数点コ・プログラム50及びビツト・コ・プロセツサ
52は直列に動作してコントロール・プログラムに含まれ
ている特殊な命令を実行する。マイクロプロセツサ48は
ラダー・コントロール・プログラムの実行を開始するこ
とができる。マイクロプロセツサ48が浮動小数点の演算
関数を検出したときは、浮動小数点コ・プロセツサ50が
エネーブルされ、オペランドがマイクロプロセツサ48か
ら浮動小数点コ・プロセツサ50に転送される。マイクロ
プロセツサ48がプログラムの実行を再開する時点で演算
処理が終了するまで、浮動小数点コ・プロセツサ50は処
理機能を引き継ぐ。ラダー・コントロール・プログラム
のラングがビツト処理を要求することは(即ちビツト・
コ・プロセツサ52のサブ・セツトに1命令が含まれると
きは)、マイクロプロセツサ48はそのビツト・コ・プロ
セツサ52のプログラム・カウンタにラダー・プログラム
命令のアドレスを書き込むことにより、ビツト・コ・プ
ロセツサ52に制御を直ちに引き渡す。次いで、ビツト・
コ・プロセツサ52には処理動作の制御を開始し、そのプ
ログラムのビツト処理部分の終りで停止命令を検出する
まで、次のラダー・プログラム命令を実行する。この時
点で、ビツト・コ・プロセツサ52はコントロール・バス
41を介してマイクロプロセッサ48にコントロール・プロ
グラムの実行を再開するように信号を送出する。典型的
なラダー・コントロール・プログラムの約80〜90%はビ
ツト・コ・プロセツサ52により実行可能とされるもので
ある。
更に、プログラム実行モジユール18はデータ長肯定応答
(DACK)回路57を有している。このDACK回路57はデータ
・バス42上のデータの幅が32ビツトからなる長いワード
か、通常の16ビツト・ワードか、又は1×8ビツト・バ
イトかについて、コントロール・バス41のうちの2本に
表示する。このデータの大きさ情報はデータ処理におい
て種々のモジユール部分により用いられる。プログラム
実行モジユール18の他の部分はコントロール及びステー
タス回路58である。コントロール及びステータス回路58
はプログラム実行モジユール18のステータスを監視し、
コントロール・バス41上に適当なコントロール信号を送
出して通常の方法により種々の部分をエネーブルさせ
る。例えば、このコントロール及びステータス回路58は
読み出し及び書き込み動作においてRAM56にコントロー
ル信号を供給する。
読み出し専用メモリ(ROM)54及びランダム・アクセス
・メモリ(RAM)56は共にプログラム実行モジユール18
の3つの内部バス即ちコントロール・バス41〜アドレス
・バス43に接続されている。ROM54はマイクロプロセツ
サ48、浮動小数点コ・プロセツサ50及びビツト・コ・プ
ロセツサ52用のラン時間ライブラリ・ルーチンと定数と
を格納している。プログラム実行モジユール18が実行す
るユーザ定義のプログラムはRAM56に記憶される。RAM56
はオペランド及びプログラム実行モジユール18が実行し
た種々の計算結果も記憶する。
第4図は一般化した各プログラム実行モジユール18のRA
M56のデータ構造を表わす。RAM56はRAM56の他の部分に
対するポインタを含むデイレクトリ部60を格納してい
る。プログラム実行モジユール18は種々のカウンタ、タ
イマ及び中間計算値の記憶位置を有するそれ自身のデー
タ・テーブル61を備えている。
プログラム実行モジユール18のRAM56のかなりの部分が
プログラム・メモリに割り付けられている。これらのプ
ログラムにはプログラム実行モジユール18が処理すべき
コンパイル済みのコントロール・プログラム、独立した
バツクグラウンド・タスタ及び種々のインタラプト・レ
ーチンが含まれている。異なるプログラムのデイレクト
リ62が設けられている。コントロール・タスクを正しく
実行するために、領域63内には、コントロール・プログ
ラムの実行順序を指定する機能チヤート記述子を含むサ
ポート・フアイルが備えられている。プログラム実行モ
ジユール18のRAM56の部分は独立したバツクグラウンド
・プログラム64、インタラプト・ルーチン65及びユーザ
・コントロール・プログラム66を記憶するために設計さ
れている。ユーザ・コントロール・プログラム66の部分
に続いて空き空間67である。
以上説明したプログラム実行モジユール18は、I/O走査
モジユール20によりリモートI/Oラツク26とデータの交
換をする。第1図及び第2図に示すように、I/O走査モ
ジユール20はプログラマブル・コントローラ10を直列デ
ータ・リンク13を介してリモートI/Oラツク26に接続す
る(1リモートI/Oラツク26のみを示す)。リモートI/O
ラツク26は、センサ31に接続され、かつ被制御設備上の
装置を動作させる個別的なインタフエース・モジユール
29を備えている。リモートI/Oラツク26は通常の設計の
ものであり、そのインタフエース・モジユール29は交流
又は直流入出力モジユールを備えることもできる。リモ
ートI/Oラツク26は通常の通信技術を用い、直列モータ
・リンク13を介してデータを交換する標準的な通信アダ
プタ27を備えている。米国特許第4,413,319号はこのよ
うなリモートI/Oラツク26と、I/O走査モジユール20との
通信を説明している。
I/O走査モジユール20は、I/O走査プロセツサ25の制御に
従つて、周期的にリモートI/Oラツク26にセンサ入力デ
ータを要求する。これらのセンサ入力データはI/O走査
モジユール20のメモリ30に設けられている入力イメージ
・データ・テーブルに記憶される。各I/O走査モジユー
ル20はコントロール・バス21〜アドレス・バス23に接続
されている。従つて、プログラム実行モジユール18をI/
O走査モジユール20の入力イメージ・データ・テーブル
を直接アクセスすることができる。米国特許第4,413,31
9号に説明されているように、いくつかの型式の複数の
センサがプログラマブル・コントローラ10に複数ブロツ
クのデータを供給する。メモリ30の一部はこのように転
送された複数ブロツクのデータを記憶するように設計さ
れている。I/O走査モジユール20は、プログラム実行モ
ジユール18によるデータ・フクセスがリモートI/Oラツ
ク26からデータを収集する際に与える影響を最小化する
ように、物理的に構築されている。
更に、プログラム実行モジユール18はI/O走査モジユー
ル20のメモリ30をアクセスして被制御設備上の装置を動
作させるための出力ステータス・データを記憶する。こ
れらの出力ステータス・データはメモリ30の出力イメー
ジ・テーブルに格納される。プログラム実行モジユール
18の出力イメージ・テーブル内にある更新されたデータ
は、規則的な間隔それぞれのリモートI/Oラツク26に転
送されてこれに接続されているアクチユエータを作動さ
せる。
プログラムの形成及び実行 従つて、以上説明したプログラマブル・コントローラ10
は、いくつかの型式とユーザ定義プログラム、即ちコン
トロール・プログラム、独立したバツクグラウンド・プ
ログラム、インタラプト・ルーチン及び異常処理ルーチ
ンを実行する。これらのプログラムのうちの種々のもの
が各プログラム実行モジユール18に割り付けられて処理
される。独立バツクグラウンド・タスクはユーザ・プロ
グラムである。このユーザ・ウログラムは、実行がコン
トロール・プログラムに従属しており、例えばパフオー
マンス報告のような長いが、時間には厳密でない処理の
ために用いることができる。インタラプト・ルーチンは
与えられた事象が発生したときに高い優先度の処理を実
行できるようにさせ、一方異常処理ルーチンは誤り状態
からの円滑に復帰できるようにする。
被制御設備を動作させるコントロール・プログラムは、
逐次的な機能チヤート及び一組のユーザ・コントロール
・プログラムを備えている。この機能チヤートは1985年
5月に出願された米国特許第717,221号に説明されてい
る記述子フアイルと同様の一組の記述子フアイルに減縮
される。機能チヤートのソース・データは、必要ならば
編集できるように保持される。各記述子フアイルは機能
チヤートにおける1ステツプに対応しており、ユーザ・
コントロール・プログラムのうちの一つを指定してその
ステツプの機能を実行する。これらの記述子フアイルの
記憶及び編集には、通常の技術が用いられる。ユーザ・
コントロール・プログラムは、典型的なものとして、通
常のラダー・プログラムである。しかし、プログラマブ
ル・コントローラはユーザ・コントロール・プログラム
のコンパイルされたバージヨンを実行するので、BASIC
のように他のコンピユータ言語を用いてこの型式のプロ
グラムのソース・コードを発生させてもよい。
先に述べたように、プログラマブル・コントローラ10
は、システム・コントローラ・モジユール16に直接接続
されているプログラミング用の端末装置24を介して、又
はローカル・エリア・ネツトワーク28に接続されている
パーソナル・コンピユータ又はホスト・コンピユータを
介してプログラムされている。これらの端末装置及びコ
ンピユータは機能チヤート及びラダー型式のコントロー
ル・プログラムを書くために必要なプログラムを備えて
いる。プログラマは図画的にコンピユータ端末装置のス
クリーン上に機能チヤートを構築する。機能チヤートを
発生するソフトウエア及び技術は従来のパーソナル・コ
ンピユータにより実用化されていたものと同様である。
第5図は、プログラミングの端末装置24上に表示された
時の機能チヤートの例を示す。ステツプ100のような各
機能チヤートのステツプは、矩形のブロツクにより表わ
されている。機能チヤートの初期ステツプ、即ちステツ
プ100は、二重ブロツクにより表わされている。各ブロ
ツク内には、ステツプの機能を実行すべきプログラム実
行モジユール18(例えば、P1又はP2)が示されている。
第1のステツプ100は、P1を表わすプログラム実行モジ
ユールが当該ステツプを実行することを表わす。更に、
ブロツク内には、当該ステツプのコントロール・プログ
ラムを含むプログラム実行モジユール18のRAM56におけ
るフアイル番号が示されている。例えば、ステツプ100
のコントロール・プログラムはフアイル1内にある。
機能チヤートにおける各ステツプには、例えば遷移102
のような遷移が続く。この遷移は前のステツプが終了し
たときの状態を指定する。この遷移は一つのラングを有
するラダー・プログラムにより定められてもよい。この
遷移は、別個のフアイル、例えば遷移102のフアイル11
に格納される。
第5図の機能チヤート例にはここで「構築」と呼ぶいく
つかの異なる部分を含む。第1の構築はシーケンス型式
であり、処理ステツプ100、103及び遷移102からなる。
この構築におけるステツプは逐次的に実行される。ステ
ツプ103に続いて、2以上のプログラム分岐、この場合
はステツプ107〜109を含む3分岐からなる選択構築があ
る。エントリ遷移104〜106のうちでどれが最初に発生す
るかに従つて、分岐のうちの一つのみが選択されて実行
される。同じような一組のプログラム分岐が機能チヤー
トからつれと下つた同様の構築に含まれている。しか
し、同時構築の遷移条件110が発生すると、全ての分岐
におけるステツプ111〜113は一斉に実行される。プログ
ラム実行モジユール18上ではこれらの同時分岐のうちで
異なるものが実行されることに注意すべきである。この
同時実行は収束構築における遷移114が発生すると終結
する。
機能チヤートそれ自体はプログラマブル・コントローラ
により実行されることはない。しかし、これは各プログ
ラム実行モジユール18用の一組のデータ・フアイルをア
ツセンブルするためにプログラマ及びプログラミング・
ソフトウエアが用いる。特に、機能チヤートは端末装置
24のプログラミング・ソフトウエアによつて機能チヤー
トの種々の部分の動作状態を説明する一連の記述子フア
イルに圧縮される。各記述子フアイルは機能チヤートに
おける1ステツプについてユーザ・コントロール・プロ
グラム(例えば、ラダー・プログラム)、関連する終結
遷移、及び機能チヤート・ステツプの終結後に実行され
る記述子(及びそのプログラム実行モジユール)の識別
を識別する。これらの記述子フアイルと、対応するコン
トロール・プログラム及び遷移フアイルとはプログラム
実行モジユール18のRAM56にダウンロードされる。記述
子フアイルは、各プログラム実行モジユール18が与えら
れたコントロール・プログラムを実行するときに制御す
るために各プログラム実行モジユール18における機能チ
ヤートのインタプリータ・プログラムにより用いられ、
また遷移がコントロール・プログラムを終結したかを判
断する。
プログラム実行モジユール18が機能チヤートのステツプ
を終了すると、次のものの実行を開始するか、又は他の
モジユールによりステツプを実行するときは、バツクプ
レーン11を介して次のステツプのコントロール・プログ
ラムを含むプログラム実行モジユール18へコマンドが送
出される。コマンドは次のステツプの記述子フアイルを
識別して、プログラム実行モジユール18に記述子フアイ
ルの実行の開始を指令する。
本発明は、プログラム実行モジユールのメモリに格納さ
れているユーザ・コントロール・プログラムをコンパイ
ルする方法に関連する。本発明は種々のコンパイルされ
たプログラムに適用可能であるが、ラダー型式のコント
ロール・プログラムについて説明するものとする。先に
説明したように、各プログラム実行モジユール18はそれ
自身のRAM56を有する。このRAM56にはプログラム実行モ
ジユール18上で実行するように設計されたラダー・プロ
グラムが含まれている。各プログラム実行モジユール18
のラダー・プログラムは、オン・ライン・モードでケー
ブル14を介してプログラマブル・コントローラ10に接続
されている端末装置24により、又はオフ・ライン・モー
ドでスタンド・アローンのコンピユータ上で確立されて
いるシステムを用いて書き込まれてもよい。端末装置24
は、典型的なものとして、パーソナル・コンピユータ、
又はスタンド・アローンのコンピユータであり、ラダー
・プログラムを準備して、これをプログラム・フアイル
における一連の機械語命令にコンパイルするために必要
とするソフトウエアに関連している。次に、コンパイル
されたプログラム・フアイルは指定したプログラム実行
モジユール18に転送されて記憶される。
第6図には、オペレータが端末キーボード34により発生
させて端末装置24のCRTスクリーン36上に表示させたラ
ダー図の2つのラング例が示されている。被制御設備の
種々の動作、ラダー図を形成する方法のシンボルは、オ
ペレータにとり従来のプログラマブル・コントローラと
同様に見える。規約として、2つの電源線80及び81はス
クリーンの両側に垂直により表わされている。2本の電
源線80及び81の間には、オペレータによりラダー図の水
平ラングが形成される。各ラングは試験されるべきセン
サ状態と、動作されるべき動作装置、又はコントロール
・プログラムの当該部分のために実行する他の処理とを
表わす。例えば、最初のラングは、シンボル82により表
わすスイツチを閉じたときは、シンボル83により表わし
た動作装置をターン・オンする。特に、シンボル82は、
入力イメージ・データ・テーブルにおける第5ワードの
第3ビツトが試験されるべきスイツチの状態を含み、こ
の第3ビツトがセツトされているとき、即ちハイの理論
レベルにあるときは、ラングは真であることを示してい
る。このビツトは、入力センサ、例えば第1図の装置31
のステータスを表わしている。ラングの真理値はRAM56
のフラグにより表わされている。ラングが真であると判
明したときは、シンボル83は出力イメージ・セーブルに
おける第9データ・ワードをセツトすること、即ちハイ
の論理レベルに変更して、対応する動作装置をターン・
オンにすることを表わしている。ラングの1が偽であつ
たときは、指定した入力ビツトがセツトされておらず、
センサ・スイツチが開放されていることを表わしてお
り、出力イメージ・テーブルのビツトを0にリセツトす
ることにより、対応する被制御設備の動作装置がターン
・オフされることになる。先に説明したように、入出力
イメージ・データ・テーブルのワードは、I/O走査モジ
ユール20のメモリ30に記憶されている。ラング2も同様
に描かれており、パーソナル・コンピユータにおけるタ
イマの動作を制御している。
オペレータがラダー図を構築した後、ラダー図が端末装
置24により構築されてプログラマブル・コントローラ10
の機械語命令のプログラム・フアイルを発生する。各プ
ログラム・フアイルは第7図に示す構造を有する。プロ
グラム・フアイルの第1領域70にはプログラム・フアイ
ル番号に基づいた検定ワードを含むフアイル・ヘツダが
設けられている。更に、フアイル・ヘツダはフアイルが
編集されたか、プログラムには実行するように計画され
ているか、現在実行中かを表わすステータス・ワードが
含まれている。更に、フアイル・ヘツダはプログラムの
型式を識別する。ポインタは他のプログラム・フアイル
領域の開始アドレスのフアイル・ヘツダにも含まれてい
る。フアイル・ヘツダの次にはプログラム実行モジユー
ル18のプログラム命令を含む領域である。プログラム命
令領域は、ラダー・コントロール・プログラムの各ラン
グのためのオブジエクト・コード命令を含む複数区間に
副分割される。複数のラング区間は実行順序により逐次
記憶される。次に、プログラム・フアイルはラング・デ
イレクトリ75を備えている。このラング・デイレクトリ
75はプログラム命令を構築し、各ラングに関連するデー
タを保持しているラダー・プログラム内のラング数を表
わしている。各ラングにおいて、ラング・デイレクトリ
75はラングの現在数と、ラングを挿入したか、削除した
か、又は変更したかを表わすフラグと、そのようにした
ときは編集前のもとのラング数とを有する。更に、各ラ
ングのエントリは、プログラム・フアイルの開始からラ
ングの開始までのワード数のオフセツトを与える。この
オフセツトは編集プログラムが与えられたラングの命令
を配置できるようにする。プログラム・フアイルにおけ
るラング・デイレクトリの次には、命令ラベルと、プロ
グラム内のそれらの位置を含むテーブル76がある。
第6図のラング・デイレクトリの第1ラングをコンパイ
ルすると、その全ての処理がビツト・コ・プロセツサ52
の命令により表わされる。各オブジエクト・コード命令
のアツセンブラ言語のニーモニツク命令は、 SOR[オフセツト] XIC.I 5.3 OTE,I 9.2 である。
全てのラングの最初のフイードル命令はラング・コマン
ドSORの開始である。このフイードル命令はラング命令
の開始から第1の出力命令(この場合は第3命令OTE.
I.)までのワード数を表わしたオフセツトを有する。出
力のオフセツトは試験される多数の入力センサを有する
更に複雑なラングにおいて用いられる。このような複雑
なラングにおいて、入力のうちの一つが偽であると判断
されたときは、オフセツトを用いて第1の出力命令へ直
ちにジヤンプし、試験されるべき割り込み入力をバイパ
スする。入力のうちの一つが偽であるときは、全ラング
が偽であり、出力ステータスを直ちに決定することがで
きるので、このようなオフセツトの使用によりラングの
実行速度が早くなる。
第1ラングの次のアツセンブラ言語命令はXIC.Iであ
る。このXIC.Iは、制御用語において、入力センサ・ス
イツチを閉状態について試験することを意味する。第2
命令における最初の数は、入力スイツチの状態を表わし
たビツトを含むワードに対する入力イメージ・データ・
テーブル内のエントリのオフセツト数である。この場合
のオフセツトは第5ワードに調べるべきビツトが含まれ
ていることを表わしたものである。更に、入力ワード・
オフセツトは、この入力ワードを記憶しているI/O走査
モジユール20も表わしている。アツセンブラー言語の第
2命令の最後の数(即ち、3)は試験すべき入力ワード
のビツトを表わしている。
第1ラングの第3命令は出力コマンドOIE.Iである。こ
の出力コマンドOTE.Iは出力ワードを指すオフセツトを
有する。この出力ワードは、ラングが真のときはセツト
されるべきビツト、ラングが偽のときはクリアされてい
るビツトを含む。この場合のオフセツトは、出力イメー
ジ・テーブルにおける第9ワードを表わし、またその第
2ビツトがランダ1の真のときにセツトされるべきこと
を表わしている。更に、出力命令の数字部分は、オペレ
ーテイング・システムが出力データ・ワードを含むI/O
走査モジユール20を決定することができるようにする。
最初のラングをコンパイルした後、この命令を第7図に
示す対応するプログラム・フアイルのラング部分71に記
憶する。ラング1をビツト・コ・プロセツサ命令により
完全に表わすことができるので、プログラム・フアイル
のラング部分71は他のプロセツサの命令、又はソース・
コードのトークン化したパージヨンを含むことはない。
第6図のラダー図上の第2ラングは、ビツト・コ・プロ
セツサ52により全面的に実行可能とされるものではな
い。このラングの場合に、ビツト・コ・プロセツサ52は
入力イメージ・データ・テーブルの第5のワードの第3
ビツトを調べる。また、マイクロプロセツサ48は、この
ビツトがセツトされていれば、第1タイマを起動させ
る。ラング2により定められた機能を実行するアツセン
ブラ言語のニーモニツク命令は、 (a) SOR [オフセツト] (b) XIC.I 5.3 (c) STP [オフセツト] (d) MOVE.Lタイマ・アドレス.−(a7) (e) JSR タイマ1 (f) MOVE.L[オフセツト],(a2) (g) MOVE.L(a2).a0 (h) JMP (a0) (i) dw 2117 (j) dl [タイマ・アドレス] (k) dw 16352 このラングのアツセンブラ言語命令は説明を簡単にする
ために簡略化されていた。付表はラング2の許可命令、
及び対応するオブジエクト・コードの完全なリストを備
えている。
先に説明したように、プログラムの各ラング区間は、ラ
ングの開始及び第1出力命令に対するオフセツト(この
場合は第3命令のアドレスに対する指示を示す。)を表
わすアツセンブラ言語命令SORから開始する。第2命令
は調べるべき入力センサ・スイツチを表わしており、こ
の場合はラング1における第2ラングと同一である。し
かし、第1タイマをターン・オンさせるラングの出力機
能は、ビツト・コ・プロセツサ52が実行可能な処理では
ない。従つて、ラング2の第3命令はSTPとなつてい
る。STPは、ビツト・コ・プロセツサ52が停止し、プロ
グラムの実行をマイクロプロセツサ48に渡すべきことを
表わしている。この命令は、マイクロプロセツサ48に次
の命令を開始するように知らせた後、ビツト・コ・プロ
セツサ5を休止状態に入らせる。STP命令に関連したオ
フセツトは、トークン化したソース・コードを含むプロ
グラム・フアイルの部分の先頭を指している。このオフ
セツトはプログラム実行の過程では用いられないが、ラ
ダー図を再構築するときに、プログラム・エデイタによ
り用いられて、マイクロプロセツサ48用の割り込みのオ
ブジエクト・コード命令をこれらの命令のソース・コー
ドのトークン化バージヨンへ飛び越させる。
引き続き第3図を参照すると、命令(d)〜(h)がマ
イクロプロセツサ48により実行され、ラングが真のとき
は、第1タイマを起動させる。タイマ機能はROM54に記
憶されているラン時間ライブラリ・レーチンにより実行
される。このルーチンは、活性化されると、RAM56のア
ドレスに記憶されている値を周期的に増加させる。第4
命令は「長い移動」であり、これはRAMアドレスをセー
ブしてプログラム実行モジユール18の「スタック」のタ
イマ1を増加させる。ラング2の第5命令はタイマ・ル
ーチンを呼出し、ラングが真のときはタイマを起動さ
せ、ラングが偽のときはタイマをリセツトさせる。タイ
マ・ルーチンはスタツクのタイマ値のRAMアドレスを切
り離し、そのアドレスの内容を周期的に増加させる。
命令(f)〜(h)は、マイクロプロセツサ命令の各セ
ツトの終りで用いられ、実行をビツト・コ・プロセツサ
52に戻す。全てのラングの最初の命令SORはビツト・コ
・プロセツサ命令であるので、ビツト・コ・プロセツサ
52はプログラム・フアイルの各区間における実行可能な
コードの終りで再び活性化されなければならない。これ
に代つて、ラング2が更に複雑であり、かつ第6図のタ
イマ1のブロツク右にビツト・コ・プロセツサ命令があ
るときは、付加的なビツト・コ・プロセツサ命令が命令
(k)の後のラング・フアイルに存在することになる。
この場合に、命令セツト(f)〜(h)はビツト・コ・
プロセツサ52が「活性状態」となるように指令して、次
のラングでななく、これらの命令の実行を開始させる。
第2ラングの命令(f)では、次のプール代数ビツトの
論理命令に対するオフセツトをビツト・コ・プロセツサ
52のプログラム・カウンタにロードさせる。これが発生
したときは、ビツト・コ・プロセツサ52が活性状態とな
り、自動的に制御信号をマイクロプロセツサ48に送出し
て、マイクロプロセツサ48が休止状態に移動するように
指令する。ビツト・コ・プロセツサ52は、他のSTP命令
を検出するまで、次のラングを実行し続ける。この時点
で、マイクロプロセツサ48が活性状態になる。ビツト・
コ・プロセツサ52がプログラム・フアイルにおける命令
をかなり先の命令(g)まぜ実行したとしても、マイク
ロプロセツサ48が休止状態に入つた時点で、マイクロプ
ロセツサ48のプログラム・カウンタは保有していた命令
(g)のアドレスを未だ持つている。命令(g)におい
て、マイクロプロセツサ48はビツト・コ・プロセツサ52
のプログラム・カウンタの現在値を取り込み、命令
(h)でプログラムにおける当該位置へジヤンプする。
従つて、マイクロプロセツサ48は、ビツト・コ・プロセ
ツサ52がコントロール・プログラムにより後に中止する
実行を開始する。
先に説明したように、各ビツト・コ・プロセツサの命令
はこれを発生したソース・コード命令と1対1に対応す
る。その結果、その後にプログラムを編集したときにこ
れらの命令を容易にデコンパイルして対応するソース・
コードを発生することができる。しかし、マイクロプロ
セツサ命令は、典型的なものとして、複雑な数学的又は
論理的な処理を実行する。従って、一連のマイクロプロ
セッサ命令は一つのソース・コード命令に対応させるこ
とができる。その結果、オブジエクト・コードからソー
ス・コードの再構築を都合よくするために、コンパイラ
によりマイクロプロセツサ命令のソース・コードに関連
するデータを発生し、各マイクロプロセツサ命令グルー
プに続くプログラム・ファイルの複数のラング区間に記
憶する。
プログラム・ライン(i)〜(k)は、マイクロプロセ
ツサ48が実行する命令セツト(この場合はラング2のタ
イマ部のソース・コード)のトークン化バージヨンを表
をしている。プログラム実行モジユールはこれらのプロ
グラム・ラインを実行することはない。プログラム・ラ
イン(i)はタイマ出力命令及びライン(j)を含むラ
ングがタイマ1の値のRAMアドレスを表わすことを示し
ている。プログラム・ライン(k)はトークン化したソ
ース・コードの終りを表わす固定命令である。以下で詳
細に説明するが、プログラム・エデイタがこれらの3ラ
インを用いてラングのソース・コード及びグラフ表示を
再構築する。
第7図は例示するラダー・プログラムのラング部をプロ
グラム・フアイルに記憶する方法を示す。プログラム・
フアイルのラング1のラング部分71は全て先に説明した
ビツト・コ・プロセツサ命令からなる。ラング2のプロ
グラム・フアイル・区間は3つの区間72〜74からなる。
第1の区間72はビツト・コ・プロセツサ命令(命令1〜
3)を有する。第2の区間73はマイクロプロセツサ48
(命令4〜8)の命令を有し、第3の区間はマイクロプ
ロセツサ命令(命令9〜11)のトークン化したソース・
コードを有する。プログラム・フアイルの第2ラングの
区間の編成は、ラダー・プログラムから種々の命令をコ
ンパイルした順序に対応する。
端末装置24により全ラダー・プログラムをコンパイル
し、かつプログラム・フアイルを構築すると、プログラ
ム・フアイルを実行するように指定されたプログラム実
行モジユール18のRAM56にプログラム・フアイルをダウ
ンロードする。この時点で、ダウンロードしたプログラ
ムを参照するように、RAM56のデイレクトリ62(第4
図)を更新する。
本発明は、デコンパイルしてもとの編集用ラダー・プロ
グラムを再生することはできないオブジエクト・コード
命令用のソース・コードをトークン化してパージヨンを
記憶する。即ち、デコンパイラーが解釈可能なこれらの
オブジエウト・コード命令には、ラングの図形シンボル
を発生する方法が多数ある。特に、先に説明したよう
に、ビツト・コ・プロセツサ52の機械語命令はラダー・
プログラムのラングにおいて用いられたシンボルに1対
1で対応する。従つて、これらの命令は記憶すべきトー
クン化バージヨンを必要としないが、デコンパイラーが
直接解釈して対応するラダー・ラング部分を発生させる
ことができる。しかし、マイクロプロセツサ48又は浮動
小数点コ・プロセツサ50が実行すべきラダー・ラングの
複雑な数学的な処理及び出力処理は、デコンパイラーが
ラダー図ラングの当該区間を再構築するために、ソース
・コードのトークン化バージヨンをプログラム・フアイ
ルに記憶させることが必要である。ソース・コードのコ
ンパイルにおいて、コンパイルはジヤンプ命令を挿入
し、このジヤンプ命令によつてオブジエクト・コードの
実行がトークン化ソース・コードを含むラングのプログ
ラム・フアイルの当該区間を飛び越させる。これは各ラ
ングのトークン化したソース・コードをラングの機械語
命令に隣接して記憶させることができるようにし、コン
パイルしたプログラムの編集に有用である。
プログラムの編集 前にコンパイルしたラダー・プログラムを編集するとき
は、オペレータが端末装置24を用いて変更すべきラダー
・プログラムを含む特定のプログラム実行モジユール18
をアドレス指定する。次に、ラダー・プログラムを含む
フアイルは、プログラム実行モジユール18からシステム
・コントローラ・モジユール16を介して端末装置24にア
ツプロードされる。次いで、端末装置24のエデイタ・ソ
フトウエア・パツケージ内のデコンパイラ・プログラム
は、アツプロード・プログラムを処理してラダー・プロ
グラムのソース・コード・バージヨンを発生し、これを
端末装置24のCRTスクリーン36上に通常のラダー・プロ
グラムとして表示する。
次に、オペレータにラング毎にラダー図を編集する機会
が与えられる。特に、オペレータは、端末キーボード34
を用いて存在するラングを変更し、新しいラングを加
え、又は古いラングを削除することができる。各ラング
は、その編集を完了すると、端末装置24によりコンパイ
ルされて対応する一組の機械語命令を発生する。次に、
この命令セツトはプログラマブル・コントローラ10にロ
ードされて、プログラム実行モジユール18のRAM56(第
4図)のプログラム・フアイルに挿入される。
第10図のフローチヤート及び第2図及び第3図のブロツ
ク図を先ず参照して編集処理を詳細に説明しよう。ステ
ツプ120において、プログラマブル・コントローラ10の
オペレータは端末キーボード34を介してプログラム・フ
アイルを選択し、フアイル名を入力することにより端末
装置24上に表示させる。このプログラム・フアイルは独
立したバツクグラウンド・タスク又はインタラプト・ル
ーチンでもよいが、編集処理をラダー型式のユーザ・コ
ントロール・プログラムのうちの一つに関連して説明す
る。プログラム・フアイルを選択した後、ステツプ122
において端末設置24はプログラマブル・コントローラ10
に要求を送出し、プログラム・フアイル番号及びプログ
ラムを記憶しているプログラム実行モジユール18を識別
する。
システム・コントローラ・モジユール16は、要求に応答
して、指定されたプログラム実行モジユール18にコマン
ドを送出してこれに端末装置24へフアイルの一部を送出
するように命令する。次にステツプ126において、ラダ
ー図のいくつかのラングのプログラム命令をプログラム
実行モジユール18から端末装置24にアツプロードする。
アツプロードされたラング数は、端末装置24のCRTスク
リーン36上に同時に表示可能な量の関数である。各ラン
グにおいて、ビツト・コ・プロセツサ命令及びトークン
化ソース・コードのみが端末装置24に送出される。アツ
プロードの際に、プログラム実行モジユール18のソフト
ウエアは命令における物理アドレスを論理アドレスに変
換する。アツプロードされた命令は端末装置24内のメモ
リに記憶される。
ステツプ128において、端末装置24内のソフトウエアは
命令をデコンパイルとしてソース・コード命令と、CRT
スクリーン36上の各ラングの図形表示とを発生する。第
7図に示すプログラム・フアイルを参照すると、デコン
パイルは最初のラングのビツト・コ・プロセツサ命令か
ら開始される。これらのオブジエクト・コード命令はソ
ース・コード命令及びそのラダー図シンボルと1対1で
対応するので、デコンパイラのソフトウエアはそれぞれ
を調べ、スクリーンの表示ライン上に当該ラングに対応
するシンボルを挿入する。例えば、デコンパイラは、SO
R命令を検出すると、スクリーン上に新しいラングの表
示を開始する。第6図のラダー図の場合に、ラング1の
シンボルの命令は、先に説明したXIC.I及びOTE.Iであ
る。XIC.I命令は入力スイツチのシンボルに対応し、ま
たOTE.Iは出力シンボルに対応する。
ビツト・コ・プロセツサ命令及びマイクロプロセツサ命
令を含むラングのプログラム命令、例えばラング2を検
出したときは、別のデコンパイル方法を用いる。例え
ば、第6図、第7図及び先に上げたニーモニツク命令を
参照すると、ラング2にはXIC.Iのビツト・コ・プロセ
ツサ命令が含まれており、入力スイツチ状態の試験を表
わしている。この命令を直接デコンパイルして対応する
ソース・コード及び図形シンボルを発生することがで
き。しかし、タイマ1をターン・オンさせるラング2の
出力区間は、いくつかのマイクロプロセツサ命令により
表わされる。ラング2のプログラム・フアイル区間にお
けるビツト・コ・プロセツサ命令の終りには、停止ビツ
ト・コ・プロセツサ命令STPがある。端末装置24におけ
るデコンパイラ・ソフトウエアは、この命令を検出する
と、プログラマブル・コントローラから次の命令区間は
ソース・コード命令のトークン化バージヨンを確認する
(マイクロプロセツサのオブジエクト・コードを端末装
置24にアツプロードしないことに注意すべきであ
る。)。その結果、デコンパイラのソフトウエアはトー
クン化したソース・コードを解釈してもとのソース・コ
ード、及び対応の図形シンボルを発生し、端末装置24の
スクリーン上に表示するルーチンへ分岐する。このデコ
ンパイルは、全てのアツプロードしたプログラム命令を
ソース・コードに変換して表示するまで、一度にラング
を継続する。
ラダー・プログラムのグレープが端末装置24上に表示さ
れると、ラングのうちの一つを選択して編集してもよ
く、又はオペレータが端末キーボード34を用いてラダー
図をスクロールさせて編集位置に到達してもよい。ステ
ツプ130において、オペレータがプログラムによりスク
ロールを選択したときは、ステツプ132によりプログラ
マブル・コントローラ10にコマンドを送出し、プログラ
ム実行モジユール18から次のラングのプログラム命令を
受け取る。次に、処理はステツプ126に戻つてこのラン
グのオブジエクト・コード命令をアツプロードし、ステ
ツプ128によりデコンパイルをする。
オプレータが編集するラダー図の部分に端末装置24のカ
ーソルを配置し、適当なキーを押すことにより、当該部
分を選択したときは、処理がステツプ133に進む。ステ
ツプ133では、プログラマブル・コントローラに要求を
送出してその編集資源へのアクセスを試行する。同時
に、いくつかのプログラミング装置がプログラマブル・
コントローラ10によりプログラムの編集を試行すること
ができるので、システム・コントローラ・モジユール16
によるチエツクは、一時に一装置のみが編集資源へアク
セスできるようにする。編集資源を端末装置24に割り付
けると、編集処理はステツプ134に進む。次いで、前の
プログラマブル・コントローラが使用したものと同様の
方法により、端末装置24によりラダー図を編集する。カ
ーソルを用いてラングを削除し、現存するラングを変更
し、又は完全に新しいものを付加することができる。第
8図及び第9図は第6図のラダー図の変形バージヨンを
示しており、3型式の全ての変更に関連している。
第8図の一番上のラングは、第6図におけるラング1に
対応し、電源線80及び81に沿つて文字Dにより示すよう
に、省略のマークを示した。編集処理はラング毎に実行
されるので、ラングの省略を示したときは、ステツプ13
8により対応するプログラム実行モジユール18の編集レ
ーチンにコマンドを送出する。このプログラム実行モジ
ユール18の編集ルーチンは、RAM56のプログラム・フア
イルから当該ラング命令を除去する。プログラム・フア
イルにおける次のラングは上方に移動して省略により生
じたギヤツプを埋める。プログラム・フアイルの最初の
変更は、フラグをフアイル・ヘツダにセツトさせて、編
集を実行したことを示す。次いで、プログラム・フアイ
ルにおけるラング・デイレクトリ75(第7図)が更新さ
れる。編集の結果、必要ならば、プログラム・フアイル
のラベル・テーブル76も調整される。これに代つて、全
編集処理の終わりでラングを実際に除去し、オペレータ
が前の編集の取り消しができるようにする。
第8図の中段のラングは、第6図におけるラング2の未
変更バージヨンに対応する。ラング2は変更されていな
いので、電源線80及び81上の文字により囲まれてはいな
い。第8図の一番下に示すラングは、編集処理により挿
入されたものである。このラングはもとのラダー図の構
築と同様の方法で端末装置24により図形的に構築され
る。挿入されたラングは、電源線80及び81上の文字Iに
より表わされる。新しいラングが最終形式であるとき
は、ステツプ136によりオペレータが端末装置24の編集
ソフトウエアに指示してラングをコンパイルする。端末
装置24によるコンパイルが終了した後、ステツプ138に
よりプログラマブル・コントローラ10にコマンドが送出
され、プログラム実行モジユール18、プログラム・フア
イル、新しいラング数及び新しいラングの大きさを指定
する。プログラム実行モジユール18は、このコマンドに
応答して、新しいラングを記憶するRAM56の編集領域の
適当な位置にギヤツプを設ける。この時点で、ラング・
デイレクトリ75及びラベル・テーブル76はギヤツプを設
けたフアイルのアドレスにより更新される。特に、ラン
グを再度番号付けして、新しいラング数がラングの現在
順序を表わす。新しいラングのラング・デイレクトリ・
エントリのステータス・フイールドは、これが挿入され
たラングであることを表わしている。機構語命令及びト
ークン化ソース・コードはこのギヤツプにダウンロード
される(書き込まれる)。更に、新しいラングが必要と
するデータ、例えばラングにおけるタイマ又はカウンタ
の現在値は、RAM56のデータ・テーブル61にダウンロー
ドされる。ダウンロードの完了により、GAP COMPLETE
(ギヤツプ完了)メツセージが端末装置24からプログラ
マブル・コントローラ10に送出される。
第9図は、現存するラングを変更したときの端末表示装
置を示す。ラングの新旧のバージヨンが共に表わされて
いる。図示のように、第6図のラング2は第2のセンサ
・スイツチの試験を含むように編集されていた。変更の
ためにラングを端末装置24により選択したときは、ラダ
ー図の直ぐ下に複製が表示され、複数したラング上で変
更を実行する。ラングのもとのバージヨンは文字Rによ
り囲まれており、置換されていることを表わしている。
また、新しいバージヨンは文字Iにより囲まれており、
旧ラングに代わつてラングを挿入することを表わしてい
る。
ラングに対する変更が終了すると、このラングはビット
・コ・プロセツサ、マイクロプロセツサ、及び先に説明
した挿入ラングについてのトークン化ソース・コードに
コンパイルされる。変更ラングのコマンドはシステム・
コントローラ・モジユール16を介して正しいプログラム
実行モジユール18に送出される。このコマンドはプログ
ラム実行モジユール18及び編集が実行されるプログラム
・フアイル番号を表わす。ラング番号及び編集したバー
ジヨンの大きさもコマンドと共に送出される。編集した
ラングの大きさに適応するために、プログラム実行モジ
ユール18内の編集ルーチンは、変更ラング・コマンドに
応答して、通常のギヤツプ又はギヤツプなし技術により
ラング用のメモリ空間を増加又は減少させる。ラング・
デイレクトリ及びラベル・テーブルも調整される。ステ
ツプ138により、変更されたラングの命令及びトークン
化ソース・コードは、指定されたプログラム実行モジユ
ール18内のRAM56にダウンロードされ、命令をもとのラ
ングの命令に置換する。このときに同時に、要求された
ゼータ・テーブルのエントリが作成される。全てのラン
グ命令をダウンロードした後、端末装置24によりGAP C
OMPLETEがプログラム実行モジユール18に送出される。
各ラング編集が終了した後、ステツプ140により第10図
に示した編集処理は、オペレータが他のラングの編集を
希望しているか否かを調べる。希望しているのであれ
ば、処理はステツプ130に戻り、次のラングを変更す
る。ラダー図に全ての変更を実行すると、ステツプ142
によりオペレータに質問をして付加的な編集を実行する
か否かを表わす。その通りであれば、編集ルーチンはス
テツプ120に戻り、その通りでなければ処理を終了す
る。
【図面の簡単な説明】
本発明の一実施例を示す図において、 第1図は本発明に関連するプログラマブル・コントロー
ラの斜視図、 第2図は第1図に示すプログラマブル・コントローラの
部品の概要ブロツク図、 第3図は第2図に示すプログラマブル・コントローラの
プログラム実行モジユールのうちの一つの概要ブロツク
図、 第4図はプログラム実行モジユールのメモリ・データ構
造のブロツク図、 第5図は一実施例のプロセス・コントロール機能図、 第6図は第1図の端末装置上に表示したラダー図型式の
コントロール・プログラム例の図、 第7図は典型的なラダー型式のコントロール・プログラ
ム用のプログラム・メモリ・フアイルを表わす図、 第8図はプログラミング端末装置のスクリーンに現われ
る編集したラダー型式のコントロール・プログラムを示
す図、 第9図は編集したラダー型式のコントロール・プログラ
ムの他の変形を示す図、 第10図は本発明のプログラム編集プロセスのフローチヤ
ートである。 10……プログラマブル・コントローラ 18……プログラム実行モジユール、 20……I/O走査モジユール、 25……I/O走査プロセツサ、 26……リモートI/Oラツク、 29……インタフエース・モジユール、 30……メモリ、 48……マイクロプロセツサ、 50……浮動小数点コ・プロセツサ、 52……ビツト・コ・プロセツサ 56……RAM。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャールズ エム.リスチャー アメリカ合衆国 オハイオ州 ペインズビ ル,ラーチウッド ドライブ 98 (72)発明者 ロバート アール.セプシ アメリカ合衆国 オハイオ州 リッチモン ド ハイツ,ナンバー 324ジー,チェス ナット レーン 145 (72)発明者 ジャツク エフ.トマ アメリカ合衆国 オハイオ州 パーマ,ウ ェスト プレザント バレー ロード 7404 (56)参考文献 特開 昭56−24606(JP,A) 特開 昭57−189240(JP,A) 特開 昭61−170804(JP,A)

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】機械語のコントロール・プログラムを実行
    するプロセッサと、前記プロセッサを機械上の検知装置
    及び運転装置にインタフェース接続させる手段とを含
    み、機械を動作させて複数のプログラム関数を実行させ
    るプログラマブル・コントローラ装置において、 実行すべき関数を指定するコントロール・プログラムの
    ソース・コード・バージョンを発生する手段と、 前記ソース・コードをコンパイルして前記コントロール
    ・プログラムの機械語オブジェクト・コードを発生する
    手段と、 前記オブジェクト・コードと、前記ソース・コードの一
    部を表わすデータとを一つのプログラム・フアイルに組
    合わせる手段と、 前記プロセッサに接続されてプログラム・フアイルを記
    憶するメモリ手段と を備えており、前記ソース・コードの前記一部は、前記
    オブジェクト・コードと一対一の対応関係を持たない部
    分である ことを特徴とするプログラマブル・コントローラ装置。
  2. 【請求項2】請求項1記載のプログラマブル・コントロ
    ーラ装置において、更に、 前記メモリ手段のプログラム・フアイルに含まれる前記
    コントロール・プログラムを編集する編集手段を備える
    と共に、 前記編集手段は前記機械語オブジェクト・コードと、前
    記ソース・コードの複数部分を表わすデータとから前記
    コントロール・プログラムのソース・コード・パージョ
    ンを再構築する手段を備えていることを特徴とするプロ
    グラマブル・コントローラ装置。
  3. 【請求項3】請求項1記載のプログラマブル・コントロ
    ーラ装置において、更に、 前記ソース・コードの複数部分はそれぞれを複数のオブ
    ジェクト・コード命令にコンパイルしたソース・コード
    命令である ことを特徴とするプログラマブル・コントローラ装置。
  4. 【請求項4】プログラマブル・コントローラにおいて、 コントロール・プログラムの機械語命令のうちから選択
    された一つを実行するビット・コ・プロセッサ及びマイ
    クロプロセッサを有するプロセッサと、 前記プロセッサに接続され、前記ビット・コ・プロセッ
    サ及び前記マイクロプロセッサ用の機械語命令を記憶し
    て実行すると共に、前記マイクロプロセッサの機械語命
    令のうちのソース・コードと一対一の対応関係を持たな
    い少なくともいくつかを発生するソース・コードの一部
    を表わすデータを記憶するメモリと、 前記プログラマブル・コントローラにより制御された機
    械上の複数装置を検知し、かつ動作させるように前記プ
    ロセッサをインタフェースする手段とを備えていること
    を特徴とするプログラマブル・コントローラ。
  5. 【請求項5】請求項4記載のプログラマブル・コントロ
    ーラにおいて、 前記ソース・コード命令の一部はそれぞれ複数の機械語
    命令を発生したソース・コード命令を備えていることを
    特徴とするプログラマブル・コントローラ。
  6. 【請求項6】請求項4記載のプログラマブル・コントロ
    ーラにおいて、 前記メモリは複数のメモリ位置に記憶されている前記デ
    ータの複数部分と共に、一つのプログラム・フアイルと
    して記憶し、かつ前記複数のメモリ位置は前記機械語命
    令及び前記データを前記機械語命令を記憶しているメモ
    リ位置によりインターリーブされていることを特徴とす
    るプログラマブル・コントローラ。
  7. 【請求項7】請求項4記載のプログラマブル・コントロ
    ーラにおいて、 前記マイクロプロセッサ命令の複数の命令は前記メモリ
    の複数区間に記憶され、かつ前記メモリの複数部分は前
    記ビット・コ・プロセッサの命令を記憶している前記メ
    モリの複数区間によりインターリーブされ、更に、 前記ソース・コード・データは当該ソース・コードから
    導出した機械語命令と共に、前記複数区間に記憶される
    ことを特徴とするプログラマブル・コントローラ。
  8. 【請求項8】プログラマブル・コントローラのコントロ
    ール・プログラムを発生するコントロール・プログラム
    発生方法において、 前記コントロール・プログラムを一連のソース・コード
    命令として書き込むステップと、 前記ソース・コード命令を一連の機械語命令にコンパイ
    ルするステップと、 複数連の機械語命令と、複数連のソース・コード命令の
    一部を表わすデータとを含むプログラム・フアイルを発
    生するステップと を備えており、前記ソース・コード命令の前記一部は、
    前記機械語命令と一対一の対応関係を持たない部分であ
    ることを特徴とするコントロール・プログラム発生方
    法。
  9. 【請求項9】請求項8記載のコントロール・プログラム
    発生方法において、更に 前記ソース・コード命令のうちのいくつかをトークン化
    することにより前記ソース・コードを表わして、前記デ
    ータを発生するステップを備えていることを特徴とする
    コントロール・プログラム発生方法。
  10. 【請求項10】請求項8記載のコントロール・プログラ
    ム発生方法において、更に 前記コントロール・プログラムはラダー型式のプログラ
    ムであり、 プログラム・フアイルを発生するステップはそれぞれラ
    ダー・ラングのうちの一つに対応する一連の区間を有す
    るプログラム・フアイルを発生し、 前記一連の区間のうちの少なくともいくつかは機械語命
    令、及び前記機械語命令の一部についてのソース・コー
    ド用のデータとを含む ことを特徴とするコントロール・プログラム発生方法。
  11. 【請求項11】請求項10記載のコントロール・プログラ
    ム発生方法において、更に 前記機械語命令、及び当該ラングのプログラム・フアイ
    ルの区間のソース・コード命令データからラダー・ラン
    グ用のソース・コード命令を再発生するステップと、 前記再生したソース・コード命令を変更するステップ
    と、 前記変更したソース・コード命令を複数の機械語命令に
    コンパイルするステップと、 前記ラングのプログラム・フアイルの一部分を複数の機
    械語命令、及び前記変更した前記ソース・コード命令の
    一部を表わすデータとにより置換するステップと によりプログラム・フアイルを編集するステップとを備
    えている ことを特徴とするコントロール・プログラム発生方法。
  12. 【請求項12】請求項8記載のコントロール・プログラ
    ム発生方法において、更に 前記プログラム・フアイルの前記機械語命令、及びソー
    ス・コード命令データから複数連のソース・コードを再
    生することにより前記プログラム・フアイルを編集する
    ステップを備えていることを特徴とするコントロール・
    プログラム発生方法。
JP1046370A 1988-02-29 1989-02-27 ソース・コードを有するプログラマブル・コントローラ装置及びコントロールプログラムを発生する方法 Expired - Lifetime JPH0680482B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/161,484 US5287548A (en) 1988-02-29 1988-02-29 Programmable controller having a stored program with both machine language instructions and source code data
US161484 2002-05-31

Publications (2)

Publication Number Publication Date
JPH0210403A JPH0210403A (ja) 1990-01-16
JPH0680482B2 true JPH0680482B2 (ja) 1994-10-12

Family

ID=22581365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1046370A Expired - Lifetime JPH0680482B2 (ja) 1988-02-29 1989-02-27 ソース・コードを有するプログラマブル・コントローラ装置及びコントロールプログラムを発生する方法

Country Status (5)

Country Link
US (1) US5287548A (ja)
EP (1) EP0331060B2 (ja)
JP (1) JPH0680482B2 (ja)
CA (1) CA1318034C (ja)
DE (1) DE68923888T3 (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5005152A (en) * 1989-04-05 1991-04-02 Allen-Bradley Company Industrial controller with decompilable user program
GB2232514B (en) * 1989-04-24 1993-09-01 Yokogawa Electric Corp Programmable controller
ATE180337T1 (de) * 1989-09-01 1999-06-15 Amdahl Corp Betriebssystem und datenbank mit einer regelsprache zum bedingungsgesteuerten rechnerbetrieb
US5058052A (en) * 1989-10-16 1991-10-15 Ge Fanuc Automation North America, Inc. Method for checking the syntax of an instruction list program to determine if the program is expressible as a relay ladder diagram by a programmable logic controller
JP2526686B2 (ja) * 1989-12-26 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラの制御プログラムにおけるプログラム内容の修正方法
JP2573391B2 (ja) * 1990-03-27 1997-01-22 松下電工株式会社 プログラマブルコントローラ
US5581759A (en) * 1990-04-02 1996-12-03 Hitachi, Ltd. Apparatus and method for controlling a system process
CA2048944A1 (en) * 1990-08-31 1992-03-01 Otomar S. Schmidt Processor for a programmable controller
JPH05341819A (ja) * 1991-02-05 1993-12-24 Mitsubishi Electric Corp Sfcプログラムのデバッグ装置及びデバッグ方法
US5479618A (en) * 1991-07-24 1995-12-26 Allen-Bradley Company, Inc. I/O module with reduced isolation circuitry
JP2765423B2 (ja) * 1992-01-23 1998-06-18 三菱電機株式会社 プログラマブルコントローラ及びその制御方法
US5583989A (en) * 1992-05-28 1996-12-10 Honda Giken Kogyo Kabushiki Kaisha Vehicle control system having program generator and convertor
KR100309615B1 (ko) * 1992-10-19 2001-12-17 지멘스인더스트리얼오토메이션인코포레이티드 고속프로그램가능로직컨트롤러(plc)
US6151701A (en) * 1997-09-30 2000-11-21 Ahpah Software, Inc. Method for reconstructing debugging information for a decompiled executable file
US5522079A (en) * 1993-06-14 1996-05-28 International Business Machines Corporation Compiler merging new and preexisting modules while preserving function order
GB9406931D0 (en) * 1994-04-07 1994-06-01 Philips Electronics Uk Ltd Data processing apparatus
US5508909A (en) * 1994-04-26 1996-04-16 Patriot Sensors And Controls Method and systems for use with an industrial controller
IT1271796B (it) * 1994-12-23 1997-06-09 Lomar S R L Apparecchiatura di controllo di almeno un attuatore operativamente collegabile ad una stazione di programmazione flessibile
JP3679844B2 (ja) * 1995-11-09 2005-08-03 ファナック株式会社 シーケンス・プログラムの実行装置
US5818711A (en) * 1996-09-30 1998-10-06 Allen Bradley Company, Llc Method for visually determining the status of program edits in an on-line programming environment
US5908483A (en) * 1996-10-30 1999-06-01 Lynch Machinery, Inc. Apparatus and process for molding of glass
US5819097A (en) * 1996-12-09 1998-10-06 Allen Bradley Company, Llc Industrial controller compiler with expandable instruction set
US5881290A (en) * 1996-12-09 1999-03-09 Allen-Bradley Company, Llc Industrial controller decompiler accommodating an expandable instruction set
US6154684A (en) * 1997-06-14 2000-11-28 Rockwell Technologies, Llc Template language for industrial controller programming
JP3424520B2 (ja) * 1997-08-29 2003-07-07 松下電器産業株式会社 プログラム変換装置とデバッグ装置
US6075935A (en) * 1997-12-01 2000-06-13 Improv Systems, Inc. Method of generating application specific integrated circuits using a programmable hardware architecture
US6061602A (en) * 1998-06-23 2000-05-09 Creative Lifestyles, Inc. Method and apparatus for developing application software for home automation system
US6502239B2 (en) * 1998-11-12 2002-12-31 Computer Associates Think, Inc Method and apparatus for round-trip software engineering
US6832368B1 (en) 1999-02-17 2004-12-14 International Business Machines Corporation Method and system for enhancing the performance of interpreted web applications
US7134118B1 (en) * 2000-10-26 2006-11-07 Siemens Energy & Automation, Inc. Re-programmable flash memory micro controller as programmable logic controller
EP1202171A3 (en) * 2000-10-25 2004-07-07 Hitachi, Ltd. Compile method and program recording medium
DE10111393A1 (de) * 2001-03-09 2002-09-26 Rexroth Indramat Gmbh Verfahren zur Remote-Steuerungsprogrammierung
US7007106B1 (en) 2001-05-22 2006-02-28 Rockwell Automation Technologies, Inc. Protocol and method for multi-chassis configurable time synchronization
US6914914B1 (en) * 2001-05-22 2005-07-05 Rockwell Automation Technologies, Inc. System and method for multi-chassis configurable time synchronization
US7818457B1 (en) 2001-05-22 2010-10-19 Rockwell Automation Technologies, Inc. Apparatus for multi-chassis configurable time synchronization
US8171414B2 (en) * 2001-05-22 2012-05-01 Netapp, Inc. System and method for consolidated reporting of characteristics for a group of file systems
DE10126863A1 (de) * 2001-06-01 2002-12-12 Siemens Ag Programmierwerkzeug und Verfahren zur Erstellung von Programmen, insbesondere der Automatisierungstechnik
US7395122B2 (en) * 2001-07-13 2008-07-01 Siemens Aktiengesellschaft Data capture for electronically delivered automation services
US6975913B2 (en) 2001-07-13 2005-12-13 Siemens Aktiengesellschaft Database system and method for industrial automation services
US7603289B2 (en) * 2001-07-13 2009-10-13 Siemens Aktiengesellschaft System and method for electronic delivery of content for industrial automation systems
US20060190106A1 (en) 2001-07-30 2006-08-24 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
US7257620B2 (en) * 2001-09-24 2007-08-14 Siemens Energy & Automation, Inc. Method for providing engineering tool services
US7246267B2 (en) * 2001-10-01 2007-07-17 Tektronix, Inc. Logic analyzer having a disassembler employing symbol table information for identifying op-codes
US6904591B2 (en) * 2002-11-01 2005-06-07 Oz Development, Inc. Software development system for editable executables
US7543238B2 (en) * 2003-01-21 2009-06-02 Microsoft Corporation System and method for directly accessing functionality provided by an application
TW200428171A (en) * 2003-06-13 2004-12-16 Delta Electronics Inc Method for controlling single step of the program in programmable logic controller
JP4525681B2 (ja) * 2004-07-28 2010-08-18 三菱電機株式会社 プログラマブルコントローラ用プログラム生成装置、プログラマブルコントローラ用プログラム生成方法およびその方法のプログラムを記録した記録媒体
US7979701B1 (en) 2006-09-15 2011-07-12 Netapp, Inc. Cross mapping graphical interface to show encryption relationships between hosts and storage devices
JP4940996B2 (ja) * 2007-02-23 2012-05-30 富士通セミコンダクター株式会社 プロファイリング装置およびプロファイリングプログラム
US8108056B2 (en) * 2007-11-13 2012-01-31 Rockwell Automation Technologies, Inc. Industrial controller using shared memory multicore architecture
US8688258B2 (en) 2008-09-11 2014-04-01 Rockwell Automation Technologies, Inc. Method of controlling a machine tool
US8738158B2 (en) * 2010-02-24 2014-05-27 Schneider Electric USA, Inc. Apparatus and method for remote configuration of common objects across lighting controllers
CN101872184A (zh) * 2010-06-04 2010-10-27 南大傲拓科技江苏有限公司 可编程控制器的顺序控制图编程及控制方法
CN104025095B (zh) 2011-10-05 2018-10-19 奥普唐公司 用于监视和/或生成动态环境的方法、装置和系统
US20220012346A1 (en) * 2013-09-13 2022-01-13 Vmware, Inc. Risk assessment for managed client devices
KR102063966B1 (ko) * 2015-10-21 2020-01-09 엘에스산전 주식회사 Plc 명령어 컴파일 최적화 방법
US11009864B2 (en) 2018-04-06 2021-05-18 Bently Nevada, Llc Gated asynchronous multipoint network interface monitoring system
US11300604B2 (en) * 2018-04-06 2022-04-12 Bently Nevada, Llc Monitoring system with serial data lane transmission network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3810118A (en) * 1971-04-27 1974-05-07 Allen Bradley Co Programmable matrix controller
JPS55135908A (en) * 1979-04-11 1980-10-23 Hitachi Ltd Sequence program input device
JPS5624606A (en) * 1979-08-07 1981-03-09 Toshiba Corp Programmable controller
JPS56101211A (en) * 1980-01-16 1981-08-13 Toyoda Mach Works Ltd Sequence display device
US4413319A (en) * 1981-03-09 1983-11-01 Allen-Bradley Company Programmable controller for executing block transfer with remote I/O interface racks
JPS57189240A (en) * 1981-05-18 1982-11-20 Toshiba Corp Display device
JPS5856148A (ja) * 1981-09-30 1983-04-02 Fujitsu Ltd プログラム修正処理方式
JPS58213304A (ja) * 1982-06-05 1983-12-12 Fanuc Ltd ラダ−ダイヤグラム表示方式
US4488258A (en) * 1982-09-20 1984-12-11 Allen-Bradley Programmable controller with control program comments
JPS6061832A (ja) * 1983-09-16 1985-04-09 Hitachi Ltd 演算制御装置
US4742443A (en) * 1985-03-28 1988-05-03 Allen-Bradley Company Programmable controller with function chart interpreter

Also Published As

Publication number Publication date
US5287548A (en) 1994-02-15
EP0331060A3 (en) 1990-09-12
EP0331060B2 (en) 1999-08-11
CA1318034C (en) 1993-05-18
DE68923888T2 (de) 1996-04-25
EP0331060B1 (en) 1995-08-23
DE68923888T3 (de) 2000-01-05
DE68923888D1 (de) 1995-09-28
EP0331060A2 (en) 1989-09-06
JPH0210403A (ja) 1990-01-16

Similar Documents

Publication Publication Date Title
JPH0680482B2 (ja) ソース・コードを有するプログラマブル・コントローラ装置及びコントロールプログラムを発生する方法
US4969083A (en) Network programmable logic controller system
US7730450B2 (en) Automatic versioning and data mutation of user-defined data types
JP4982020B2 (ja) 分散ブロック・ダイアグラム実行およびユーザ・インタフェース表示を使用するグラフィカル・プログラミング・システム
JP3407809B2 (ja) コンピュータ・アプリケーション・ソフトウェアの自動化試験システム
US5504902A (en) Multi-language generation of control program for an industrial controller
Ousterhout Tcl: An embeddable command language
US5295059A (en) Programmable controller with ladder diagram macro instructions
US7024631B1 (en) System and method for enabling graphical program polymorphism
US7543281B2 (en) Disabling and conditionally compiling graphical code in a graphical program
CA2539805C (en) Method and apparatus for reprogramming a programmed controller of a power driven wheelchair
US6874148B1 (en) System and method for exporting a graphical program to a shared library
US5225975A (en) Network programmable logic controller system with ladder editor and parallel and synchronous logic and I/O scanning
Montani et al. A simulation support system for solving large physiological models on microcomputers
KR100286197B1 (ko) 데이타 처리 시스템의 프로그래밍 방법
US20020173860A1 (en) Integrated control system
Russo et al. Automating science and engineering laboratories with visual basic
JPH0554277A (ja) プラント監視装置
JP7447574B2 (ja) サポート装置、サポートプログラムおよびサポート方法
Goldberg et al. The PRIM System: An alternative architecture for emulator development and use
JPH09160611A (ja) プログラマブルコントローラ
JPS6139134A (ja) プログラム変換方法
JPS58221405A (ja) プログラマブル・コントロ−ラ
Celler et al. The XGAP 4 Manual
Appelquist et al. A multifunction editor for programming control sequences for a robot based radiopharmaceutical synthesis system

Legal Events

Date Code Title Description
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

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

Free format text: PAYMENT UNTIL: 20081012

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20091012

Year of fee payment: 15

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091012

Year of fee payment: 15