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

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

Info

Publication number
JPH0210403A
JPH0210403A JP1046370A JP4637089A JPH0210403A JP H0210403 A JPH0210403 A JP H0210403A JP 1046370 A JP1046370 A JP 1046370A JP 4637089 A JP4637089 A JP 4637089A JP H0210403 A JPH0210403 A JP H0210403A
Authority
JP
Japan
Prior art keywords
program
source code
instructions
rung
programmable controller
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
JP1046370A
Other languages
English (en)
Other versions
JPH0680482B2 (ja
Inventor
Mark A Flood
マーク エイ.フラッド
Michael D Kalan
マイクル ディー.カラン
Charles M Rischar
チャールズ エム.リスチャー
Robert R Sepsi
ロバート アール.セプシ
Jack F Toma
ジャツク エフ.トマ
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=JPH0210403(A) "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/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は、米国特許第3.’810.118号、第3.
.942,158号、第4,165,534号及び第4
.442.504@に説明されているようなプログラマ
ブル・コントローラ及びコントロール・プログラム発生
方法に関し、特にプログラマブル・コントローラを動作
させるプログラムを記憶し、かつ編集するプログラマブ
ル・コントローラ及びコントロール・プログラム発生方
法に関する。
[発明の背景] プログラマブル・コントローラは、典型的なものとして
、アッセンブリ・ライン及び工作機械のような生産装置
に接続されて記憶しているプログラムに従って逐次的に
装置を動作させるものである。例えば、前述の特許に開
示されたようなプログラマブル・コントローラでは、コ
ントロール・プログラムがメモリに記憶されると共に、
高速度で連続的に読み出されて、解釈されることにより
被制御設備から選択した検知装置の条件を調べ、又は調
べた1以上の検知装置のステータスに基づいて可能な被
制御設備から選択した運転装置を活性化又は減勢させて
いる。
これらのプログラマブル・コントローラのプログラム実
行処理は、中型から大型のプログラマブル・コントロー
ラにおいて1ビツトの入出力データの処理命令ばかりで
なく、演算命令、ファイル処理命令、タイマ、カウンタ
、シーケンサ及び他の更に複雑な命令も含むプログラマ
ブル・コントローラ型式に命令を高速度で解釈するよう
に設計されている。このような命令は産業においてよく
標準化されており、コントロール技術者にとり理解が容
易なラダー図の要素と直接関連付けることができる。従
って、米国特許第3.798.612号及び第3,81
3.649号に開示されたようなパネルを編集するのに
都合がよく、また第4゜070.702号にはこのよう
なプログラマブル・コンl−ローラ命令からなるラダー
図型式のコントロール命令を展開して編集する際にユー
ザを支援するように開発されていた。
特に、ラダー図のコントロール・プログラムは比較的に
小規模から中規模のコントロール・タスクを生成して編
集するのが容易であるが、大きなコントロール・タスク
用として用いると面倒であり、非能率的である。大きな
ラダー図のコントロール・プログラムは理解することも
、トラブル・シュートも容易でなく、実行に長い時間が
掛かる。
1985年3月28日に出願された米国特許出願第06
/717,221号はこの問題を指摘している。そこで
説明されているコントローラは、記憶した構造チャート
・プログラムによってそれぞれ論理的に関連されている
複数の個別的なラダー・コントロール・プログラムを記
憶するプログラム実行プロセッサを備えている。また、
このプログラム実行プロセッサは記憶した構造チャート
・プログラムを解釈するように動作可能であり、この構
造チャート・プログラムが任意の時点で記憶した複数の
ラダー・プログラムのうちのどれを反復して解釈すべき
かを指示する。通常、大きなコントロール・タスクは被
制御設備即ちプロセスがその状態により進む際に、逐次
的に実行する複数の個別的な制御ステップに分解可能な
ものであることが分かった。各制御ステップは理解が容
易、かつ非常に高い走査速度で実行可能とすると共に、
個別的に解釈可能なラダー・プログラムにより定められ
る。個別的な制御ステップを解釈するシーケンスは、被
制御機械又はプロセスの運転方法を全般的に表現する構
造チャート・プログラムにより定められる。従って、ユ
ーザは、構造チャート規約を用いて機械又はプロセスが
動作すべき全般的な方法を定めると共に、個別的に管理
が容易なラダー・プログラムにおける波間t2a設備即
ちプロセスの詳細な動作を定めることができる。
従来、ラダー・プログラムはコントローラにおけるイン
タブリータが処理する比較的に高レベル言語により記述
されていた。プログラム実行ブOセッサにおけるインタ
ブリータ・プログラムは各ラダー・ラング(rung 
)又は一つのラングの01部分を分析し、ラダーの当該
部分により定められた機能に対応する機械言語ルーチン
を実行する。ラダー・プログラムを高レベル言語として
記憶していたので、再呼出してプログラマブル・コント
ローラに接続されている端末装置上で編集することがで
きる。しかし、インタブリータは比較的に遅い。プログ
ラマブル・コントローラが更に複雑になり、多くのタス
クを処理し、また装置の更に大きな部分を動作させるに
従って、装置を制御し、かつタイミングの良い形式でタ
スクを処理するインタブリータの能力は、重要な問題と
なる。
プログラムの実行速度を高める周知の一方法は、高レベ
ル言語をプロセッサが直接実行することができる機械語
命令にコンパイルすることである。
コンパイラ−を、ラダー図ソース・コードの形式で書き
込み、プログラマブル・コントローラにおいてコントロ
ール・プログラムの機械語のオブジェクト・コード・バ
ージョンを生成して実行することもできる。コンパイル
したプログラムの欠点は、被制御プロセスに変更を加え
たときにオブジェクト・コードを容易に編集できないこ
とである。
装置のオペレータは熟練したコンピュータ・プログラマ
−ではないので、プログラマブル・コントローラにとっ
て、この欠点の方がより重大である。
従って、ラダー・コントロール・プログラムのソース・
コード・バージヨンを編集するのが良い。
しかし、プログラマブル・コントローラにソース・コー
ドのコピーを保持するためには、かなりメモリを付加す
る必要がある。ソース・コードをフロッピー・ディスク
又は磁気テープに記録することは可能だが、このような
媒体は、汚染や磁界により損傷を受けるかも知れない製
造環境において記憶したり、使用するのには必ずしも実
際的なものではない。
これに代る方法は、記憶しているオブジェクト・コード
をデコンパイルして高レベル言語のチャート・プログラ
ム・バージョンを生成することである。ラダー・コント
ロール・プログラムのいくつかのラングをデコンパイル
することは可能であるが、コンパイルされたあらゆるス
テップを逆処理してもとのラダー図の部分を再生するこ
とはできない。算術計算のような複雑なラングの区間は
多数の機械語命令にコンパイルされる。これが不可能の
ときは、一連の機械語命令を調べてラングのもとの部分
を再生することがしばしば困難となる。
オブジェクト・コードを正しくデコンパイルできたとし
ても、プログラマブル・コントローラが特定のプログラ
ムを実行しなかったときは、予め編集を実行する必要が
あった。米国特許第3,813.649号に示すような
従来の編集技術によると、編集は、プログラマブル・コ
ントローラにより実行していた装置を停止したとき、又
はラダーコントロール・プログラムのうちの他方を解釈
したときは、編集を実行する必要があった。これは、プ
ログラムを編集するときに厳しい条件を課するだけでは
なく、装置の動作に逆効果であった。
[発明の概要] 本発明によるプログラマブル・コントローラは、コンパ
イラを用いて高レベル言語により書き込まれたソース・
コードのコントロール・プログラムから機械語命令のオ
ブジェクト・コード命令を発生する。プログラマブル・
コントローラには、オブジェクト・コード・プログラム
と、対応するオブジェクト・コードから容易に再構築す
ることはできないソース・コードのこれらの部分とを保
持するメモリ装置が備えられている。オブジェクト・コ
ードと、記憶したソース・コードの複数部分とからもと
のオブジェクト・コードを再生する手段が備えられてい
る。メモリを節約するために、記憶したソース・コード
をトークンにより表わしてもよい。
プログラマブル・コントローラはオブジェクト・コード
の命令を実行するために特定目的のコ・プロセッサを備
えてもよい。典型的なものとして、サブセットにおける
コ・プロセッサ命令は、ソース・コードにおける命令と
1対1で対応している。
従って、ソース・コードをこのサブセットにおけるオブ
ジェクト・コード命令から再生することができる。残り
のオブジェクト・コード命令は汎用のマイクロプロセッ
サにより処理され、高レベルのソース・コード命令と1
対1で対応する必要はない。従って、これら後者の命令
を用いて容易にソース・コード命令を再生することはで
きない。
マイクロプロセッサの命令用のソース・コードの複数部
分はオブジェクト・コードと共に記憶される。
本発明の目的は、コントロール・プログラムの全ソース
・コード・バージヨンの記憶を必要とせずに、プログラ
マブル・コントローラのコンパイル済みコントロール・
プログラムを編集する手段を提供することにある。
本発明の他の目的はコンパイルされたオブジェクト・コ
ードからソース・コードのコントロール・プログラムを
再生する機構を提供することである。
更に、本発明の目的はオブジェクト・コードをプログラ
マブル・コントローラが実行する速度に影響を与えない
方法により、オブジェクト・コードのうちで対応する部
分と共に、ソース・コードの複数部分のみを記憶するこ
とにある。この目的はメモリ空間を変換するようにこれ
らのソース・コードの部分のトークン化されたものを記
憶することにより強化される。
[実施例の詳細な説明] 本発明によるプログラム・メモリ及び編集技術の動作を
説明するために、実施可能なプログラマブル・コントロ
ーラ・システムのハードウェアを総合的に理解する必要
がある。このようなシステムの詳細な説明のために、「
並列プロセッサを有するプログラマブル・コントローラ
」と題して1987年8月26日に出願された米国特許
出願第089.587号を参照すべきである。本発明は
特定の型式のプログラマブル・コントローラ上で用いる
ものとして説明されているが、本発明を他の型式のプロ
グラマブル・コントローラ及び−殻内なコンピュータに
適用可能である。
システム・ハードウェア 先ず第1図及び第2図を参照すると、本発明に関連する
プログラマブル・コントローラ10がラック12に収容
されている。ラック12は電源モジュール15、システ
ム・コントローラ・モジュール16、多数のプログラム
実行モジュール18及び複数のリモート入出力(Ilo
)走査モジュール20を格納する一連のスロットを備え
ている。
これらの機能モジュールはラック12の背面に沿って伸
延しているバックブレーン11に接続されている。バッ
クブレーン11は、このモジュール・コネクタはバック
ブレーン11上の導体パターンにより相互接続された複
数のモジュール・コネクタを有し、電源モジュール15
、システム・コントローラ・モジュール16、多数のプ
ログラム実行モジュール18及び複数のリモート入出力
(Ilo)走査モジュール20を接続する一連の信号バ
スをなす。ラック12は電源モジュール15、システム
・コントローラ・モジュール16、多数のプログラム実
行モジュール18及び複数のリモート入出力(Ilo>
走査モジュール20を備えているが、1プログラム実行
モジュール及び1走査モジユールのみが必要である。ラ
ック12の残りのスロット位置は空であり、付加的な機
能モジュールをこれらのスロットに挿入するまでは、こ
れらのスロットをめくら板により塞いである。
システム・コントローラ・モジュール16は端末装置2
4として設計されたパーソナル・コンピュータと、ロー
カル・エリア・ネットワーク28に接続されている外部
装置との通信を管理している。ローカル・エリア・ネッ
トワーク28を介してホスト・コンピュータ又は同等の
プログラマブル・コントローラ、並びに他の端末装置と
データの交換が可能である。これは、例えばホスト・コ
ンピュータにその動作に関連したプログマブル・コント
ローラ10の状態情報を収集させるものである。更に、
動作データがシステム・コントローラ・モジュール16
により端末装置24上に表示されるので、オペレータは
システム令パフォーマンスを監視して、波間m設備上で
故障したセンサ又は運転装置を検出することができる。
本発明に関連するシステム・コントローラ・モジュール
16が実行する重要なタスクは、リモート端末装置を介
してプログラマブル・コントローラ10のプログラムの
監視をしている。この動作には被制御設備の動作を指示
するプログラムの生成、及び編集が含まれている。これ
らのプログラムは、通常のプロセス・コントロール機能
チャート、及びこの機能チャートの各ステップにおける
動作を規定するラダー型コントロール・プログラムの強
化バージョンであってもよい。例えば端末装置24のよ
うなプログラマブル・コントローラ10に直接又はロー
カル・エリア・ネットワーク28を介して接続される端
末装置上に、種々のプログラムが展開される。次いで、
プログラムがコンパイルされ、プログラマブル・コント
ローラ1oにダウンし1−ドされる。プログラマブル・
コントローラ10では、システム・コントローラ・モジ
ュール16がプログラムに従って将来実行するプログラ
ム実行モジュール18にプログラムを記憶する。同様に
、プログラムがローカル・エリア・ネットワーク28を
介してホスト・コンピュータからダウンロードされても
よい。
更に、システム・コントローラ・モジュール16は命令
に従ってプログラム実行モジュール18に以萌に記憶し
たプログラムを実行する。編集には、典型的なものとし
て、コントロール・プログラムの部分的な付加、削除、
及び変更が含まれる。
コントロール・プログラムの複数部分は変更を行なう端
末装置24にアップロードされる。次に、変更された部
分はコンパイルされ、システム・コントローラ・モジュ
ール16にダウンロードされる。この変更はシステム・
コントローラ・モジュール16を介して対応するプログ
ラム実行モジュール18に対して行なわれる。システム
・コントローラ・モジュール16では、ソフトウェア・
ルーチンが記憶したコントロール・プログラムにおける
変更した複数部分に入る。この編集処理については、以
下で詳細に説明する。
更に、外部端末装置及びローカル・エリア・ネットワー
ク28に対するプログラマブル・コントローラ10の通
信インタフェースをするために、システム・コントロー
ラ・モジュール16も、例えばシステム・ステータスの
表示、及びバックブレーン11を介して中間モジュール
との通信をするためのシステム・ハウスキーピング機能
を実行する。
先に説明したように、コントロール・プログラムはプロ
グラム実行モジュール18のうちの異なる一つにより記
憶され、かつ実行される。これらのモジュールはそれぞ
れコントロール・プログラムのうちの特定の一つを同時
に実行することができる。この実行中に、プログラム実
行モジュール18はI10走査モジュール20のメモリ
30にある入力イメージ・テーブルから検知i置のステ
ータスを読み出し、I10走査モジュール2oにおける
出力イメージ・テーブルへそのメモリからの出力ステー
タス会データを書き込む。
コントロール・プログラムを実行するプログラム実行モ
ジュール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
に送出される。システム・コントローラ・モジュール1
6がコントロール・バス21のうちの一つから前記アク
セスを許可する信号を受は取ると、内部コントロール回
路45は複数組の双方向伝送ゲート44及び46を介し
てアドレス・バス42及び43をバックブレーン11に
接続する。システム・コントローラ・モジュール16の
ような他のモジュールがプログラム実行モジュール18
にデータを送出すると、内部コントロール回路45はコ
ントロール・バス21から信号を受は取って、データ・
バス42及びアドレス・バス43をデータ・バス22及
びプログラム実行モジュール18の残りの部分はアドレ
ス・バス23に接続するように指令を出す。
コントロール・バス41〜アドレス・バス43にのみ接
続される。内部バス・システムはマイクロプロセッサ4
30周辺に構築されており、マイクロプロセッサ48は
32ビツトのモトローラ68020マイクロプロセツサ
を有するものでもよい。従来、ビット・コ・プロセッサ
は、「機能チャート・インタブリータを有するプログラ
マブル・コントローラ」と題して1985年3月28日
に出願された係属中の米国特許出願用717゜221号
に説明されているように、プログラマブル・コントロー
ラに用いられ、ハードウェア結線により、異なるサブ・
セットのラダー・プログラム命令を実行していた。
3つのプロセッサ装置、即ちマイクロプロセッサ48、
浮動小数点コ・プログラム5o及びビット・コ・プロセ
ッサ52は直列に動作してコントロール・プログラムに
含まれている特殊な命令を実行する。マイクロプロセッ
サ48はラダー・コントロール・プログラムの実行を開
始することができる。マイクロプロセッサ48が浮動小
数点の演算関数を検出したときは、浮動小数点コ・プロ
セッサ50がエネーブルされ、オペランドがマイクロプ
ロセッサ48から浮動小数点コ・プロセッサ50に転送
される。マイクロプロセッサ48がプログラムの実行を
再開する時点で演暮処理が終了するまで、浮動小数点コ
・プロセッサ5oは処゛理機能を引き継ぐ。ラダー・コ
ントロール・プログラムのラングがビット処理を要求す
ることは(即ちビット・コ・プロセッサ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つの内部バス即ちコントロール・バス4
1〜アドレス・バス43に接続されている。ROM54
はマイクロプロセッサ48、浮動小数点コ・プロセッサ
50及びビット・コ・ブロセツナ52用のラン時間ライ
ブラリ・ルーチンと定数とを格納している。プログラム
実行モジュール18が実行するユーザ定義のプログラム
はRAM56に記憶される。RAM56はオペランド及
びプログラム実行モジュール18が実行した種々の計算
結果も記憶する。
第4図は一般化した各プログラム実行モジュール18の
RAM56のデータ構造を表わす。
RAM56はRAM56の他の部分に対するポインタを
含むディレクトリ部60を格納している。
プログラム実行モジュール18は種々のカウンタ、タイ
マ及び中間計算値の記憶位置を有するそれ自身のデータ
・テーブル61を備えている。
プログラム実行モジュール18のRAM56のかなりの
部分がプログラム・メモリに割り付けられている。これ
らのプログラムにはプログラム実行モジュール18が処
理すべきコンパイル済みのコントロール・プログラム、
独立したバックグラウンド・タスク及び種々のインタラ
ブド・ルーチンが含まれている。異なるプログラムのデ
ィレクトリ62が設けられている。コントロール・タス
クを正しく実行するために、領[63内には、コントロ
ール・プログラムの実行順序を指定する機能チャート記
述子を含むサポート・ファイルが備えられている。プロ
グラム実行モジュール18のRAM56の部分は独立し
たバックグラウンド・プログラム64、インタラブド・
ルーチン65及びユーザ・コントロール・プログラム6
6を記憶するために設計されている。ユーザ・コントロ
ール・プログラム66の部分に続いて空き空間67であ
る。
以上説明したプログラム実行モジュール18は、I10
走査モジュール20によりリモートI10ラック26と
データの交換をする。第1図及び第2図に示すように、
I10走査モジュール2oはプログラマブル・コントロ
ーラ10を直列データ・リンク13を介してリモートI
10ラック26に接続する(1リモートI10ランク2
6のみを示す)。リモートI10ラック26は、センサ
31に接続され、かつ波間tlOi!Q備上の装置を動
作させる個別的なインタフェース・モジュール29を備
えている。リモートI10ラック26は通常の設計のも
のであり、そのインタフェース・モジュール29は交流
又は直流入出カモジュールを備えることもできる。リモ
ートI10ラック26は通常の通信技術を用い、直列デ
ータ・リンク13を介してデータを交換する標準的な通
信アダプタ27を備えている。米国特許筒4.413.
319号はこのようなリモートI10ラック26と、I
10走査モジュール2oとの通信を説明している。
I10走査モジュール2oは、I10走査ブロセツザ2
5の制御に従って、周期的にリモートI10ラック26
にセンサ入力データを要求する。
これらのセンサ入ノフデータはI10走査モジュール2
oのメモリ30に設けられている入力イメージ・データ
・テーブルに記憶される。各I10走査モジュール20
はコントロール・バス21〜アドレス・バス23に接続
されている。従って、プログラム実行モジュール18を
I10走査モジュール20の入力イメージ・データ・テ
ーブルを直接アクセスすることができる。米国特許筒4
,413.319号に説明されているように、いくつか
の型式の複数のセンサがプログラマブル・コントローラ
10に複数ブロックのデータを供給する。
メモリ30の一部はこのように転送された複数ブロック
のデータを記憶するように設計されている。
I10走査モジュール2oは、プログラム実行モジュー
ル18によるデータ・アクセスがリモートI10ラック
26からデータを収集する際に与える影響を最小化する
ように、物理的に構築されている。
更に、プログラム実行モジュール18はI10走査モジ
ュール20のメモリ30をアクセスして被制御設備上の
装置を動作させるための出力ステータス・データを記憶
する。これらの出力ステータス・データはメモリ30の
出力イメージ・テーブルに格納される。プログラム実行
モジュール18の出力イメージ・テーブル内にある更新
されたデータは、規則的な間隔それぞれのリモートI1
0ラック26に転送されてこれに接続されているアクチ
ュエータを作動さける。
プログラムの形成及び実行 従って、以上説明したプログラマブル・コントローラ1
0は、いくつかの型式のユーザ定義プログラム、即ちコ
ントロール・プログラム、独立したバックグラウンド・
プログラム、インタラブド・ルーチン及び異常処理ルー
チンを実行する。これらのプログラムのうちの種々のも
のが各プログラム実行モジュール18に割り付けられて
処理される。独立バックグラウンド・タスクはユーザ・
プログラムである。このユーザ・プログラムは、実行が
コントロール・プログラムに従属しており、例えばパフ
ォーマンス報告のような長いが、時間には厳密でない処
理のために用いることができる。
インタラブド・ルーチンは与えられた事象が発生したと
きに高い優先度の処理を実行できるようにさせ、一方異
常処理ルーチンは誤り状態からの円滑に復帰できるよう
にする。
被制御設備を動作させるコントロール・プログラムは、
逐次的な機能チャート及び−組のユーザ・コントロール
・プログラムを備えている。この機能チャートは198
5年5月に出願された米国特許筒717,221号に説
明されている記述子ファイルと同様の一組の記述子ファ
イルに減縮される。機能チャートのソース・データは、
必要ならば編集できるように保持される。各記述子ファ
イルは機能チャートにおける1ステツプに対応しており
、ユーザ・コントロール・プログラムのうちの一つを指
定してそのステップの機能を実行する。これらの記述子
ファイルの記憶及び編集には、通常の技術が用いられる
。ユーザ・コントロール・プログラムは、典型的なもの
として、通常のラダー・プログラムである。しかし、プ
ログラマブル・コントローラはユーザ・コントロール・
プログラムのコンパイルされたバージョンを実行するの
で、BASlGのようにイ也のコンピュータ言語を用い
てこの型式のプログラムのソース・コードを発生させて
もよい。
先に述べたように、プログラマブル・コントローラ10
は、システム・コントローラ・モジュール16に直接接
続されているプログラミング用の端末装置a24を介し
て、又はローカル・エリア・ネットワーク28に接続さ
れているパーソナル・コンピュータ又はホスト・]ンビ
ュータを介してプログラムされている。これ゛らの端末
装置及びコンピュータは機能チャート及びラダー型式の
コントロール・プログラムを書くために必要なプログラ
ムを備えている。プログラマは図面的にコンピュータ端
末装置のスクリーン上に機能チャートを構築する。機能
チャートを発生するソフトウェア及び技術は従来のパー
ソナル・コンピュータにより実用化されていたものと同
様である。
第5図は、プログラミングの端末装置24上に表示され
た時の機能チャートの例を示す。ステップ100のよう
な各機能チャートのステップは、矩形のブロックにより
表わされている。機能チャートの初期ステップ、即ちス
テップ1oOは、二重ブロックにより表わされている。
各ブロック内には、ステップの機能を実行すべきプログ
ラム実行モジュール18(例えば、Pl又はP2)が示
されている。第1のステップ100は、Plを表わすプ
ログラム実行モジュールが当該ステップを実行すること
を表わす。更に、ブロック内には、当該ステツ゛ブのコ
ントロール・プログラムを含むプログラム実行モジュー
ル18のRAM56におけるファイル番号が示されてい
る。例えば、ステップ100のコントロール・プログラ
ムはファイル1内にある。
機能チャートにおける各ステップには、例えば遷移10
2のような遷移が続く。この遷移は前のステップが終了
したときの状態を指定する。この遷移は一つのラングを
有するラダー・プログラムにより定められてもよい。こ
の遷移は、別個のファイル、例えば遷移102のファイ
ル11に格納される。
第5図の機能チャート例にはここで「構築」と呼ぶいく
つかの異なる部分を含む。第1の構築はシーケンス型式
であり、処理ステップ100.103及び遷移102か
らなる。この構築におけるステップは逐次的に実行され
る。ステップ103に続いて、2以上のプログラム分岐
、この場合はステップ107〜109を含む3分岐から
なる選択構築がある。エントリ遷移104〜106のう
ちでどれが最初に発生するかに従って、分岐のうちの一
つのみが選択されて実行される。同じような一組のプロ
グラム分岐が機能チャートからずっと下った同様の構築
に含まれている。しかし、同時構築の遷移条件110が
発生すると、全ての分岐におけるステップ111〜11
3は一斉に実行される。プログラム実行モジュール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のステータスを
表わしている。ラングの真理値はRAM58のフラグに
より表わされている。ラングが真であると判明したとき
は、シンボル83は出力イメージ・テーブルにおける第
9データ・ワードをセットすること、即ちハイの論理レ
ベルに変更して、対応する動作装置をターン・オンにす
ることを表わしている。ラングの1が偽であったときは
、指定した入力ビットがセットされておらず、センサ・
スイッチが開放されていることを表わしており、出力イ
メージ・テーブルのビットをOにリセットすることによ
り、対応する被制御設備の動作装置がターン・オフされ
ることになる。先に説明したように、入出力イメージ・
データ・テーブルのワードは、I10走査モジュール2
0のメモリ30に記憶されている。ラングの2も同様に
描かれており、パーソナル・コンピュータにおけるタイ
マの動作を制御している。
オペレータがラダー図を構築した後、ラダー図が端末装
置24により構築されてプログラマブル・コントローラ
10の機械語命令のプログラム・ファイルを発生する。
各プログラム・ファイルは第7図に示す構造を有する。
プログラム・ファイルの第1領域70にはプログラム・
ファイル番号に基づいた検定ワードを含むファイル・ヘ
ッダが設けられている。更に、ファイル・ヘッダはファ
イルが編集されたか、プログラムには実行するように計
画されているか、現在実行中かを表わすステータス・ワ
ードが含まれている。更に、ファイル・ヘッダはプログ
ラムの型式を識別する。ポインタは他のプログラム・フ
ァイル領域の開始アドレスのファイル・ヘッダにも含ま
れている。ファイル・ヘッダの次にはプログラム実行モ
ジュール18のプログラム命令を含む領域である。プロ
グラム命令領域は、ラダー・コン1〜ロール・プログラ
ムの各ランクのためのオブジェクト・コード命令を含む
複数区間に副分割される。複数のラング区間は実行順序
により逐次記憶される。次に、プログラム・ファイルは
ラング・デイレクトリフ5を備えている。このラング・
デイレクトリフ5はプログラム命令を構築し、各ラング
に関連するデータを保持しているラダー・プログラム内
のラング数を表わしている。各ランクにおいて、ラング
・デイレクトリフ5はラングの現在数と、ラングを挿入
したか、削除したか、又は変更したかを表わすフラグと
、そのようにしたときは編集前のもとのラング数とを有
する。更に、各ラングのエントリは、プログラム・ファ
イルの開始からラングの開始までのワード数のオフセッ
トを与える。このオフセットは編集プログラムが与えら
れたラングの命令を配置できるようにする。プログラム
・ファイルにおけるラング・ディレクトリの次には、命
令ラベルと、プログラム内のそれらの位置を含むテーブ
ル76がある。
第6図のラング・ディレクトリの第1ラングをコンパイ
ルすると、その全ての処理がビット・コ・プロセッサ5
2の命令により表わされる。各オブジェクト・コード命
令のアツセンブラ言語の二−モニツク命令は、 SOR[オフセラトコ XIC,I  5.3 OTE、1  9.2 である。
全てのラングの最初のフィールド命令はラング・コマン
ドSORの開始である。このフィールド命令はラング命
令の開始から第1の出力命令(この場合は第3命令OT
E、1.)までのワード数を表わしたオフセットを有す
る。出力のオフセットは試験される多数の入力センサを
有する更に複雑なラングにおいて用いられる。このよう
な複雑なラングにおいて、入力のうちの一つが偽である
と判断されたときは、オフセットを用いて第1の出力命
令へ直ちにジャンプし、試験されるべき割り込み入力を
バイパスする。入力のうちの一つが偽であるときは、全
ラングが偽であり、出力ステータスを直ちに決定するこ
とができるので、このようなオフセットの使用によりラ
ングの実行速度が早くなる。
第1ラングの次のアツセンブラ言語命令はXIC,Iで
ある。このXIC,Iは、制御用語において、入力セン
サ・スイッチを開状態について試験することを意味する
。第2命令における最初の数は、入力スイッチの状態を
表わしたビットを含むワードに対する入力イメージ・デ
ータ・テーブル内のエントリのオフセット数である。こ
の場合のオフセットは第5ワードに調べるべきビットが
含まれていることを表わしたものである。更に、入力ワ
ード・オフセットは、この入力ワードを記憶しているI
10走査モジュール20も表わしている。アラセンブラ
ー言語の第2命令の最後の数(即ち、3)は試験すべき
入力ワードのビットを表わしている。
第1ラングの第3命令は出力コマンドOTE。
■である。この出力コマンドOTE、Iは出力ワードを
指すオフセットを有する。この出力ワードは、ラングが
真のときはセットされるべきビット、ラングが偽のとき
はクリアされているビットを含む。この場合のオフセッ
トは、出力イメージ・テーブルにおける第9ワードを表
わし、またその第2ビツトがラング1の真のときにセッ
トされるべきことを表わしている。更に、出力命令の数
字部分は、オペレーティング・システムが出力データ・
ワードを含むI10走査モジュール20を決定すること
ができるようにする。
最初のラングをコンパイルした後、この命令を第7図に
示す対応するプログラム・ファイルのラング部分71に
記憶する。ラング1をビット・コ・プロセッサ命令によ
り完全に表わすことができるので、プログラム・ファイ
ルのラング部分71は他のプロセッサの命令、又はソー
ス・コードのトークン化したバージョンを含むことはな
い。
第6図のラダー図上の第2ラングは、ビット・コ・プロ
セッサ52により全面的に実行可能とされるものではな
い。このラングの場合に、ビット・コ・プロセッサ52
は入力イメージ・データ・テーブルの第5ワードの第3
ビツトを調べる。また、マイクロプロセッサ48は、こ
のビットがセットされていれば、第1タイマを起動させ
る。ラング2により定められた機能を実行するアツセン
ブラN TRの二−モニツク命令は、 (a)  SOR[オフセット] (b)  XIC,I  Fl、3 (C)  STP  [オフセット] (d)  MOVE、Lタイマ−アドレス、 −(a7
)(e)  JSRタイマ1 (f)  MOVE、L [オフセット] 、 (a2
)((1)  MOVE、 L(a2)、 a。
(h)  J M P  (ao) (i)   dw      2117(j)dl[タ
イマ・アドレス] (k)  dw   16352 このラングのアツセンブラ言開命令は説明を簡単にする
ために簡略化されていた。付表はラング2の許可命令、
及び対応するオブジェクト・コードの完全なリストを備
えている。
先に説明したように、プログラムの各ラング区間は、ラ
ングの開始及び第1出力命令に対するオフセット(この
場合は第3命令のアドレスに対する指示を指す。)を表
わすアッセンブラ言語命令SORから開始する。第2命
令は調べるべき入力センサ・スイッチを表わしており、
この場合はラング1における第2ラングと同一である。
しかし、第1タイマをターン・オンさせるラングの出力
機能は、ビット・コ・プロセッサ52が実行可能な処理
ではない。従って、ラング2の第3命令はSTPとなっ
ている。STPは、ビット・コ・プロセッサ52が停止
し、プログラムの実行をマイクロプロセッサ48に渡す
べきことを表わしている。この命令は、マイクロプロセ
ッサ48に次の命令を開始するように知らせた後、ビッ
ト・コ・プロセッサ52を休止状態に入らせる。STP
命令に関連したオフセットは、トークン化したソース・
コードを含むプログラム°・ファイルの部分の先頭を指
している。このオフセットはプログラム実行の過程では
用いられないが、ラダー図を再構築するときに、プログ
ラム・エディタにより用いられて、マイクロプロセッサ
48用の割り込みのオブジェクト・コード命令をこれら
の命令のソース・コードのトークン化バージョンへ飛び
越させる。
引き続き第3図を参照すると、命令(d)〜(h)がマ
イクロプロセッサ48により実行され、ラングが真のと
きは、第1タイマを起動させる。タイマ機能はROM5
4に記憶されているラン時間ライブラリ・ルーチンによ
り実行される。このルーチンは、活性化されると、RA
M56のアドレスに記憶されている値を周期的に増加さ
せる。第4命令は「長い移動」であり、これはRAMア
ドレスをセーブしてプログラム実行モジュール18の「
スタック」のタイマ1を増加させる。ラング2の第5命
令はタイマ・ルーチンを呼出し、ラングが真のときはタ
イマを起動させ、ラングが偽のとぎはタイマをリセット
させる。タイマ・ルーチンはスタックのタイマ値のRA
Mアドレスを切り離し、そのアドレスの内容を周期的に
増加させる。
命令(f)〜(h)は、マイクロプロセッサ命令の各セ
ットの終りで用いられ、実行をビット・コ・プロセッサ
52に戻す。全てのラングの最初の命令SORはビット
・コ・プロセッサ命令であるので、ビット・コ・プロセ
ッサ52はプログラム・ファイルの各区間におりる実行
可能なコードの終りで再び活性化されなければならない
。これに代って、ラング2が更に複雑であり、かつ第6
図のタイマ1のブロック右にビット・コ・ブo tツサ
命令があるときは、付加的なピッ]−・コ・プロセッサ
命令が命令(k)の侵のラング・ファイルに存在するこ
とになる。この場合に、命令セット(f)〜(h)はビ
ット・コ・プロセッサ52が「活性状態」となるように
指令して、次のラングではなく、これらの命令の実行を
開始させる。
第2ラングの命令(f)では、次のプール代数ビットの
論理命令に対するオフセットをビット・コ・プロセッサ
52のプログラム・カウンタにロードさせる。これが発
生したときは、ビット・コ・プロセッサ52が活性状態
となり、自動的に制御信号をマイクロプロセッサ48に
送出して、マイクロプロセッサ48が休止状態に移動す
るように指令する。ビット・コ・プロセッサ52は、他
のSTP命令を検出するまで、次のラングを実行し続け
る。この時点で、マイクロプロセッサ48が活性状態に
なる。ビット・コ・ブロセッ晋す52がプログラム・フ
ァイルにおける命令をかなり先の命令(Ω)まで実行し
たとしても、マイクロプロセッサ48が休止状態に入っ
た時点で、マイクロプロセッサ48のプログラム・カウ
ンタは保有していた命令(0)のアドレスを未だ持って
いる。命令(0)において、マイクロプロセッサ48は
ビット・コ・プロセッサ52のプログラム・カウンタの
現在値を取り込み、命令(h)でプログラムにおける当
該位置ヘジャンブする。従って、マイクロプロセッサ4
8は、ビット・コ・プロセッサ52がコントロール・プ
ログラムにより後に中止する実行を開始する。
先に説明したように、各ビット・コ・プロセッサの命令
はこれを発生したソース・コード命令と1対1に対応す
る。その結果、その後にプログラムを編集したときにこ
れらの命令を容易にデコンパイルして対応するソース・
コードを発生することができる。しかし、マイクロプロ
セッサ命令は、弗型的なものとして、複雑な数学的又は
論理的な処理を実行する。従って、一連のマイクロプロ
セッサ命令は一つのソース・コード命令に対応させるこ
とができる。その結果、オブジェクト・コードからソー
ス・コードの再構築を都合よくするために、コンパイラ
によりマイクロプロセッサ命令のソース・コードに関連
するデータを発生し、各マイクロプロセッサ命令グルー
プに続くプログラム・ファイルの複数のラング区間に記
憶する。
プログラム・ライン(1)〜(k)は、マイクロプロセ
ッサ48が実行する命令セット(この場合はラング2の
タイマ部のソース・コード)のトークン化バージョンを
表わしている。プログラム実行モジュールはこれらのプ
ログラム・ラインを実行することはない。プログラム・
ラインmはタイマ出力命令及びライン(j)を含むラン
グがタイマ1の値のRAMアドレスを表わすことを示し
ている。プログラム・ライン(k)はトークン化したソ
ース・コードの終りを表わす固定命令である。以下で詳
細に説明するが、プログラム・エディタがこれらの3ラ
インを用いてラングのソース・コード及びグラフ表示を
再構築する。
第7図は例示するラダー・プログラムのラング部をプロ
グラム・ファイルに記憶する方法を示す。
プログラム・ファイルのラング1のラング部分71は全
て先に説明したビット・コ・プロセッサ命令からなる。
ラング2のプログラム・ファイル・区間は3つの区間7
2〜74からなる。第1の区11172はビット・コφ
プロセッサ命令(命令1〜3)を有する。第2の区間7
3はマイクロプロセッサ48(命令4〜8)の命令を有
し、第3の区間はマイクロプロセッサ命令(命令9〜1
1)のトークン化したソース・コードを有する。プログ
ラム・ファイルの第2ラングの区間の編成は、ラダー・
プログラムから種々の命令をコンパイルした順序に対応
する。
端末装置24により全ラダー・プログラムをコンパイル
し、かつプログラム・ファイルを構築すると、プログラ
ム・ファイルを実行するように指定されたプログラム実
行モジュール18のRAM56にプログラム・ファイル
をダウンロードする。
この時点で、ダウンロードしたプログラムを参照するよ
うに、RAM56のディレクトリ62(第4図)を更新
する。
本発明は、デコンパイルしてもとの編集用ラダー・プロ
グラムを再生することはできないオブジェクト・コード
命令用のソース・コードをトークン化してバージョンを
記憶する。即ち、デコンバイラーが解釈可能なこれらの
オブジェクト・コード命令には、ラングの図形シンボル
を発生する方法が多数ある。特に、先に説明したように
、ビット・コ・プロセッサ52の機械語命令はラダー・
プログラムのラングにおいて用いられたシンボルに1対
1で対応する。従って、これらの命令は記憶すべきトー
クン化バージョンを必要としないが、デコンパイラーが
直接解釈して対応するラダー・ラング部分を発生させる
ことができる。しかし、マイクロプロセッサ48又は浮
動小数点コ・プロセッサ50が実行すべきラダー・ラン
グの複雑な数学的な処理及び出力処理は、デコンパイラ
ーがラダー図ラングの当該区間を再構築するために、ソ
ース・コードのトークン化バージョンをプログラム・フ
ァイルに記憶させることが必要である。
ソース・コードのコンパイルにおいて、コンパイラはジ
ャンプ命令を挿入し、このジャンプ命令によってオブジ
ェクト・コードの実行がトークン化ソース・コードを含
むラングのプログラム・ファイルの当該区間を飛び越さ
せる。これは各ラングのトークン化したソース・コード
をラングの機械語命令に隣接して記憶させることができ
るようにし、コンパイルしたプログラムの編集に有用で
ある。
プログラムのl1il! 前にコンパイルしたラダー・プログラムを編集するとき
は、オペレータが端末装置24を用いて変更すべぎラダ
ー・プログラムを含む特定のプログラム実行モジュール
18をアドレス指定する。
次に、ラダー・プログラムを含むファイルは、プログラ
ム実行モジュール18からシステム・コントローラ・モ
ジュール16を介して端末装置24にアップロードされ
る。次いで、端末装置24のエディタ・ソフトウェア・
パッケージ内のデフンバイラ・プログラムは、アップロ
ード・プログラムを処理してラダー・プログラムのソー
ス・コード・バージヨンを発生し、これを端末袋@24
のCRTスクリーン36上に通常のラダー・プログラム
として表示する。
次に、オペレータにラング毎にラダー図を編集する機会
が与えられる。特に、オペレータは、端末キーボード3
4を用いて存在するラングを変更し、新しいラングを加
え、又は古いラングを削除することができる。各ランク
は、その編集を完了すると、端末装置24によりコンパ
イルされて対応する一組の機械語命令を発生ずる。次に
、この命令セットはブ0グマブル・コント0−ラ10に
ロードされて、プログラム実行モジュール18のRAM
56(第4図)のプログラム・ファイルに挿入される。
第10図のフローチャート及び第2図及び第3図のブロ
ック図を先ず参照して編集処理を詳細に説明しよう。ス
テップ120において、プログラマブル・コントローラ
1oのオペレータは端末キーボード34を介してプログ
ラム・ファイルを選択し、ファイル名を入力することに
より端末装置24上に表示させる。このプログラム・フ
ァイルは独立したバックグラウンド・タスク又はインタ
ラブド・ルーチンでもよいが、編集処理をラダー型式の
ユーザ・コントロール・プログラムのうちの一つに関連
して説明する。プログラム・ファイルを選択した後、ス
テップ122において端末装置24はプログラマブル・
コントローラ10に要求を送出し、プログラム・ファイ
ル番号及びプログラムを記憶しているプログラム実行モ
ジュール18を識別する。
システム・コントローラ・モジュール16は、要求に応
答して、指定されたプログラム実行モジュール18にコ
マンドを送出してこれに端末装置24ヘフアイルの一部
を送出するように命令する。
次に、ステップ126において、ラダー図のいくつかの
ラングのプログラム命令をプログラム実行モジュール1
8から端末装置24にアップロードする。アップロード
されたラング数は、端末装置24のCRTスクリーン3
6上に同時に表示可能な吊の関数である。各ランクにお
いて、ビット・コ・プロセッサ命令及びトークン化ソー
ス・コードのみが端末装置24に送出される。アップロ
ードの際に、プログラム実行モジュール18のソフトウ
ェアは命令における物理アドレスを論理アドレスに変換
する。アップロードされた命令は端末装置24内のメモ
リに記憶される。
ステップ128において、端末装置24内のソフトウェ
アは命令をデコンパイルとしてソース・コード命令と、
CRTスクリーン36上の各ラングの図形表示とを発生
する。第7図に示すプログラム・ファイルを参照すると
、デコンパイルは最初のラングのビット・コ・プロセッ
サ命令から開始される。これらのオブジェクト・コード
命令はソース・コード命令及びそのラダー図シンボルと
1対1で対応するので、デコンパイラのソフトウェアは
それぞれを調べ、スクリーンの表示ライン上に当該ラン
グに対応するシンボルを挿入する。
例えば、デコンパイラは、SOR命令を検出すると、ス
クリーン上に新しいラングの表示を開始する。第6図の
ラダー図の場合に、ラング1のシンボルの命令は、先に
説明したXIC,I及びOTE、lである。XIC,I
命令は入力スイッチのシンボルに対応し、またOTE、
Iは出力シンボルに対応する。
ビット・コ・プロセッサ命令及びマイクロプロセッサ命
令を含むラングのプログラム命令、例えばラング2を検
出したときは、別のデコンパイル方法を用いる。例えば
、第6図、第7図及び先に挙げた二−モニツク命令を参
照すると、ラング2にはXIC,Iのビット・コ・プロ
セッサ命令が含まれており、入力スイッチ状態の試験を
表わしている。この命令を直接デコンパイルして対応す
るソース・コード及び図形シンボルを発生することがで
きる。しかし、タイマ1をターン・オンさせるラング2
の出力区間は、いくつかのマイクロプロセッサ命令によ
り表わされる。ラング2のプログラム・ファイル区間に
おけるビット・コ・プロセッサ命令の終りには、停止ビ
ット・コ・プロセッサ命令STPがある。端末装置24
におけるデコンパイラ・ソフトウェアは、この命令を検
出すると、プログラマブル・コントローラから次の命令
区間はソース・コード命令のトークン化バージョンを確
認する(マイクロプロセッサのオブジェクト・コードを
端末装置24にアップロードしないことに注意すべきで
ある。)。その結果、デコンパイラのソフトウェアはト
ークン化したソース・コードを解釈してもとのソース・
コード、及び対応の図形シンボルを発生し、端末装置2
4のスクリーン上に表示するルーチンへ分岐する。この
デコンパイルは、全てのアップロードしたプログラム命
令をソース・コードに変換して表示するまで、−度に−
ラングを継続する。
ラダー・プログラムのグループが端末装置24上に表示
されると、ラングのうちの一つを選択して編集してもよ
く、又はオペレータが端末キーボード34を用いてラダ
ー図をスクロールさせて編集位置に到達してもよい。ス
テップ130において、オペレータがプログラムにより
スクロールを選択したときは、ステップ132によりプ
ログラマブル・コントローラ1oにコマンドを送出し、
プログラム実行モジュール18から次のラングのプログ
ラム命令を受は取る。次に、処理はステップ126に戻
ってこのラングのオブジェクト・コード命令をアップロ
ードし、ステップ128によリゾコンパイルをする。
オペレータが編集するラダー図の部分に端末装置24の
カーソルを配置し、適当なキーを押すことにより、当該
部分を選択したときは、処理がステップ133に進む。
ステツ°ブ133では、プログラマブル・コントローラ
に要求を送出してその編集資源へのアクセスを試行する
。同時に、いくつかのプログラミングgi胃がプログラ
マブル・コントローラ10によりプログラムの編集を試
行することができるので、システム・コントローラ・モ
ジュール16によるチエツクは、−時に一装置のみが編
集資源へアクセスできるようにする。編集資源を端末装
置24に割り付けると、編集処理はステップ134に進
む。次いで、前のプログラマブル・コントローラが使用
したものと同様の方法により、端末装置24によりラダ
ー図を編集する。カーソルを用いてラングを削除し、現
存するラングを変更し、又は完全に新しいものを付加す
ることかできる。第8図及び第9図は第6図のラダー図
の変形バージョンを示しており、3型式の全ての変更に
関連している。
第8図の一番上のラングは、第6図におけるラング1に
対応し、電iI!l1I8o及び81に沿って文字りに
より示すように、省略のマークを示した。
編集処理はラング毎に実行されるので、ラングの省略を
示したときは、ステップ138により対応するプログラ
ム実行モジュール18の編集ルーチンにコマンドを送出
する。このプログラム実行モジュール18の編集ルーチ
ンは、RAM56のプログラム・ファイルから当該ラン
グ命令を除去する。プログラム・ファイルにおける次の
ラングは上方に移動して省略により生じたギャップを埋
める。プログラム・ファイルの最初の変更は、フラグを
ファイル・ヘッダにセットさせて、編集を実行したこと
を示す。次いで、プログラム・ファイルにおけるラング
・デイレクトリフ5(第7図)が更新される。編集の結
果、必要ならば、プログラム・ファイルのラベル・テー
ブル76も調整される。これに代って、全編集処理の終
わりでラングを実際に除去し、オペレータが前の編集の
取り消しができるようにする。
第8図の中段のラングは、第6図におけるラング2の未
変更バージョンに対応する。ラング2は変更されていな
いので、電源線80及び81上の文字により囲まれては
いない。第8図の一番下に示すラングは、編集処理によ
り挿入されたものである。このラングはもとのラダー図
の構築と同様の方法で端末装置24により図形的に構築
される。
挿入されたラングは、電源線80及び81上の文字Iに
より表わされる。新しいラングが最終形式であるときは
、ステップ136によりオペレータが端末装置24の編
集ソフトウェアに指示してラングをコンパイルする。端
末装置24によるコンパイルが終了した後、ステップ1
38によりプログラマブル・コントローラ10にコマン
ドが送出され、プログラム実行モジュール18、プログ
ラム・ファイル、新しいラング数及び新しいラングの大
きさを指定する。プログラム実行モジュール18は、こ
のコマンドに応答して、新しいラングを記憶するRAM
56の編集領域の適当な位置にギャップを設ける。この
時点で、ラング・デイレクトリフ5及びラベル・テーブ
ル76はギャップを設けたファイルのアドレスにより更
新される。
特に、ラングを再度番号付けして、新しいラング数がラ
ングの現在順序を表わす。新しいラングのラング・ディ
レクトリ・エントリのステータス・フィールドは、これ
が挿入されたラングであることを表わしている。機械語
命令及びトークン化ソース・コードはこのギャップにダ
ウンロードされる(@き込まれる)。更に、新しいラン
グが必要とするデータ、例えばラングにおけるタイマ又
はカウンタの現在値は、RAM56のデータ・テーブル
61にダウンロードされる。ダウンロードの完了により
、GAP  COMPLETE(ギャップ完了)メツセ
ージが端末装置24からプログラマブル・コントローラ
10に送出される。
第9図は、現存するラングを変更したときの端末表示装
置を示す。ラングの新旧のバージョンが共に表わされて
いる。図示のように、第6図のラング2は第2のセンサ
・スイッチの試験を含むように編集されていた。変更の
ためにラングを端末装置24により選択したときは、ラ
ダー図の直ぐ下に複製が表示され、複製したラング上で
変更を実行する。ラングのもとのバージョンは文字Rに
より囲まれており、置換され゛ていることを表わしてい
る。また、新しいバージョンは文字1により囲まれてお
り、旧ラングに代わってラングを挿入することを表わし
ている。
ラングに対する変更が終了すると、このラングはビット
・コ・プロセッサ、マイクロプロセツサ、及び先に説明
した挿入ラングについてのトークン化ソース・コードに
コンパイルされる。変更ラングのコマンドはシステム・
コントローラ・モジュール16を介して正しいプログラ
ム実行モジュール18に送出される。このコマンドはプ
ログラム実行モジュール18及び編集が実行されるプロ
グラム・ファイル番号を表わす。ラング番号及び編集し
たバージョンの大きさもコマンドと共に送出される。編
集したラングの大きさに適応するために、プログラム実
行モジュール18内の編集ルーチンは、変更ラング・コ
マンドに応答して、通常のギャップ又はギャップなし技
術によりラング用のメモリ空間を増加又は減少させる。
ラング・ディレクトリ及びラベル・テーブルも講整され
る。
ステップ138により、変更されたラングの命令及びト
ークン化ソース・コードは、指定されたプログラム実行
モジュール18内のRAM56にダウンロードされ、命
令をもとのラングの命令に置換する。このときに同時に
、要求されたデータ・テーブルのエントリが作成される
。全てのラング命令をダウンロードした後、端末装置2
4によりGAP  COMPLETEがプログラム実行
モジュール18に送出される。
各ラング編集が終了した後、ステップ140により第1
0図に示した編集処理は、オペレータが他のラングの編
集を希望しているか否かを調べる。
希望しているのであれば、処理はステップ130に戻り
、次のラングを変更する。ラダー図に全ての変更を実行
すると、ステップ142によりオペレータに質問をして
付加的な編集を実行するか否かを表わす。
その通りであれば、 編集ルーチンは ステップ120に戻り、 その通りでなければ処理 を終了する。
の冑噴のトψΦOw−FJυ璧−Φト。
−一−P−?−〜〜〜へへ〜四Nへ [F]O1+へ0臂叩口N へのυののりのQの
【図面の簡単な説明】
本発明の一実施例を示す図において、 第1図は本発明に関連するプログラマブル・コントロー
ラの斜視図、 第2図は第1図に示すプログラマブル・コントローラの
部品の概要ブロック図、 第3図は第2図に示すプログラマブル・コントローラの
プログラム実行モジュールのうちの一つの概要ブロック
図、 第4図はプログラム実行モジュールのメモリ・データ構
造のブロック図、 第5図は一実施例のプロセス・フントロール機能図、 第6図は第1図の端末装置上に表示したラダー図型式の
コントロール・プログラム例の図、第7図は典型的なラ
ダー型式のコントロール・プログラム用のプログラム・
メモリ・ファイルを表わす図、 第8図はプログラミング端末装置のスクリーンに現われ
る編集したラダー型式のコントロール・プログラムを示
す図、 第9図は編集したラダー型式のコントロール・プログラ
ムの他の変形を示す図、 第10図は本発明のプログラム編集プロセスのフローチ
ャートである。 10・・・・プログラマブル・コントローラ、18・・
・・プログラム実行モジュール、20Φ・・・I10走
査モジュール、 25番・・・I10走査プロセッサ、 26・・・・リモートI10ラック、 29−・・・インタフェース・モジュール、304・・
・メモリ、 48・・・・マイクロプロセッサ、 50・・・・浮動小数点]・プロセッサ、52−・・・
ビット・コ・プロセッサ 56・・・・RAM。

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 1988-02-29

Publications (2)

Publication Number Publication Date
JPH0210403A true JPH0210403A (ja) 1990-01-16
JPH0680482B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03276305A (ja) * 1990-03-27 1991-12-06 Matsushita Electric Works Ltd プログラマブルコントローラ
US5583989A (en) * 1992-05-28 1996-12-10 Honda Giken Kogyo Kabushiki Kaisha Vehicle control system having program generator and convertor

Families Citing this family (56)

* 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
WO1991003791A1 (en) * 1989-09-01 1991-03-21 Amdahl Corporation Operating system and data base
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 三菱電機株式会社 プログラマブルコントロ―ラの制御プログラムにおけるプログラム内容の修正方法
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 Allen-Bradley Company Inc. 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
EP0553731B1 (en) * 1992-01-23 1999-04-14 Mitsubishi Denki Kabushiki Kaisha Programmable controller
ATE173840T1 (de) * 1992-10-19 1998-12-15 Siemens Energy & Automat Hoch schnelligkeit speicher programmierbar steuerung
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
US6983457B2 (en) * 2000-10-25 2006-01-03 Hitachi, Ltd. Compile method for storing source code within object code
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
US7818457B1 (en) 2001-05-22 2010-10-19 Rockwell Automation Technologies, Inc. Apparatus 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
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
WO2006011474A1 (ja) * 2004-07-28 2006-02-02 Mitsubishi Denki Kabushiki Kaisha プログラマブルコントローラ用プログラム生成装置、プログラマブルコントローラ用プログラム生成方法およびその方法のプログラムを記録した記録媒体
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 南大傲拓科技江苏有限公司 可编程控制器的顺序控制图编程及控制方法
EP2764455B1 (en) 2011-10-05 2022-04-20 Opteon Corporation System and method for monitoring and/or controlling dynamic environments
US12124586B2 (en) * 2013-09-13 2024-10-22 Omnissa, Llc 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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5624606A (en) * 1979-08-07 1981-03-09 Toshiba Corp Programmable controller
JPS57189240A (en) * 1981-05-18 1982-11-20 Toshiba Corp Display device
JPS5856148A (ja) * 1981-09-30 1983-04-02 Fujitsu Ltd プログラム修正処理方式
JPS6061832A (ja) * 1983-09-16 1985-04-09 Hitachi Ltd 演算制御装置

Family Cites Families (7)

* 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
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
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
US4742443A (en) * 1985-03-28 1988-05-03 Allen-Bradley Company Programmable controller with function chart interpreter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5624606A (en) * 1979-08-07 1981-03-09 Toshiba Corp Programmable controller
JPS57189240A (en) * 1981-05-18 1982-11-20 Toshiba Corp Display device
JPS5856148A (ja) * 1981-09-30 1983-04-02 Fujitsu Ltd プログラム修正処理方式
JPS6061832A (ja) * 1983-09-16 1985-04-09 Hitachi Ltd 演算制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03276305A (ja) * 1990-03-27 1991-12-06 Matsushita Electric Works Ltd プログラマブルコントローラ
US5583989A (en) * 1992-05-28 1996-12-10 Honda Giken Kogyo Kabushiki Kaisha Vehicle control system having program generator and convertor

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0210403A (ja) ソース・コードを有するプログラマブル・コントローラ装置及びコントロールプログラムを発生する方法
US4969083A (en) Network programmable logic controller system
JP3407809B2 (ja) コンピュータ・アプリケーション・ソフトウェアの自動化試験システム
US7730450B2 (en) Automatic versioning and data mutation of user-defined data types
US7543281B2 (en) Disabling and conditionally compiling graphical code in a graphical program
US8046738B2 (en) Efficiently developing encoded instructions by tracking multiple unverified instances of repetitive code segments
WO2000038040A1 (en) Cause effect diagram program maintenance development and test system
JPH0973307A (ja) 順序シーケンス・プログラムの作成装置及び制御装置
CN120010383A (zh) 基于异构多核的嵌入式数控系统
EP0760980A1 (en) A system and method for creating design configurations and for controlling the execution of multiple design tools
JP3171363B2 (ja) プログラミング装置
EP0213486B1 (en) Method for displaying operation range of logical language
JP2003044277A (ja) プログラム開発支援装置、プログラム開発支援プログラムおよびそれを記録した記録媒体
JP7447574B2 (ja) サポート装置、サポートプログラムおよびサポート方法
Appelquist et al. A multifunction editor for programming control sequences for a robot based radiopharmaceutical synthesis system
Di Maio et al. Macintrotte
Celler et al. The XGAP 4 Manual
Yuen et al. Assembly language software development system
Gee What Have We Learned from LEP and HERA?
Guide TORCH
Reiss The Debugger Interface
Xing et al. An integrated Ada programming environment: AWA
Longley et al. Compilers, Interpreters and Assemblers
JPS60160439A (ja) 飛び先無指定ジヤンプのアドレス決定方法
Cave Software for the ICL System 25

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