JPH0283601A - プログラマブル・コントローラ - Google Patents

プログラマブル・コントローラ

Info

Publication number
JPH0283601A
JPH0283601A JP63225521A JP22552188A JPH0283601A JP H0283601 A JPH0283601 A JP H0283601A JP 63225521 A JP63225521 A JP 63225521A JP 22552188 A JP22552188 A JP 22552188A JP H0283601 A JPH0283601 A JP H0283601A
Authority
JP
Japan
Prior art keywords
program
programmable controller
module
data
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP63225521A
Other languages
English (en)
Inventor
Mark A Flood
マーク エイ.フラツド
Michael D Kalan
マイクル ディー.カラン
Peter N Preis
ピーター エヌ.プレイス
Alden L Peterson
アルデン エル.ピーターソン
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
Application filed by Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Publication of JPH0283601A publication Critical patent/JPH0283601A/ja
Pending 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/052Linking several PLC's
    • 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/15081Period length ratio between application and communication task is settable

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野〕 本発明は、プログラマブル・コントローラ、例えば米国
特許箱3.810.118号、第3.942.158号
、第4.165.534号及び第4.442.504号
に説明されているプログラマブル・コントローラに関す
る。
[従来技術と課題] プログラマブル・コントローラは、典型的なものとして
、アッセンブリ・ライン及び工作機械のような工業的な
装置に接続され、ストアード・プログラムにより工業的
な装置を逐次的に作動させる。プログラマブル・コント
ローラ、例えば前述の米国特許に開示されたものでは、
制御プログラムはメモリに記憶されると共に、複数の命
令を有する。この命令は、速いシーケンスにより読み出
され、実行により被制御装置から選択した検知装置の状
態を調べて、又は調べた1以上の検知装置の状態に基づ
いて、被制御装置から選択した作動装置を作動又は休止
させる。
これらのプログラマブル・コントローラ用のプロセッサ
はプログラマブル・コントローラ型式の命令を急速に実
行するように設計されている。この形式の命令には、中
規模から大規模のコントローラの場合に1ビツトの入出
力データを処理する命令ばかりでなく、演算命令、ファ
イル処理命令や、タイマ、カウンタ、シーケンス等の更
に複雑な他の命令も含まれている。このような命令は工
業では完全に標準化されており、コントロール技術者に
より容易に理解されるラダー・ダイアグラムの要素に直
接間遠させることが可能である。プログラム・パネル、
例えば米国特許箱3.798゜612号、第3.813
.649号及び第4,070.702号に開示されたも
のは、このようなプログラマブル・コントローラ命令を
有するラダー・ダイアグラム型式のコントロール・プロ
グラムを開発し、かつ編集する際に、ユーザを支援する
ために開発された。
プログラマブル・コントローラが被制御装置上の検知装
置の状態における変化に対して速い応答を確保するため
には、プログラマブル・コントローラが非常な高速度で
繰返して制御プログラムをを実行することが必要である
。プログラマブル・コントローラがその命令セットにお
ける命令を実行することができる速度、及び制御プログ
ラムの大きさは、プログラマブル・コントローラが制御
プログラムを反復して実行、即ち「走査コすることがで
きる速度を決定する主要な要素となる。
特に、ラダー・ダイアグラムの制御プログラムが比較的
に小規模から中規模の制御タスクを生成し、かつ編集す
ることが容易である。しかし、これらは大きな制御タス
クで用いるには面倒かつ非能率的である。ラダー・ダイ
アグラムの制御プログラムは、理解すること及びトラブ
ル・シュートが容易ではなく、また実行するのに良い時
間が掛かる。
「機能チャート・インターフェイスを有するプログラマ
ブル・コントローラJと題して1985年3月28日に
出願した米国特許出願第06/717.221号は、こ
の問題を指摘している。これに説明されているプログラ
マブル・コントローラには、記憶した機能チャート・プ
ログラムにより、互いに論理的に関連させた個別的な複
数のラダー制御プログラムを記憶するプロセッサが含ま
れている。また、このプロセッサは記憶した機能チャー
ト・プログラムを実行することができ、これによってラ
ダー・プログラムのうちの一つを任意の時点で反復して
実行させるのを管理する。被制御11機械即ち処理がそ
のステータスにより進行するので、通常、大きな制御タ
スクを、逐次実行する別個的な複数の制御ステップに分
解できる口とが朗らかとなった。各制御ステップは、理
解が容易な、かつ超高速度で個々に実行可能なラダー・
プログラムにより定義される。個別的な制御ステップを
実行するシーケンスは、被制御機械上らプロセスを動作
させる一般的な表現方法である機能チャー1・・プログ
ラムにより定義される。従って、ユーザは、機能チャー
ト・プログラム構成を用いて被制御機械上ちプロセッサ
が動作すべき一般的な方法を定義し、次いで個別的に管
理が容易なラダー・プログラムにおける被制til+機
械即ちプロセスの詳細な動作を定義することができる。
従来の機能チャート及びラダー・プログラムの適用は、
1台のプロセッサがラダー・プログラムを実行するプロ
グラマブル・コントローラについてなされた。最近、プ
ログラマブル・コントローラは、それぞれが個別的なラ
ダー・プログラムを同時に実行可能ないくつかのプロセ
ッサを用いるものと考えられていた。この型式のコント
ローラは、異なるプロセッサが実行するラダー・プログ
ラムを整合させる機構を必要とする。
従来のプログラマブル・コントローラが等式を解くとき
のような複雑なルーチンを実行しなければならないとき
のために、別のプログラムが開発された。このような計
算タスクはしばしば比較的に長時間、プロセッサを占有
し、ラダー・プログラムの他のステップの実行を遅延さ
せる。これは、被制御装置の一定部分をプログラマブル
・コントローラが十分な頻度で監視しない結果となる。
[1題を解決するための手段] プログラマブル・コントローラは一つの機械操作プログ
ラムを実行して一台の機械が複数のプログラム橢能を実
行できるようにする。機械操作プログラムの各ステップ
は個別的なユーザ制御プログラムとして定義される。プ
ログラマブル・コントローラは、それぞれユーザが定義
した制御プログラムを同時に実行することができる複数
の個別的なプロセッサ・モジュールを有する。制御プロ
グラムと、どの制御プログラムを実行すべきかのシーケ
ンスを表わすデータとを記憶するメモリ手段が備えられ
る。更に、プログラマブル・コントローラは被制御機械
上のセンサ及びアクチュエータに対するインターフェイ
スをする1以上の入出力(Ilo>モジュールを有する
。これらのI10モジュールは、プログラマブル−コン
トローラからリモートI10アダプタを介して直接的に
又は間接的にセンサ及びアクチュエータへのインターフ
ェイスをすることができる。
プログラマブル・コントローラの動作は、典型的なもの
として、ユーザが定義した機能チャート及び一連の制御
プログラム、例えばラダー・プログラムによって定義さ
れる。機能チャートは一連のステップにより実行される
べき総体的な処理を設定する。機能チャートは一連の記
述子に分解される。各記述子には、実行すべき処理ステ
ップ、ステップを完了したときに発生する遷移条件、及
び一連の次の記述子に対するポインタを指定するデータ
が含まれている。機能チャートの記述子はプログラム実
行の総合的な流れを管理する。当該プログラマブル・コ
ントローラは、複数の記述子を解釈して複数のプロセッ
サによる制御プログラムの実行を制御する手段を備えて
いる。
各処理ステップはプロセッサ・モジュールのうちの一つ
に割り付けられて実行される。処理ステップは更に、通
常のラダー・ダイアグラムか、又は高レベル言語プログ
ラムであるプロセス制御プログラムにより定義される。
好ましい実施例においては、制御プログラムは、機械語
に翻訳され、これを実行するために割り付けられていた
それぞれのプロセッサ・モジュールのローカル◆メモリ
に記憶される。プロセッサ・モジュールは、特定の制御
プログラムを実行し始めたときは、関連する遷移条件が
発生するまで、実行を繰返す。その時点で、次に実行す
るステップに関する情報のために、次の記述子ポインタ
が読み出される。
更に、プログラマブル・コントローラは、制御プログラ
ム以外のプログラムを実行するために、各プロセッサ・
モジュールのプログラム実行時間の一部を割り付ける機
構を有する。これは、制御プログラムの実行に逆効果を
与えることなく、実行すべき複雑で時間の掛かるタスク
の実行を時分割方法で可能にさせるものである。
本発明の実施例においては、各プロセッサ・モジュール
は、そのものに外部装置を直接接続させる外部割り込み
を・備えている。この外部装置は、プロセッサ・モジュ
ールの定常的なプログラム実行を中断して、割り込みル
ーチンを実行させることができる。
本発明の主たる目的は、いくつかのプロセッサを用いて
一台の機械の作動を制御するプログラマブル・コントロ
ーラを提供することにある。
本発明の目的は、一つの機械操作プログラムの複数部分
をいくつかの並列プロセッサにより同時に実行するプロ
グラマブル・コントローラを提供することにある。
本発明の他の目的は、複数の制御プログラムのプロセッ
サ実行を管理するプログラマブル・コントローラにおけ
る機構を関連させることにある。
本発明の目的は、更に時間の掛かる他のプログラムを、
その実行が制御プログラムの実行に本質的に逆効果を与
えることなく、プロセッサ手段により周期的に実行させ
ることにある。
[実施例] 第1図を参照すると、本発明のプログラマブル・コント
ローラ10がラック12に収容されている。ラック12
は複数の印刷回路基板モジュールを収納する一連のスロ
ットを有する。これらの機能モジュールはラック12の
背面に沿って伸延するマザー・ボードに接続してバック
プレーン11をなす。バックプレーン11はその上の導
体パターンにより相互接続されている複数のモジュール
・]ネツクを備えている。バックプレーン11は複数の
モジュールを接続する一連の信号バスをなす。ラック1
2は、電源供給モジュール14、システム・コントロー
ラ16、多数のプログラム実行プロセッサ・モジュール
18、複数のリモート入出力スキャナー・モジュール2
oを儀えている。
ただし、必要なのは1台のリモートI10スキャナー・
モジュール20だけである。ラック12における他の位
置は空きであり、複数のスロットに機能モジュールが更
に挿入されるまで、これらのスロットはめくら板により
覆われている。ラック12の物理的な構造は1986年
9月22日出願され、本発明と同一の出願人に譲渡され
た米国特許出願筒06/909,710号に開示されて
いる。
4台までのリモートI10スキャナー・モジュール2o
は、プログラマブル・コントローラ10から直列入出力
データ・リンク、例えばI10直列リンク15を介して
外部リモート入出カラツク17へのインターフェイスを
行なう。各外部リモート入出カラツク17は複数のロー
カル入出カモジュール19を備えており、ローカル入出
力モジニール19は被制御装置上の個々のセンサ及びア
クチュエータに接続されている。ローカル入出カモジュ
ール19は、例えば直流入力モジュール、直流出力モジ
ュール、交流入力モジュール、交流出力モジュール、ア
ナログ入力モジュール、アナログ出力モジュール、開放
ループモジュール、又は閉ループ・モジュールを含む多
くの形態を取り得る。外部リモート入出カラツク17及
びI10直列リンク15は通常のインターフェイス、及
び通信技術を用いている。外部リモート入出カラツク1
7は更にローカル入出カモジュール19′例えば米国特
許第4.413.319号に開示されているものを含む
。このローカル入出カモジュール19′はI10直列リ
ンク15を介するローカル入出カモジュール19とリモ
ートI10スキャナー・モジュール20との間のデータ
伝送を制御する。
システム・コントローラ16はケーブル25を介してプ
ログラミング端末24に接続されている。
プログラミング端末24はプログラマブル・コントロー
ラ10にユーザ制御プログラムをロードして、そのオペ
レーションを構築すると共に、そのパフォーマンスを監
視するために用いられる。プログラミング端末24は、
ユーザが制御プログラムを開発できるようにプログラム
されたパーソナル・コンピュータである。その場合に、
この制御プログラムはプログラマブル・コントローラ1
0にダウンロードされる。この制御プログラムをプログ
ラマブル・コントローラ10にロードしてその動作をデ
バッグすると、更に監視する必要がなければ、プログラ
ミング端末24をシステム・コントローラ16から切り
離すことができる。システム・コントローラ16はケー
ブル26を介してローカル・エリア・ネットワーク28
に接続されている。このローカル・エリア・ネットワー
ク28は、データ及びプログラミング命令、及びステー
タス情報を受は取り、ホスト・コンピュータにデータを
報告することができる。これは、中央ホスト・コンピュ
ータ又は中央端末が工場の作業現場で複数のプログラマ
ブル・コントローラの動作をプログラムし、かつ制御す
ることを可能にするものである。
異なる機能チャート・プログラムのステップは、プログ
ラム実行プロセッサ・モジュール18の種種のものに割
り付けられる。各ステップのユーザ制御プログラムは対
応するプログラム実行プロセッサ・モジュール18のロ
ーカル・メモリに記憶される。例えば、ユーザ制御プロ
グラムは通常のラダー・プログラムでよい。いくつかの
制御プログラムはプログラム実行プロセッサ・モジュー
ル18のうちの異なるものにより同時に実行することが
できる。その他の期間では、一方のプログラム実行プロ
セッサ・モジュール18上で「バックラウンド・タスク
」を実行することができ、その間に他方のプログラム実
行プロセッサ・モジュール18がユーザ制御プログラム
を実行する。
ユーザ制御プログラムを実行する過程で、プログラム実
行プロセッサ・モジュール18は1以上のリモートI1
0スキャナー・モジュール20の入力イメージ・テーブ
ルから入力ステータス・データを読み込む。プログラム
命令の必要により、プログラム実行プロセッサ・モジュ
ール18は更にその出力装置をサービスするリモートI
10スキャナー・モジュール2oの出力イメージ・テー
ブルに出力ステータス・データを書き込む。入力イメー
ジ・テーブル及び出力イメージ・テーブルに対するアク
セスはバックプレーン11を介して行なう。
あるプログラム実行プロセッサ・モジュールが機能チャ
ートのステップを完了したときは、コマンドを、実行す
べき次のステップを含むプログラム実行プロセッサ・モ
ジュール18に送出する。
このコマンドは次のステップを識別し、当該プログラム
実行プロセッサ・モジュール18に命令して実行を開始
させる。
[ハードウェア1 プログラマブル・コントローラのモジュール内でデータ
及びコマンドを転送するために、各モジュールは第2図
に示すように相互接続されている。
第2図の各ブロックには他図面の参照番号が示されてお
り、これらの図面にはブロックによって表わされた要素
の詳細が示されている。各モジュールは、独立した制御
バス21、データ・バス22、及びアドレス・バス23
からなるバックプレーン11に接続されている。制御バ
ス21は、当該型式のモジュールに必要なコントロール
信号に従って、一つのモジュールを接続可能な個別的な
多数のラインからなる。データ・バス22は32ビット
幅であり、アドレス・バス23は27ビツト幅である。
この実施例においては、システム・コントローラ16、
プログラム実行プロセッサ・モジュール18及びリモー
トI10スキャナー・モジュール20はそれぞれデータ
用のローカル・メモリ及び当該モジュール用の動作命令
を含む取り外し可能な娘基板を備えている。娘基板は、
プログラマブル・コントローラ16への電力の供給が停
止したときに、メモリの動作を維持するためのバッテリ
を備えている。各リモートI10スキャナー・モジュー
ル2oにおけるメモリ134は、各センサ装置のステー
タス、及びリモートI10スキャナー・モジュール20
に接続されている各被制御アクチュエータの所望ステー
タスを表わすt10イメージ・テーブルを備えている。
システム・コントローラ16のシステム・メモリ(RA
M>69は、システム・ステータス及び構造に関するデ
ータ、並びに特定のシステム動作に関連する情報を記憶
する種々のセグメントを有する。各プログラム実行プロ
セッサ・モジュール18は機能チャートのデータ、ユー
ザ制御ブ0グラム及びこれらの動作上の変数を記憶する
ランダム・アクセス・メモリ108を有する。
プログラマブル・コントローラ10の各機能モジュール
は以下の章で詳細に説明される。
システム・コントローラ 先に説明したように、システム・コントローラ16は、
プログラマブル・コントローラ10から外部端末及びロ
ーカル・エリア・ネットワーク28への共通インターフ
ェイスをなす。更に、システム・コントローラ16はシ
ステム・ステータスを表示したり、バックプレーン11
に対するアクセスを監視するシステム・ハウスキーピン
グ機能を実行する。
プログラマブル・コントローラ1oの通常の動作中に、
システム・コントローラ16は、これに接続されている
外部装置、例えばローカル・エリア・ネットワーク28
及びプログラミング端末24との通信を処理する。その
最も重要なタスクはプログラミング端末24と通信をし
てオペレータがシステム・パフォーマンスを監視し、故
障したセンサ及びアクチュエータを検出できるようにす
ることである。システム・コントローラ16が管理する
他のタスクは、ローカル・エリア・ネットワーク28を
介してホスト・コンピュータ又は仲間のプログラマブル
・コントローラとデータを交換することである。これは
、ホスト・コンピュータがそれらの動作に関する1又は
多数のプログラマブル・コントローラからのステータス
を収集するのを可能にするものである。システム・コン
トローラ16は、これらの機能に加えて、全てのプログ
ラミングの変更を受は取り、また対応するプログラム実
行プロセッサ・モジュール18におけるプログラムの更
新について監視する。例えば、これには、ラダー・プロ
グラムの種々の段階の追加、削除、変更が含まれている
第3図に概要的に示すシステム・コントローラ16は、
制御バス21〜アドレス・バス23を接続しており、バ
ックプレーン・インターフェイス部、プロセッサ部及び
通信プロセッサ部の3部分く点線により示す。)に分割
される。バックプレーン・インターフェイス部は全ての
ラック・モジュールのアクセスを管理し、かつシステム
・コントローラ16からバックプレーン11へのインタ
ーフェイスをする。プロセッサ部はプログラマブル・コ
ントローラ10の管理プログラムを実行する。通信部は
、主としてプログラミング端末24及びローカル・エリ
ア・ネットワーク、例えばローカル・エリア・ネットワ
ーク28との通信について責任を持つ。各プロセッサ部
及び通信部は、それぞれ−組の内部バス(制御バス31
、データ・バス32およびアドレス・バス33)及びブ
ーロセツサ・バス(制御バス61、データ・バス62及
びアドレス・バス63)を備えている。
通信バスに接続されている種々の回路はシステム・コン
トローラ16からプログラミング端末24及びローカル
・エリア・ネットワーク28へのインターフェイス接続
を制御する。通信バスは通信部における種々の要素間を
接続する多数の個別的な制御線を有する制御バス31.
8ビット幅のデータ・バス32及び16ビツト幅のアド
レス・バス33からなる。通信部はマイクロプロセッサ
3o、例えばザイローグ■により製造されたモデル28
0の周辺に構築されている。
マイクロプロセッサ30は読み出し専用メモリ(ROM
>34に記憶されている機械言語命令を実行する。機械
言語命令はROM34から読み出され、デコードされ、
次いでマイクロプロセッサ30により実行されることに
より、通信機能を実行する。これらの機能を制御するプ
ログラムは従来のプログラマブル・コントローラ10に
用いられているものと同様のものである。
通常のアドレス・デコード回路36はマイクロプロセッ
サ30が送出した各アドレスを受は取り、これをデコー
ドして制御バス31に適正な組の信号を発生する。例え
ば、マイクロプロセッサ3゜がROM34をアクセスし
ているならば、アドレス・デコード回路36は、アドレ
ス・バス33上にマイクロプロセッサ3oが送出するア
ドレスはROM34が位置するアドレスの範囲内にある
のかということを確認する。通信部におけるどの装置を
アクセスするのかを確認すると、アドレス・デコード回
路36はアクセスを実行する装置の制御信号を発生する
2つの直列入出力装置(UART)46及び直列入出力
コントローラ(810)48も3つの通信バスである制
御バス31〜アドレス・バス33に接続されている。U
ART46は商業的に入手可能ないくつかのユニバーサ
ル非同期レシーバ/トランスミッタ集積回路であればよ
い。IJART46はデータ・バス32上に存在する並
列データを適当にフォーマット化された直列信号に変換
し、この直列信号を入出カライン・ドライド/レシーバ
50に供給する。
入出カライン・ドライバ/レシーバ50はいくつかの直
列信号基準のうちの一つ、例えばR3232、R842
3又はR8422のうちの一つに対応する出力信号を供
給する。直列入出力コントローラ(810)48は、二
つの非同期通信チャネルに利用する商業的に入手可能な
いくつかある集積回路のものでもよい。31048はシ
ステム・コントローラ16の通信部からライン・ドライ
バ52及び54に接続されているローカル・エリア・ネ
ットワーク、例λば第1図のローカル・エリア・ネット
ワーク28へのインターフェイスを行なう。
通信部内には、システム・コントローラ16に接続され
ている種々の外部装置に送出され、又はこれより受は取
るデータの一時記憶用のランダム・アクセス・メモリ(
RAM>38も配置されている。RAM38は、アドレ
ス・バス33を介してアクセス可能になっているので、
制御バス31からの信号のエネーブルに従い、データ・
バス32を介してRAM38に書き込み、又はRAM3
8から読み出すことができる。RAM38は記憶してい
る8デイジタル・バイトを解析するバリティー回路に接
続されており、通常の方法によりパリティ−・ビットを
発生する。このパリティ−・ビットはRAM38から読
み出されたデータの完全性をチエツクするために採用さ
れている。直接メモリ・アクセス(DMA)42は通信
処理期間に81048とRAM38との間で高速にデー
タの交換を可能にするために備えられたものである。
DMA42は、直列入出力コントローラ(810)48
がRAM38をアクセスしてそれぞれの外部通信チャネ
ルを介して受信したデータを記憶すること、又は送信さ
れるデータを得ることができるようにする。
制御バス31〜アドレス・バス33に対するアクセスは
、仲裁回路40により制御されている。
仲裁回路40は、いくつかの装置が同時にこれらのバス
に対してアクセスを要求したときの衝突を解決するもの
である。仲裁回路40は通信部のどの部分が制御バス3
1〜アドレス・バス33に対するアクセスするのかを判
断する。バスをシークしている装置は、制御バス31の
ラインを介して仲裁回路40に信号を送出し、仲裁回路
4oが当該装置の別のコントロール・ラインにアクセス
信号を発生するにより、−時に一装置に対して要求を許
可する。
カウンタ/タイマ(CTC)44は通信部内で他の要素
からの割り込み要求を処理するために制御バス31〜ア
ドレス・バス33と、マイクロプロセッサ30の内部端
子とに接続する。CTC44は与えられた周期、例えば
10ミリ秒毎にマイクロプロセッサ3oに割り込み要求
を発生するタイマとしても構成されているので、その時
にマイクロプロセッサ3oが実行しているタスクに無関
係に、種々のルーチンを周期的に実行することができる
。マイクロプロセッサ3oは、CTC44からの割り込
み要求に応答して、CTC44からベクトルを読み込み
、ROM34に記憶されている適当な割り込みサービス
・ルーチンにマイクロプロセッサ30を進める、例えば
UART48又は81048からのデータ入出力要求を
実行する。
第3図を引き続き参照すると、プロセッサ部は、制御バ
ス61.16ビツトのデータ・バス62及び23ビツト
のアドレス・バス63からなる一組のバスのいずれにも
接続されている。これらのバスに対するアクセスは、通
信バス上の仲裁回路40と同様の仲裁回路64により制
御されている。
2組のデータ・ゲート56及び58は通信バス即ちデー
タ・バス32.33と、プロセッサ・バス即ちシステム
・コントローラ16のデータ・バス62との間に接続さ
れている。特に、最初の組のデータ・ゲート56は通信
部のデータ・バス32をプロセッサ部のデータ・バス6
2に8ビツトにより双方向接続させている。また、第2
組のデータ・ゲート58は2本のアドレス・バス33及
び63を接続している。データ・ゲート56は2組の8
ビツト独立トライステート・データ・ゲートからなり、
各組のデータ・ゲート56及び58は2つのデータ・バ
ス32と、データ・バス62との間でデータの流れを1
方向に制御している。データ・バス62の下位8ライン
のデータ・バス62のみが8ビツトの通信部のデータ・
バス32に接続されている。アドレス指定はプロセッサ
部から通信部へのみ発生するので、データ・ゲート58
は1組の16トライステ一ト信号ゲートからなり、16
本のアドレス・バス33をプロセッサ部の下位16アド
レス・ラインに接続する。内部バス制御回路60はプロ
セッサ部のコントロール・バス61及び通信部の制御バ
ス31にそれぞれ接続され、また内部バス制御回路60
は仲裁回路40及び64からのアクセス要求信号に応答
してデータ・ゲート56及び58をエネーブルする。
プロセッサ部は16ビツトのマイクロプロセッサ66、
例えばモトローラ(+1が製造したマイクロプロセッサ
68010の周辺に構築されており、読み出し専用メモ
リ68に記憶されているプログラム・コードを実行する
。マイクロプロセッサ68010は本質的にメモリ・マ
ツプ装置であり、直接接続された入出カラインを持って
いない。従って、他の要素に対するマイクロプロセッサ
68010のアクセスはアドレス・バス63上にアドレ
スを送出することにより行なう必要がある。マイクロプ
ロセッサ66から送出されるアドレスは、アドレス・デ
コード回路70によりデコードされてアクセスした要素
のために適当な制御信号を発生する。アドレス・デコー
ド回路70は通信部のアドレス・デコード回路36と同
様の方法で礪能する。更に、プロセッサ部は、割り込み
プロセッサ72を有し、割り込みプロセッサ72はマイ
クロプロセッサ66に対する割り込みを制御し、適当な
命令アドレス・ベクトルを供給する。
データ転送肯定応答及びバス・エラー (DACK/BERR)回路74も適当な制御バス61
に接続されている。DACK/BERR回路74はプロ
セッサ部の種々の部分からの信号に応答してデータ転送
完了の肯定応答を発生し、また誤ったアドレス指定又は
データ転送が失敗したときにバス・エラー信号を送出す
る。これらの信号はマイクロプロセッサ66に入力され
、これに訂正動作を実行させる。更に、プロセッサ部は
、メイン・システム・クロック及びリアル・タイム・ク
ロックを備えているりOツク回路89も有する。システ
ム・ステータス回路88はプログラマブル・コントロー
ラ1oのステータスに関連する入力信号を受は取り、そ
のステータスを表わす標識を供給する。
システム・コントローラ16のRAM69も制御バス6
1〜アドレス・バス63にも接続されている。RAM6
9は、それぞれ16ビツト幅であり、かつプログラマブ
ル・コントローラ10の全体のシステム・メモリとして
用いる393,216 (348K)メモリ位置を含む
スタチック・メモリである。システム・コントローラ1
6内でマイクロプロセッサ66が介入することなく、当
該システムの他のモジュールによりバックプレーン11
を介してRAM69を直接アクセスすることができる。
第7図はシステム・コントローラ16に含まれているR
AM69内のデータ構造を示す。RAM69はプログラ
マブル・コントローラ10の動作において特殊な機能を
実行するデータを含む独立したデータ・ファイルを記憶
する。このデータ構造には、種々のデータ型式、例えば
整数、浮動少数点の数、ASCIIキャラクタ、及び種
々の制御構造が含まれる。第1フアイル200はRAM
69に記憶されている他のファイルディレクトリである
。残りのメモリはシステム・ステータス・ファイル20
1、システム・データ・テーブル202及び−組のシス
テム・サポート・ファイル203に分割される。
システム・ステータス・ファイル201はプログラマブ
ル・コントローラ10の構成に関連するデータを有する
。このシステム・ステータス・ファイル201にはシス
テム・オペレータによりエネーブルされていたプログラ
マブル・コントローラ1oの種々のユーザ選択可能機能
を識別する情報が含まれている。更に、年月日に関する
リアル・タイム・クロックのデータはこのシステム・メ
モリであるRAM69の部分に記憶されている。
種々のシステム故障及びエラーの発生並びに種類を表わ
すディジタル・ワード、及び故障が発生したときにプロ
グラム命令を実行していることを表わすポインタは、当
該部分の他のサブファイル内に記憶される。システム・
ステータス・ファイル201の一部も、当該システムの
活性な全てのモジュール番号及び種類、各モジュールを
アクセスするために必要な相対モジュール番号及びアド
レス・ポインタをリストに含めている。例えば、1以上
のプログラム実行プロセッサ・モジュール18又はリモ
ートI10スキャナー・モジュール20がラック12に
存在するときは、ユーザはそのモジュール上のサム・ホ
イールを介して固有な数を割り付け、その型式の種々の
モジュールを識別しなければならない。サム・ホイール
の設定は当該システムの初期スタート・アップの際にシ
ステム・コントローラ16により読み込まれ、システム
・ステータス・ファイル201の当該部分に記憶される
システム・データ・テーブル202は1以上のモジュー
ルにより分割されるデータを有する。例えば、プログラ
ム実行プロセッサ・モジュール18からの種々の計算結
果をシステム・メモリの当該部分に記憶することができ
るので、他のプログラム・プロセッサ・モジュールは当
該データを容易にアクセスすることができる。システム
・データ・テーブル202内にメモリ空間が割り付けら
れてシステム・コントローラ16の通信部の種々の外部
通信リンクを介して受信した、又は送信されるデータを
記憶する。プログラマブル・コントローラ10の他のモ
ジュールはこれらのメモリ位置を直接アクセスすること
ができる。
更に、システム・データ・テーブル202は、種々のシ
ステム・カウンタと、システム・コントローラ16によ
り用いられているか、又は他の多数のモジュール、例え
ばプログラム実行プロセッサ・モジュール18又はリモ
ートI10スキャナー・モジュール20により共通に用
いられている変数との値を備えている。システム・ステ
ータス・ファイル201内の最終サブファイルは、ユー
ザがプログラマブル・コントローラ10にロードした種
々のプログラムに関してユーザが定義するデータに割り
付けられた空間である。
システム・コントローラ16のRAM69の最終部分で
あるシステム・サポート・ファイル2゜3は、システム
・サポート・ファイルに割り付けられている。これらの
ファイルには機能チャート・プログラムのソース・プロ
グラム情報が含まれている。プログラマブル・コントロ
ーラ1oは機能チャート・プログラムを直接実行するこ
とはない。しかし、以下で説明するが、機能チャートは
プログラミング・ステップで用いられ、プログラム実行
プロセッサ・モジュール18の動作を管理するために用
いられるデータを発生する。続いて、これらのプログラ
ムを後で編集可能にするために、機能チャートのソース
・バージョンはプログラミング端末上に表示できるもの
でなければならない。
これも以下で説明するが、システム・サポート・ファイ
ル203は機能チャートの種々の分岐を実行する並列動
作の複数のカウンタを備えている。
各モジュールのローカル・メモリにはそのステータスに
関するデータが含まれているが、これらのメモリが動作
を保持するバッテリを有しない場合もある。電源断の後
にこのような揮発性の情報を保持するために、これらの
モジュールのステータス情報はRAM69のシステム・
サポート・ファイル203のサブファイルにコピーされ
る。
共通パラメータもシステム・コントローラ16の通信部
内のUART46及び5IO48を配列するシステム・
サポート・ファイル203に記憶される。特に、これら
のパラメータには、直列データ信号フォーマットのボー
・レート、ワードの長さ、コントロール・ビットが含ま
れている。例えばプログラミング端末24と通信をする
パラメータはシステム・メモリであるRAM69の当該
部分に記憶される。更に、以上で説明したように、多数
のプログラマブル・コントローラ10をローカル・エリ
ア・ネットワーク28を介して接続することができる。
この場合に、各プログラマブル・コントローラ1oにパ
ラメータを供給して、ローカル・エリア・ネットワーク
28を介して通信する方法を指示する。
第3図を再び参照すると、システム・コントローラ16
のプロセッサ部は両方の組のバスに接続されている複数
の要素を介してラック12のバックプレーンとインター
フェイス接続する。特に、データ・バス22は一組の双
方向データ転送ゲート78によりプロセッサのデータ・
バス62に接続されており、バックプレーン11のアド
レス・バス23は他の組の双方向データ転送ゲート76
によりアドレス・バス63に接続されている。システム
・コントローラ16がプログラマブル・コントローラ1
0のバックプレーン11を介して制御を行なうためにシ
ークをするときは、マスク・モード制御回路81は制御
バス61のコントロール・ライン上の信号に応答し、バ
ックプレーン11の制御バス21を介して適当な制御信
号を送出してラック12内の他のモジュールをアクセス
する。
例えば、RAM69の内容を読み出すために、ラック1
2内の他のモジュールがシステム・コントローラ16の
アクセスをシークするときは、システム・コントローラ
16はこの他方のモジュールによりバックプレーン11
の制御に従う。この場合に、システム・コントローラ1
6内のスレーブ・モード制御回路82はアドレス・バス
23上に現われるシステム・コントローラ16のアドレ
スと、他のモジュールから導かれている制御バス21上
のコントロール信号とに応答する。スレーブ・モード制
御回路82は応答において双方向データ転送ゲート76
及び78に信号を送出して、他のバックプレーン・モジ
ュールがシステム・コントローラ16をアクセスできる
ようにする。後者の場合には、マスク・モード回路81
が待機状態にある。2つの双方向データ転送ゲート76
及び78は、バックプレーン通信のモードに従い、制御
バス61を介してマスク・モード回路81及びスレーブ
・モード制御回路82からのエネーブル・コントロール
信号を受は取る。バックプレーン仲裁回路84はバック
プレーン11に対するアクセスを監視し、当該システム
における複数のモジュールからのアクセス要求の衝突を
解決する。
以上で説明したように、システム・コントローラ16は
当該システム及び外部コンピュータとの通信の初期化を
制御する。システム・コントローラ16はユーザ制御プ
ログラムを実行することはない。
プログラム実行プロセッサ プログラム実行プロセッサ・モジュール18はユーザ制
御プログラム、例えばラダー・プログラムを実行する。
これらのモジュールのうちの一つを第4図に概要的に示
す。この実行において、プログラム実行プロセッサ・モ
ジュール18は、すE−ト110スキャナー・モジュー
ル20のメモリ134内の入力イメージ・テーブルから
検知装置の状態を読み込み、またそのメモリからの出力
データをリモートI10スキャナー・モジュール2o内
の出力イメージ・テーブルへデータを書き込む。データ
はシステム・コントローラ16内のシステム・メモリで
あるRAM69からも得られる。
これらのタスクを実行するために、各プログラム実行プ
ロセッサ・モジュール18はバックプレーン11に接続
されている一組の内部制御バス91、内部データ・バス
92及び内部アドレス・バス93を有する。特に、プロ
グラム実行プロセッサ・モジュール18は32ビツトの
内部データ・バス92、−組の内部制御バス91、及び
16ビツトの内部アドレス・バス93を有する。これら
は、それぞれの組のトライステート、双方向トランスミ
ッション・ゲート94及び96によりバックプレーン1
1のデータ・バス22及びアドレス・バス23に接続さ
れている。これら双方向トランスミッション・ゲート9
4及び96の動作はバックプレーン11の制御バス21
及び内部制御バス91に接続されている内部コントロー
ル回路95により管理されている。内部データ・バス9
2及びバックプレーン11のデータ・バス22は共に3
2ビツト幅であることに注意すべきである。
従って、受信モジュールが32ビツト幅のデータ・バス
を有するときは、プログラム実行プロセッサ・モジュー
ル18からの32ビツトのデータを一つの32ビツト・
ワードとしてバックプレーン11上に送出することがで
きる。ある処理様能では、プログラム実行プロセッサ・
モジュール18が16ビツト・データとして動作し、ま
たこのような場合に16ビツト・ワードはバックプレー
ン11に供給される。
プログラム実行プロセッサ・モジュール18の残りの要
素は内部制御バス91〜内部アドレス・バス93に接続
されている。これらに内部バスはマイクロプロセッサ9
8により駆動される。マイクロプロセッサ98は、68
020マイクロプロセツサとしてモトローラ■が商業的
に販売している32ビツトのマイクロプロセッサである
。マイクロプロセッサ98はυjり込みインターフェイ
ス回路99に接続されている内部ボートを有する。
この割り込みインターフェイス回路99はプログラム実
行プロセッサ・モジュール18の前面の端子に接続され
ている4外部割り込みラインから信号を受は取る。
これらの割り込みラインは、高速応答のために高い優先
順位の事象を検知する装置をプロセッサ・モジュールに
直接インターフェイス接続できるようにする。割り込み
インターフェイス回路99の他の3本の割り込みライン
はプログラム実行プロセッサ・モジュール18内の回路
を接続するものである。これら外部割り込みライン又は
内部割り込みラインの信号はマイクロプロセッサ98に
直ちに通常のプログラム実行を中断させて、当該割り込
みラインに対応するルーチンを実行させる。
ユーザは外部割り込み用のルーチンをプログラムするこ
とができるが、内部割り込みは割り付けられた割り込み
サービス・ルーチンにより受は付けられる。
プログラム実行プロセッサ・モジュール18の処理能力
も浮動小数点副プロセツサ100により、更にビット副
プロセツサ102により、支援されている。浮動小数点
副プロセツサ100は、モトローラ■から6881とし
て商業的に入手可能であり、特に68020マイクロプ
ロセツサ98により動作するように設計されている。ビ
ット副プロセツサ102はデータ・ワードの個別的なビ
ットについてのプール論理処理を実行するカスタム集積
回路である。ビット副プロセツサ102は、「機能チャ
ート解釈装置を有するプログラマブル・コントローラ」
と題して1985年5月28日に出願された米国特許出
願箱717.221号に説明されているように、ハード
ウェア結線論理を用いて一組のラダー・ダイアグラム命
令を実行するように過去入力プログラマプル・コントロ
ーラにおいて用いられていた。
3つのプロセッサ、即ちマイクロプロセッサ98、浮動
小数点副プロセツサ100及びビット副プロセツサ10
2は縦列に動作して、制御プログラムに含まれている特
殊型式の命令を実行する。
マイクロプロセッサ98は制御プログラムの実行を開始
させることができ、浮動小数点演算関数が現われたとき
は、浮動小数点副プロセツサ100をエネーブルし、マ
イクロプロセッサ98は内部制御バス91〜内部アドレ
ス・バス93を開放する。浮動小数点副プロセツサ10
0は、マイクロプロセッサ98がプログラム実行を再開
する時点で代数演算が完了するまで、処理関数を引き受
(プる。制御プログラムがビット処理を必要とするとき
即ち、ビット副プロセツサ102用の命令セットに命令
が含まれるときは、マイクロプロセッサ98は制御プロ
グラム命令のアドレスをビット副プロセツサ102にお
けるプログラム・カウンタに書き込むことにより、ビッ
ト副プロセツサ102に対する制御を直ちに開放する。
次いで、ビット副プロセツサ102は内部制御バス91
〜内部アドレス・バス93からマイクロプロセッサ98
を切り離し、停止命令が現われるまで、次の制御プログ
ラム命令を実行する。そのときは、ビット副プロセツサ
102は内部制御バス91に信号を送出してバスの制御
及び制御プログラムの実行を再開する。典型的な「ラダ
ー」型式の制御プログラムの約85〜90パーセントが
ビット副プロセツサ102により実行可能なものである
。マイクロプロセッサとの関連でカスタム・プール論理
のビット副プロセツサ102の動作は、前述の米国特許
同時継続出願用717,221号に詳細に説明されてい
る。
プログラム実行プロセッサ・モジュール18は、データ
の長さ肯定応答<DASACK)回路108を有する。
このデータの長さ肯定応答(DASACK>回路108
は、制御バスのうちの2ラインに内部データ・バス92
上のデータの「幅」を表わす2ビット符号を送出する。
以下で更に詳細に説明するが、このデータは32ビツト
、規則的な16ビツト又は1×8ピツト・バイトからな
る長ワードでよい。このデータの長さの情報は、このデ
ータプロセッサにおいて種々のモジュール要素により用
いられる。
プログラム実行プロセッサ・モジュール18の最後の要
素はコントロール及びステータス回路110である。コ
ントロール及びステータス回路110は、通常の方法に
よりプロセッサ・モジュールのステータスを監視し、内
部制御バス91に適当なコントロール信号を供給して種
々の要素をエネーブルする。
読み出し専用メモリ(ROM)104及びランダム・ア
クセス・メモリ(RAM)106は共にプログラム実行
プロセッサ・モジュール18内で全部で3つの内部制御
バス91〜内部アドレス・バス93に全て接続されてい
る。読み出し専用メモリ(ROM)104は3つのマイ
クロプロセッサ98、浮動小数点n1プロセツサ100
及びビット副プロセツサ102の命令及び定数の16ビ
ツトメモリ位置を有する。RAM106はオペランド及
びプログラム実行プロセッサ・モジュール18により実
行された計算結果のメモリとなる。更に、プログラム実
行プロセッサ・モジュール18が実行すべき制御プログ
ラムもRAM106に記憶されている。
RAM106の詳細を第5図に示す。RAMl06は下
位バンク112及び上位バンク114に区分される。下
位バンク112及び上位バンク114はそれぞれ多数の
、例えば196.608(196K>メモリ・アドレス
のメモリ位置を有する。下位バンク112及び上位バン
ク114のメモリ位置はそれぞれ16ビツト幅であり、
いずれも32ビツトデータ・ワードのメモリとなるよう
に同時にエネーブルされる。以上で説明したように、プ
ログラム実行プロセッサ・モジュール18により処理さ
れるデータの幅は、16又は32ビツト幅でもよい。1
6ビツトのワードを処理するときにメモリ容量を最適化
するために、トランスミッション・ゲート・マルチプレ
クサはRAM106に関連されて独立した16ビツトの
ワードが下位バンク112及び上位バンク114に共に
記憶させる。特に、トランスミッション・ゲート・マル
チプレクサはそれぞれ16データ線の双方向制御を行な
う3組のトライステート双方向トランスミッション・ゲ
ート116〜118からなる。
第1組のトランスミッション・ゲート116は内部デー
タ・バス92の16下位ビット(0〜15)を下位バン
ク112のデータ端子に接続する。同様に、第3組のト
ランスミッション・ゲート118は内部データ・バス9
2の16上位ビット(ビット16〜31)を上位バンク
114のデータ端子に接続する。第2組の1ヘランスミ
ツシヨン・ゲート117は上位ビットのメモリ・バンク
114のデータ端にデータ・バスの下位6ビツトを交差
して接続する。3組のトランスミッション・ゲート11
8は内部制御バス91を介して DASACK回路108からコントロール信号を受は取
り、内部データ・バス92上に送出されているワードの
幅及びアドレスに従って種々の1−ランスミッション・
ゲートのセットをエネーブルさせる。全ての内部アドレ
ス・バス93は下位バンク112及び上位バンク114
に行く。
32ビツトのデータが内部データ・バス92上に送出さ
れると、DASACK回路108は第1及び第3組のト
ランスミッション・ゲート116及び118をエネーブ
ルする。これは、下位バンク112の16下位ビット及
び上位バンク114のデータの上位6ビツトを記憶する
ものである。
16ビツトのワードを内部データ・バス92に送出して
いるとぎは、このワードを下位バンク112か、又は上
位バンク114に記憶することができる。下位バンク1
12にこれを記憶することになっているときは、DAS
ACK回路108は第1組のトランスミッション・ゲー
ト116のみをエネーブルしてデータをその下位バンク
112に渡す。更に、16ビツト・ワードのメモリ鏝面
を最大化するために、別のデータを上位バンク114の
同一アドレスに記憶することができる。その場合に、D
ASACK回路108は第2組のトランスミッション・
ゲート117のみをエネーブルして、データの下位16
ビツトを上位バンク114に接続する。16ビツト・デ
ータを処理しているときは、第3組のトランスミッショ
ン・ゲート118がエネーブルされることはない。
第9図は各プログラム実行プロセッサ・モジュール18
用のRAM106のデータ構造を表わす。
RAM106はモジュールの動作にI30するステータ
ス情報を有する。各プログラム実行プロセッサ・モジュ
ール18はそれ自身のデータ・テーブル312もRAM
106に記憶している。データ・テーブル312は種々
のカウンタ、タイマー、及び中間的な計算値のメモリ位
置を有する。
RAM106の最大領域が制御プログラムを記憶するた
めに割り付けられている。実際のプログラム内容は、以
下で詳細に説明するが、コンパイルしたユーザ′制御プ
ログラムからなり、プログラム実行プロセッサ・モジュ
ール18により処理されるバックグラウンド・タスク及
び種々の割り込みルーチンから独立している。ユーザ制
御プログラムを正しく実行するために、プログラム領域
313内に「記述子」と呼ばれる機能チャートのデータ
を含むサポート・ファイルも含まれる。
プログラム実行プロセッサ・モジュール18の動作の1
モード(ここで「非同期モード」と呼ぶ)において、プ
ログラム実行プロセッサ・モジュール18は周期的にリ
モートI10スキャナー・モジュール20からRAM1
06に完全な入力イメ−ジをコピーする。このイメージ
のコピー用のスペースはメモリ部314に設けられてい
る。
リモートI10スキャナー・モジュール以上で説明した
ように、リモートI10スキャナー・モジュール20は
プログラム実行プロセッサ・モジュール18が用いる入
力センサ・データを集める。第1図、第2図及び第6図
を参照すると、リモートI10スキャナー・モジュール
20はプログラマブル・コントローラ1oを1以上の外
部リモート入出カラツク17に接続し、複数のセンサ又
は入力の装置と、アクチュエータ又は出力信号装置とを
プログラマブル・コントローラ10にインターフェイス
接続するローカル入出カモジュール19を有する。各リ
モートI10スキャナー・モジュール20は、外部リモ
ート入出カラツク17に接続された入力装置のステータ
スを保持している入力データを規則的に要求し、これを
他のコントローラ・モジュール、例えばプログラム実行
プロセッサ・モジュール18が読み込むモジュールの入
力イメージ・テーブルに記憶する。
更に、リモートI10スキャナー・モジュール20も他
のコントローラ・モジュール、例えばプログラム実行プ
ロセッサ・モジュール18から受【ノ取る出力データの
イメージ・テーブルを有する。
規則的な周期により、リモー1−110スキへ7ナー・
モジュールの出力イメージ・テーブル内にある更新した
出力信号データをその外部リモート入出カラツク17に
転送してこれらのラックに接続されている種々のアクチ
ュエータを制御する。
第6図を特に参照すると、各リモート110スキヤナー
・モジュール20はバックプレーン11の制御バス21
〜アドレス・バス23を接続している。リモート11ス
キヤナー・モジュール20は、3組のバス、即ちメモリ
・アクセス・バス121〜123と、マイクロプロセツ
サ゛・バス131〜133と、入出力バス141〜14
3とを有する。3つのメモリ・アクセス・バス121〜
123は一組のアドレス・バス・ゲート124と、−組
のデータ・バス・ゲート126とによりバックプレーン
11に接続されている。これらのトランスミッション・
ゲート124及び126は共に内部バス制御回路128
により制御される。この内部バス制御回路128はメモ
リ・アクセス・バス121を介してアドレス・バス・ゲ
ート124及びデータ・バス・ゲート126に信号を送
出する。ローカル・ランダム・アクセス・メモリ(メイ
ンRAM134と呼ぶ。)が3つのメモリ・アクセス・
バス121〜123に接続されている。
メインRAM134は外部リモート入出カラツク17か
らリモートI10スキャナー・モジュール20に入力さ
れているセンサ情報の入力イメージ・テーブルを記憶す
ると共に、外部リモート人出カラツク17に出力されて
いる出力データの出力イメージ・テーブルも記憶する。
第8図は各リモートI10スキャナー・モジュール20
のメインRAM13.4に記憶されているデータ構造を
詳細に示(−0これらのデータ構造はリモートI10ス
キャナー争モジュール20がサービスしたリモート・セ
ンサ及びアクチュエータの入出力イメージ・テーブルを
有する。入力イメージ・テーブル210はセンサ・デー
タを表わすものであり、3つの独立した部分212〜2
14からなる。第1の部分212は種々のセンサ・デー
タの実際の状態のイメージである。強制にオンにされる
入力に関する情報には入力イメージ・テーブル210内
の第2の部分213に含まれている。従来のプログラマ
ブル・コントローラ10のように、ユーザは与えられた
センサのステータスをその実際のステータスに係わらず
、オンか、又はオフとなるように強制的に設定すること
ができる。これは、例えば故障したセンサ゛をバイパス
させることができる。強制的にセットしたセンサはこの
ような各入力のアドレス指定に2進の1により表わされ
る。
強制的にオフにされたセンサは、入力イメージ・テーブ
ル210の第3の部分214に記憶されて論理Oにより
示されている。ユーザは、定義により、強制的にセット
したデータ・テーブルの部分213及び214に書き込
むことができるが、実際の入力イメージ・テーブルの部
分212への書き込むことは禁止される。プログラマブ
ル・コントローラ10の動作において、ユーザ・プログ
ラムは部分212から実際の入力イメージ・データ、又
はセンサの強制的にセットしたイメージを読み出すこと
ができる。部分213から強制的にオンにしたイメージ
を読み出したときは、リモートI10スキャナー・モジ
ュール20は実際のセンサ入力ステータスと部分213
から強制的にオンにしたデータとの論理和を取り、その
結果と部分214から当該センサの強制的にオフにした
データとの論理積を取る。
!■カイメージ・デープル211は、メインRAM13
4にも記憶されており、出力イメージ・データ・テーブ
ル215を有する。出力イメージ・データ・テーブル2
15はリモートI10スキャナー・モジュール2oがサ
ービスをした外部リモート入出カラツク17に接続され
ている出力装置のステータスを表わしている。典型的な
ものとして、この出力データはプログラム実行プロセッ
サ・モジュール18におけるユーザ制御プログラムの実
行により決定される。強制的にオンにした出力データを
表わす第2の部分216と、強制的にオフにした出力デ
ータを表わす第3の部分217は、出力イメージ・テー
プ、ル211にも設けられている。これは、ユーザ制御
プログラムの実行結果に無関係に、与られたアクチュエ
ータを常にオン又はオフにユーザにより定義することが
できる。例えば、これは、被制御装置の一部を保守のた
めに遮断しなければならないとき、及びこれをユーザ制
御プログラムよりターン・オンしてはならないときに有
用である。制御プログラムは出力イメージ・データ・テ
ーブル215〜部分217をそれぞれ個別的に読み出す
ことができる。強制的にセットした出力ステータスがデ
ィセーブルされたときは、種々の被制i装置を作動させ
又は外部リモート入出カラツク17に送出して休止させ
るデータは、出力イメージ・データ・テーブル215か
ら得られる。出力ステータスの強制設定をエネーブルし
たときは、外部リモート入出カラツク17に送出された
データは、以上で説明した3つの入力イメージ212〜
入力の強制的にオフの入力214による組合わせと同様
のプール論理を用い、3つの出力イメージ・データ・テ
ーブル215〜強制的にオフの出力の部分217の論理
的な組合わせとなる。
第8図を更に参照すると、リモートI10スギャナー・
モジュール20のメインRAM134におけるデータ構
造には、ステータス218も含まれている。ステータス
218には、リモートI10スキャナー・モジュール2
0がサービスした各外部リモート入出カラツク17にお
ける通信アダプタのステータスについてのデータが含ま
れている。このデータはI10直列リンク15を介して
これらの外部リモート入出カラツク17が情報を転送す
る際に用いられる。
多くのセンサ及び動作している装置のステータスを1ビ
ツトにより表わすことができるが、ある種の装置、例え
ば位置センサ、及びアナログ装置は複数のディジタル・
ワードを有する情報を発生するか、又は必要とする。こ
れらのデータを太きなデータ・ブロックとして、外部リ
モート入出カラツク17に、又はこれよりリモートI1
0スキャナー・モジュール20に転送することができる
メインRAM134のメモリ部219はこのようなデー
タ・ブロックの転送を制御するために必要な情報を有し
、データ・ブロック・メモリ220は実際のデータ・ブ
ロックを記憶する領域となる。
このデータ・ブロックの転送の詳細な説明は、「リモー
トI10インターフェイス・ラックを有するブロック転
送実行用のプログラマブル・コントローラ」と題する、
米国特許筒4.413.319号を参照すべきである。
第6図を再び参照すると、内部バス・コントロール回路
128はコントロール信号も入出力データ仲裁回路13
0に送出する。この入出力データ仲裁回路130はバッ
クプレーン11及びマイクロプロセッサ・バス131〜
133からメモリ・アクセス・バス121〜123にア
クセスをするために衝突する要求を解決させるものであ
る。2組のトランスミッション・ゲート、アドレス・ゲ
−1〜136及び双方向データ・ゲート138はメモリ
・アクセス・バス121〜123をマイクロプロセッサ
・バス131〜133に相互接続し、またメモリ・アク
セス・バス121を介して入出力データ仲裁回路130
からコントロール信号を受は取る。リモートI10スキ
ャナー・モジュール20の動作はマイクロプロセッサ・
バス131〜133に接続されている8ビツトのマイク
ロプロセッサ140により制御されている。マイクロプ
ロセッサ140はザイローグ■からz80として商業的
に入手可能なものであり、複数組のトランスミッション
・ゲート136,138.144.146及び入出力デ
ータ仲裁回路130を除き、マイクロプロセッサ・バス
131〜133に直接接続されている唯一の装置である
−組のアドレス・ゲート144はマイクロプロセッサ・
アドレス・バス133を入出力アドレス・バス143に
相互接続しており、また−組の双方向のトライ・ステー
ト・ゲート146はデータ・バス132及び142を相
互接続している。、2つのトライ・ステート・ゲート1
44及び146は入出力データ仲裁回路130からマイ
クロプロセッサ・バス131を介してコントロール信号
を受は取る。マイクロプロセッサ・バス131は入出力
バス141に直接接続されている。
入出力制御バス141〜143は複数の装置を相互接続
しており、これらの装置はリモーi〜I10スキャナー
・モジュール20から外部リモート入出カラツク17へ
のインターフェイスをする。
これらには、2つの同期直列入出力チャネル150及び
151となる直列入出力インターフェイス回路148が
含まれる。同期直列入出力ヂャネル150はライン・ド
ライバ152を有し、同期直列入出力チャネル151は
ライン・レシーバ153を有する。カウンタ・タイマ回
路(CTC)154及び直接メ[す・アクセス(DMA
)1ントローラ156も入出力コントロール・バス14
1〜143に接続されている。リモートI10スキャナ
ー・モジュール20の入出力バス部は、I10直列リン
ク15を介して通信した入出力γ−タを一時記憶するI
lo  RへM158により示すランダム・アクセス・
メモリを有する。読み出し専用メモリ(ROM)160
も入出力制御バス141〜143に接続されており、マ
イクロプロセッサ140が実行することによりリモート
I10スキャナー・モジュール20の機能を実行するプ
ログラムを有する。アドレス・デコード・°クロック1
62もリモートI10スキャナー・モジュール20の1
10部におけるアドレス・バス及び制御バスに接続され
ており、マイクロプロセッサ140が発生したアドレス
を解釈し、マイクロプロセッサ・バス131及び入出力
制御バス141を介して適当なエネーブル信号及びコン
トロール信号を発生する。
リモートI/′0スキャナー・モジュール2oの動作に
ついてはデータの収集及び転送について次の部分で説明
する。
コントローラの動作 本発明のプログラマブル・コントローラ1oの新しい構
成は、固有な方法により機能することを示している。本
発明の装置が従来のプログラマブル・コン1〜ローラと
異なった動作をする領域には、システム初期化、I10
データのlI’Y集及び転送が含まれる。しかし、この
コントローラと最も重要な相違はユーザ制御プログラム
の形式及び実行にある。各これらを固有な機能をそれぞ
れ詳細に説明しよう。
システム初期化 システムの電源投入時において、システム・コントロー
ラ16はシステム構成及び第13図のフローチャートに
示す他の種々のタスクを管理する。
電源立ち上がりの第17エーズ450はシステム・リセ
ット信号が終結した直後に発生する。この期間では、バ
ックプレーン11上に許容されたモジュールはなく、種
々のモジュールがそれ自身のメモリ及び他のサブシステ
ムのローカル・テストを実行する。各モジュールは、ロ
ーカル・テストを終了すると、バックプレーン11の制
御バス21の共通レディー・ラインを開放する。最後の
モジュールがその内部テストを終了したときは、共通レ
ディー・ライン上の信号が真となる。これは、システム
・コントローラ16を電源投入ステップに移行させるの
を知らせるものとなる。
第2のフェーズ451において、システム・コントロー
ラ16はバックプレーン11に行き、ラック12の各ス
ロットにおけるモジュールを要求してそれ自身を識別し
、モジュールについての種棒の情報、例えばモジュール
の種類、及びRAM69に記憶されている種々の割り込
み及びデータ・ポインタのアドレスをシステム・コント
ローラ16に供給する。システム・コントローラ16は
、各モジュールから受は取る情報に基づいて、システム
が正しく構築されていることを調べる。例えば、システ
ム上で1以上のプログラム実行プロセッサ・モジュール
18があるときは、各システム・コントローラ16が固
有のモジュール・サム・ホイール表示を有し、それらの
うちの2つが同一の表示を有しないことを確認する。
次のフェーズ452において、システム・コントローラ
16は各モジュールに予め割り付けたメモリ位置のバッ
クプレーン11の通信パラメータを記憶する。これらの
パラメータは、バックプレーン11を介して通信する方
法をモジュールに知らせるものである。あるモジュール
がバックプレーン11を介して通信する方法を知ると、
そのモジュールはそのメモリ・アドレス・ポインタをシ
ステム・コントローラ16のシステム・メモリ即ちRA
M69におけるメモリ位置にロードする。
これらのメモリ・アドレス・ポインタは、そのモジュー
ルのデータをアクセスするために他のモジュールが用い
、又は命令を送出するために用いられる。例えば、各モ
ジュールはその割り込みのアドレスをシステム・メモリ
のシステム・ステータス・ファイル201にロードする
(第7図)。このフェーズにおいて、種々の機能モジュ
ールは種々のシステム・コントローラ16のみと通信を
し、他の種類のモジュールとは通信をしない。第13図
を再び春照すると、初期化する次のフェーズは、モジュ
ールが互いに通信をし、必要とするデータの交換をでき
るようにする。このフェーズを終了すると、フェーズ4
54において、プログラマブル・コントローラ10はユ
ーザ定義の起動モード(典型的なものとして「プログラ
ム」又は「実行」)に通常の遷移をする。
システムは3つの基本的な動作モード、即ちシステム・
コントローラ16により決定されるプログラミング、プ
ログラム実行、及び故障モードを有する。これらのモー
ドは、それぞれ多数の内部モードに副分割される。例え
ば、実行モードは、プログラム実行の前に各リモートI
10スキャナー・モジュール2oがそれぞれの外部リモ
ート入出カラツク17からデータを集め、初9期の入力
イメージ・デープル210を作成させる初期入力ブリス
キャンの内部モードを有する。初期入力ブリスキャンに
続き、プログラム・スキャンを実行する。このプログラ
ム・ブリスキャンでは1以上のユーザ制御プログラムを
1回走査して初期出力信号イメージ・テーブル211を
作成する。これらの両初期入カブリスキャンの内部モー
ドを完了し、入力イメージ・テーブル210及び初期出
力信号イメージ・テーブル211を作成すると、種々の
出力信号をエネーブルし、実行モードはユーザ制御プロ
グラムの正式な実行を開始する。
ユーザ制御プログラムの系統及び実行を説明づ−るため
に、プログラマブル・コントローラ10内でデータ及び
コマンドを転送する方法を理解しなければならない。
データ収集及び転送 第1図、第2図及び第6図を参照すると、各リモートI
10スキャナー・モジュール2oは周期的に外部リモー
ト入出カラツク17にそれぞれ接続されているセンサか
ら入力データを収集する。
このようなデータの収集は例えば米国特許第4゜442
.504号において説明されているような従来のプログ
ラマブル・コントローラが実行するI10走査と同様で
ある。システムが実行モードにある間に、各リモートI
10スキャナー・モジュール20は各外部リモート入出
カラツク17を逐次要求し、これに接続されている検知
装置のステータスに関する入力データを送出する。
第6図を参照すると、外部リモート入出カラツク17か
らのデータ収集をマイクロプロセッサ14oにより実行
して、トライ・ステート・ゲート144及び146をエ
ネーブルする。これはメモリ・アクセス・バス121〜
123を入出力制御バス141〜143に接続するもの
である。これらのバスを説明した後、マイクロプロセッ
サ140は逐次、直列入出力インターフェイス回路14
8、ケーブル・ドライバ152及び153を介して外部
リモート入出カラツク17にコマンドを送出する。外部
リモート入出カラツク17は、これらのコマンドに応答
して、それらのセンサ入力をモートI10スキャナー・
モジュール20に送出する。受は取った入力データはI
lo  RAM158に一時記憶される。外部リモート
入出カラツク17からデータを収集するために用いる通
信プロトコルは、従来のコントローラが用いていたもの
と同様のものである。
収集された入力データは規則的な間隔により、Ilo 
 RAM158からメインRAM134内にある入力イ
メージ・テーブルに転送される。この転送は、入出力デ
ータ仲裁回路130がメモリ・アクセス・バス121〜
123、マイクロプロセッサ・バス131〜133及び
入出力制御バス141〜143を一緒に接続することを
要求することにより、マイクロプロセッサ140により
達成される。バックプレーン11がメモリ・アクセス・
バス121〜123、に接続されていないときは、入出
力データ仲裁回路130がメモリ・アクセス・バス12
1及びマイクロプロセッサ・バス131を介してトラン
スミッション・ゲート136.138,144及び14
6にコントロール信号を送出する。トランスミッション
・ゲート136.138,144及び、146は、コン
トロール信号に応答して、3組の内部バスを相互接続す
る。次いで、入出力データ仲裁回路130はマイクロプ
ロセッサ140に肯定応答信号を送出して、接続が完了
したことを表わす。マイクロプロセッサ140は、肯定
応答信号を受は取ると、I10RAM158とメインR
AM134との間でデータを転送する。入力データはメ
インRAM134の入力イメージ・デープル212(第
8図)に格納される。転送が完了すると、マイクロプロ
セッサ140は内部バスの相互接続を切り離すように入
出力データ仲裁回路130に信号を送出する。
他の周期的な間隔で、リモートI10スキャナー・モジ
ュール20はステータス・データを外部リモート入出カ
ラツク17に送出する。この処理は入力ステータス・デ
ータについて今説明したものと同様である。マイクロプ
ロセッサ140はメモリ・アクセス・バス121〜12
3、マイクロプロセッサ・バス131〜133および入
出力制御バス141〜143の相互接続を要求する。相
互接続を確立すると、メインRAM134における出力
イメージ・テーブルのデータがI10RAM158に転
送される。次にバスの相互接続が切り離される。Ilo
  RAM158の出力データは系統的にI10直列リ
ンク15を介して外部リモート入出カラツク17に送出
され、被制御装置の作動装置を作動又は休止させる。
以上で説明したように、Ilo  RAM158は、I
10直列リンク15を介して送出、又は受は取るデータ
を格納するために用いられる。通信処理において、マイ
クロプロセッサ140は、メインRAM134に格納し
たメインI10イメージ・テーブルをアクセスする必要
はない。通信タスクからメインRAM134及びI10
モジュールの個別的な内部バス構造からメインRAM1
34を開放することは、バックプレーン11の他のモジ
ュール、例えばシステム・コントローラ16、及びプロ
グラム実行プロセッサ・モジュール18がメインRAM
134のI10イメージ・テーブルのデータを直接アク
セス可能にする。このようなバックプレーン11からの
直接アクセスは、外部リモート入出カラツク17との通
信を同時に制御可能とするマイクロプロセッサ140を
巻き込むことはない。
システム・コントローラ16又はプログラム実行プロセ
ッサ・モジュール18のうちの一つが与えられた入力装
置のステータスを読み出すときは、特定のセンサから入
力データを受は取るリモートI10スキャナー・モジュ
ール20を調べるために、制御バス21〜アドレス・バ
ス23に対するアクセスを要求する。プログラム実行プ
ロセッサ・モジュール18又はシステム・コントローラ
16は、バックプレーン11のアクセスが許可されると
、適当なリモート110スキヤナー・モジュール20を
アドレス指定する。リモート11スキヤナー・モジュー
ル20内の内部バス制御回路128は、アドレス指定に
応答して、バックプレーン11の制御バス21を介して
アクセス要求信号を受は取る。次いで、内部バス制御回
路128は、メインRAM134に対する要求が他のモ
ジュールから受は取ったことを入出力データ仲裁回路1
30に通知する。メモリ・アクセス・バス121へ12
3が制御バス21〜アドレス・バス23に接続可能な適
当な時点で、入出力データ仲裁回路130は、アドレス
・バス・ゲート124及びデータ・バス・ゲート126
を介してバックプレーン11及びメモリ・アクセス・バ
ス121〜123を互いに接続可能なことを内部バス・
コントロール回路128に知らせる。内部バス・コント
ロール回路128がこの接続の完了について制御バス2
1を介して要求モジュールに肯定応答する。次いで、他
のモジュールは、メインRAM134の入出力データ・
イメージ・テーブルにデータを読み出し、又は書き込む
。データ転送は、1データ・ワードであってもよく、又
はワード・ブロックであってもよい。要求モジュールは
、全ての要求データがリモートI10スキャナー・モジ
ュール20から転送されるまで、バックプレーン11の
制御を保持している。アクセスが完了すると、制御バス
21を介して内部バス制御回路128に知らせ、バック
プレーン11に対づ゛る接続を切り離す。
リモートI10スキャナー・モジュール20の構造は、
バックプレーン11に接続されている曲のモジュールが
マイクロプロセラ4J140の介入なしに、メインRA
M134を直接アクセス可能にづるものであることが明
らかである。これは、マイクロプロセッサ140がセン
サ・データの収集、及び装置アクチュエータに対する出
力コマンドの送出の制御に専念することを可能にする。
各プログラム実行プロセッサ・モジュール18によるr
10イメージ・テーブルのデータに対するアクセスは、
「必要なとき」形式でよく、又はプロセッサがリモート
I10スキャナー・モジュール20から周期的に全11
0データ・テーブルのイメージを読み出してもよい。プ
ログラム実行プロセッサ・モジュール18により実行さ
れているユーザIll Iプログラムがセンサ・ステー
タスの評価を必要とする「必要なとき」形式では、プロ
グラム実行プロセッサ・モジュール18が再度制御バス
21〜アドレス・バス23をアクセスし、かつリモート
I10スキャナー・モジュール2゜を介する当該センサ
からデータを要求する。このモードは、ユーザ・プログ
ラムの実行に同期されている周期形式でない「非同期」
と呼ばれ、リモートI10スキャナー・モジュール20
に対するアクセスが「必要などき」形式である。
リモート11スキヤナー・モジュール20からセンサ入
力データをアクセスする他の方法(ま、同期、すなわち
周期形式である。プログラム実行プロセッサ・モジ、1
−ル18がユーザ制御プログラムを実行している与られ
た時点で、各リモートI10スキャナー・モジュール2
0から入力イメージ・テーブル210を読み込み、プロ
グラム実行プロセッサ・モジュール18内のRAM10
6にコピーする。例えば、プログラム実行プロセッサ・
モジュール18は、ユーザ制御プログラムにより各バス
を開始する直前に、バックプレーン11に対するアクセ
スを得ると共に、各リモートI10スキャナー・モジュ
ール20を調べて各スキャナーの入力イメージ・テーブ
ル210をRAM106にコピーする。これは、ユーザ
プログラムによる次のバスにおいて用いられる入力デー
タが一定のままであり、かつ各分岐が同一のセンサ・ス
テータスを用いて評価されるのを確実なものにする。ど
の動作モードを用いるかの選択は、オベレータ/プログ
ラマに残されており、特定の機能チャート・プログラム
及び実行しているユーザ制御プログラムに従う。オペレ
ータにより指定されない限り、システムは非同期モード
にデフオールドする。
第2図及び第8図を特に参照すると、リモートI10ス
キャナー・モジュール20における初期出力信号イメー
ジ・テーブル211は、当該モジュールのうちの一つに
接続されているアクチエータのステータスの変化に基づ
いて、直ちに更新される。特に、ユーザのプログラムが
被制御アクチュエータのステータスの変化を必要とする
ときは、以上で説明したように、プログラム実行プロセ
ッサ・モジュール18はリモートI10スキャナー・モ
ジュール2oに対して再度アクセスをし、変更すべき1
ビツト又は複数のビットを含む出力イメージ・テーブル
211のワードをメインRAM134から読み出す。プ
ログラム実行プロセッサ・モジュール18が当該出力イ
メージ・テーブル211のワードのコピーを受は取った
ときは、対応する部分を変更し、リモートI10スキャ
ナー・モジュール2oの初期出力信号イメージ・テーブ
ル211に変更したワードを戻す。このようなメインR
AM134の読み出し、及び書き込みにおいて、プログ
ラム実行プロセッサ・モジュール18は、制御バス21
ヘアドレス・バス23の制御を保持しているので、プロ
グラム実行プロセッサ・モジュール18がその出力端機
能を実行している間は、他のモジュールはリモートI1
0スキャナー・モジュール20の出力イメージ・テーブ
ル211を読み出すか、又は変更することができない。
これは、出力イメージ・テーブル211が変更されない
こと、又は他の実行モジュールが古いデータを用いるの
を確保する。しかし、ユーザによっては、与えられた被
制御装置が一時にプログラム実行プロセッサ・モジュー
ル18により作動され、又は休止されている状態にのみ
を制御プログラムにより確実なものどする。
あるモジュールがそのバックプレーン11の制御を放棄
したときは、当該システムの他の[ジュールはバックプ
レーン11をアクセスすることができる。同時に1以上
のモジュールがこのようなアクセスを要求したときは、
システム・コントローラ16におけるバックプレーン仲
裁回路84は衝突を解決する。バックプレーン仲裁回路
84は以上で説明したように、循環する優先順位機構を
実行する。この優先順位機構では、バックプレーン11
のアクセスについて最高の優先順位がラックのスロット
番号順で第1のモジュールから次のものに渡される。最
初のは左端のラック・スロットのモジュールが最高の優
先順位を有し、優先順位は右へのスロットに行くに従っ
て低くなる。そのような点で、第2、第3及び第4のス
ロットにおけるモジュールとの間で競合が存在するとき
は、第2のモジュールが再びアクセスを獲得する。モジ
ュールにアクセスの許可が与えられると、優先順位が1
モジユールのスロットだけ右ヘシフトされる。ここでは
、第2のモジュールが最高の優先順位を有し、第1のス
ロットのモジュールが最低の優先順位を有する。次に、
第1、第3及び第8のスロットのモジュールが同時にバ
ックプレーン11に対するアクセスを要求したときは、
第3のモジュールがこれらのうちで最高の優先順位を有
するので、これがアクセスを獲得する。その場合に、第
8のモジュールがアクセス権を有し、最終的に第1のモ
ジュールがバックプレーン11をアクセスするのが許可
される。最後のスロットのモジュールが最高の優先順位
となった後、最高の優先順位は最初の、即ち左端のモジ
ュールに戻される。
システム・コントローラ16のシステム・メモリ(RA
M)69もバックプレーン11の他のモジュールにより
直接アドレス指定されるので、これらのモジュールはス
テータス・データに対するアクセスが可能である。ユー
ザ制御プログラムの実行中に、システム・コントローラ
16により実行される主要様能は、ローカル・エリア・
ネットワーク28及びプログラミング端末24上の通信
を処理し、かつ実行することに関するものである。
システム・コントローラ16又はリモートI/Oスキへ
7ナー・モジュール2oからデータを必要とするモジュ
ールは、バックプレーン11を介して直接これらのモジ
ュールh日らメインRAMをアクセスすることができる
。しかし、あるモジュールがラック12の他のモジュー
ルにデータ・ブロック又はコマンドを送出したいときは
、2つのモジュール間の通信のために異なる技術を採用
しなければならない。
モジュール間通信 以上で説明したように、I10データをバックプレーン
11上の一方のモジュールから他方のモジュールに直接
転送することができる。この直接転送は、データが非常
に特殊なデータ構造、例えば他のモジュールのI10イ
メージ・テーブルから読み出し、又はこれに書き込むと
きに可能である。しかし、現在のマイクロプロセッサ・
システムにおいては、予め定めたデータ構造に存在しな
い俵形式のメツセージがモジュール間でしばしば転送さ
れる。このようなメツセージにはより汎用的なモジュー
ル間通信プロトコルが必要である。
ここではこの処理を「メール」発送と呼ぶ。
メールを受は取ることができる各モジュール内には、第
14図に示すように一組のメールボックスがある。この
−組のメールボックスには、「優先j及び「定期1便の
部分がある。各部分は、それぞれ2ワードのメモリ位置
からなる16メールボツクスを有する。これらの16メ
ールボツクスはメイン・プログラマブル・コントローラ
のラック12の8スロツトにおいてモジュールと、補助
ラック(図示なし)における8モジユールとメツセージ
の交換が可能である。各部分の各メールボックスは2つ
のラックにあるスロットのうちの一つに対応する。構築
処理において、各モジュールはそのメールボックス・セ
ットの最上端のアドレスを当該モジュールのデータを有
するシス7ム・ステータス・ファイル201(第7図)
の領域に占き込む。各モジュールのメールボックス割り
込みのアドレスもシステム・メモリ(RAM)69のシ
ステム・ステータス・ファイル201に記憶される。
「プライオリティ−・メールJメツセージは受信モジュ
ールが直ちに実行する緊急コマンドを形成している。こ
の緊急コマンドはその受信を検出するメイル取り扱いタ
スク内で実行されるが、又は処理のために行き先タスク
に渡される。プライオリティ−・メール・メツセージは
第12A図に示すように2つの12ビツト・ワードから
なる。
その第1ワードの第1ビツトは0であり、プライオリテ
ィ−・メールとしてそのメツセージを表ゎしている。第
1ワードの次の7ビツト・フィールド(CMD)は、実
行されるべく、法衣から選択されたコマンドの符号化形
式を含む。
表 コマンド・    コマンドの説明 コード メールボックス・コマンドの肯定応答 機能チャート・ステップの実行開始 割り込みルーチンの実行開始 システム・モードの変更 電源投入ステップの変更 611   電源投入終了 7H活性なシステム動作の停止 第1ワードの残りのビットは全コマンドで使用されない
。第2ワードは受信モジュールのローカル・メモリ内の
位置に対するポインタであり、コマンドを実行するデー
タを有する。例えば、プライオリティ−・メール・メツ
セージは1プログラム実行プロセッサ・モジュール18
により送出され、このような他のモジュールが与えられ
たR能チャート・ステップにおける特殊なユーザ・プロ
グラムの実行を開始することを知らせる。この時点では
、第1ワードのコマンド(CMD)は′°21」″であ
り受信モジュールが新しい機能チャートのステップの開
始を知らせるものである。第2ワードは受信メモリのア
ドレスを有づ−るテーブルのオフセット・ポインタであ
り、この受信メモリには当該ステップ及びその制御プロ
グラムについての情報が含まれている。この情報は受信
モジュールの機能チャート・プログラム・インタプリー
タ・プログラムに渡される。
第12A図及び第14図を参照すると、メールをソース
・モジュール230に送出づるために、先ずそのメモリ
に2ワード・メツセージを形成する。このメツセージの
転送はソース・モジュール230のメール取り扱いタス
クにより制御される。
プライオリティ−・メール転送処理はソース・モジュー
ル230により開始され、バックプレーン11を介して
システム・メモリ(RAM>69をアクセスし、メール
割り込みのアドレスと、受信モジュール232のメール
・ボックス・セット233の一番上のアドレスを得る。
これらのアドレスはシステム・コントローラ16のシス
テム・メモリ(RAM)69のシステム・ステータス・
ファイル201に記憶される(第7図)。ソース・モジ
ュール230は受信モジュール232のメール・ボック
ス・スロワ1〜をアクセスするために、メール・ボック
ス・セット233の一番上からインデックスを知る。次
に、ソース・モジュール23oのメール処理タスクは再
びバックプレーン11に対するアクセスのシークをする
。メール処理タスクがバックプレーン11に対するアク
セスを受は取ったときは、ソース・モジュール230は
受信モジユール・メモリ234のプライオリティ−・メ
ールボックスの第1ワードをチエツクする。
プライオリティ−・メールボックスの第1ワードがOで
なく、前のメツセージが未だプライオリティ−・メール
ボックスにあることを表わしているときは、ソース・モ
ジュール230はしばらく待機してから再試行する。第
1メールボツクス・ワードが全てOとなっているのを検
出したときは、ソース・モジュール230はコマンド及
びアドレス・オフセット・ポインタを含む2つのメツセ
ージ・ワードを受信メールボックス・リストのスロット
に書き込み、受信モジコール232のメールボックス割
り込みアドレスに割り込みワードを送出する。
受信モジュール232のメール処理タスクは、割り込み
に応答して、プライオリティ−・メール・エントリを読
み出す。このプライオリティ−・メール・エントリが新
しい芸能ヂャー1−・ステップを開始させるコマンドの
ときは、機能チャート・インタープリタ−・プログラム
のキューに進む。
次いで、そのメール・ボックス・セット233のエント
リ及び割り込みによりソース・モジュール2301、:
肯定応答を返送する。この時点で、受信モジュール23
2はソース・モジュール230のメールボックスのスロ
ットにOをロードして他のメツセージの受信に備える。
「通常メール」は典型的なものとして2以上のデータ・
ワードを転送するのに使用されるが、以上で説明したコ
マンド・メツセージもこれらのメールボックスのスロッ
トに送出することができる。
例えば、通常メールはシステム起動のときに各モジュー
ルに構築データを送出するために用いられる。また、通
常メールは通常の動作において、直ちに応答又は動作を
必要としないメツセージを送出するときにも用いられる
。第14図を更に参照すると、ソース・モジュール23
0は、転送すべき数ワードを有するときは、そのデータ
をその日−カル・メモリ238のプロ゛ツク236にア
ッセンブリする。次に、ソース・モジコール230はそ
のメモリのデータを行き先モジュールがアクセスするた
めに必要とする全てのパラメータを、他のメモリ・ブロ
ックに記憶し、ソース・モジュール230に対するアク
セスの肯定応答をする。これらのパラメータは、従来の
プログラマブル・コントローラにおいて用いられたもの
と同様の予め定めたフォーマットを有し、データ・メツ
セージのアドレス、メツセージの長さ、データを用いる
行き先モジュールのタスク、及びデータの転送に必要な
他の情報を含む。
次に、2ワードのメツセージはソース・モジュール23
0のメモリ238に登録される。このメツセージのフォ
ーマットを第128に示す。第1ワードの第1ビツトは
2進数の1であり、通常メールのメツセージを表わして
いる。次の3ビツトは全てOであり、コマンドに対立す
るデータ・ブロック形式のメツセージを表わしている。
第1ワードの残りのビット、及び第2ワードの16ビツ
トは全て、ソース・モジュール230内の転送アドレス
の先頭アドレスである。
次に、ソース・モジュール230はそのメール処理タス
クを知らせて通常メールのメツセージを送出する。この
メール処理タスクは、プライオリティ−・メールのよう
に、バックプレーン11をアクセスし、受信モジュール
232のメモリにおいて通常メールボックスのスロット
を試験してこれが空きであることを確認する。送り先モ
ジュールにおけるメールボックス・スロットの第1ワー
ドが全てOのときは、2ワードの通常メツセージをその
メールボックス・スロットに書き込む。受信モジュール
232のメールボックス・スロットがロードされたとき
は、割り込みワードを受信モジュール232のメール割
り込みアドレスに送出する。
受信モジュール232は割り込みされているときは、メ
ツセージのためにそのメールボックスを走査する。受信
モジュール232は、プライオリティ−・メールと異な
り、通常メールは直ちに処理しないが、時間が許すなら
ば処理用のキューにメール・エントリを置く。通常メー
ルの処理はユーザ制御プログラムのパフォーマンスに比
較して低い優先順位のタスクである。受信モジュール2
32に時間があるときは、受信モジュール232はバッ
クプレーン11を介してソース・モジュール230のメ
モリ238をアクセスし、パラメータ・ブロック240
の情報を読み出づ゛。次に、受信モジュール232はこ
れらのパラメータを用いてメツセージ・データ・ブロッ
ク236を以上で説明したデータ収集処理によりローカ
ル・メモリ234にコピーする。受信モジュール232
は、メツセージ・データ・ブロック236をコピーした
後、通常メールによって嵩定応答をソース・モジュール
230に送出し、通常メールボックス・スロットを0に
する。次に、このメツセージ・データ・ブロック236
は受信モジュール232により処理可能になる。
データ及びコマンドがモジュール間で送出される方法を
理解することにより、異なる形式のプログラムの実行を
説明することができる。
プログラム形成及び実行 本発明のプログラマブル・コントローラはいくつかの汎
用プログラム、例えば機械作動プログラム、独立バック
グラウンド・プログラム、割り込みサブルーチン及び故
障サブルーチンを実行することができる。橢械作動プロ
グラムはプログラマブル・コントローラ10のユーザに
よって開発され、その特定の機械又はプロセスに適用す
る。非常に複雑な処理の場合は、機械作動プログラムは
逐次的な機能チャートにより定義され、処理の各主要ス
テップを示している。個別的なユーザ制御プログラムは
各ステップの機能を実行するように開発される。これら
のユーザ制御プログラムはラダー・ダイアグラム・プロ
グラム、及びハイレベル言語により書かれた制御プログ
ラムを有する。
この実施例はユーザ制御プログラムのコンパイル・バー
ジョンを実行するので、アッセンブリ言珀、及びハイレ
ベル言語、例えばBASICをユーザ111@プログラ
ム用のソース・コードを発生するために用いることがで
きる。ユーザ制御プログラムは異なるプロセッサ・モジ
ュールに実行が割り付けられる。しかし、本プログラマ
ブル・コントローラは一つの機械作動プログラムに従っ
てこの並列プロセッサを整合させるものである。
独立バックグラウンド・プログラムは、制御プログラム
の実行において従属的なユーザ・プログラムであり、時
間に厳密でない良い動作、例えば他のコンピュータから
のデータ収集及びレポート生成に用いられる。割り込み
ルーチンは与えられた事象が生起したときに高い優先順
位の動作を実行させ、一方故障ルーチンはプログラマブ
ル・コントローラ1oか、又は被制御装置の検出された
誤り状態からうまく復旧させる。
各プログラム実行プロセッサ・モジュール18はそのシ
ステムのプログラム実行プロセッサ・モジュール18か
ら完全に独立して動作し、かつ他のモジュールの処理に
よって影響されないそれ自身のオペレーティング・シス
テムを有する。プログラム実行プロセッサ・モジュール
18のルーチンは当該上ジュールの資源をオペレーティ
ング・システムと共有し、どの程度の処理時間を同時に
実行される各ルーチンに割り付けられるかを決定する。
プロセッサ・モジュールにより種々の形式のプログラム
を順序よく実行するために、優先順位システムを確立す
る。最高の優先順位は、時間が厳格なためその実行に割
り込むことが許されない種棒の割り込みルーチンからな
る。次の優先順位では、最高の優先順位割り込み又は故
障が生起したときを除き、通常は完了まで動作する他の
全ての割り込みが含まれる。
割り込みルーチンはプロセッサ入力割り込み及び選択可
能な時間割り込みを有する。プロセッサ入力の割り込み
は外部光主入力信号により開始され、かつ特殊な入力条
件が生起したときにのみ実行されることを意図した高い
優先順位ルーチンに用いられる。プロセッサ入力割り込
みに対応するために、各プログラム実行プロセッサ・モ
ジュール18は外部装置から割り込み信号を受は取って
処理する割り込みインターフェイス回路99(第4図)
を有する。選択可能な時間割り込みは、システムのリア
ル・タイム・りOツクにより指定された一定の間隔で開
始される。各割り込みには一つの優先順位が定められ、
1以上の割り込みが保留されているときは、高い優先順
位を有するものが最初に実行される。
種々の他のプログラム形式の実行はプログラムをグルー
プに分け、かつ各グループに処理時間の一部を割り付け
ることにより進められる。与えられた実行時間長は、時
間に厳密でない動作、例えばバックグラウンド・タスク
、定期的なモジュール間メツセージの処理、及び種々の
タスクとの通信を実行するためのシステム構築中に、オ
ペレータにより定義されてもよい。これらの低い優先順
位は[バックグラウンド・タスク」と総括的に呼ばれる
が、バックグラウンド・タスクがこれらの動作のうちの
1形式に過ぎないことが理解される。
弗型的なものとして、オペレータは、これらのタスクを
処理するプログラム実行プロセッサ・モジュール18の
処理時間の20.30.40又は50パーセントを選択
することができる。オペレーティング・システムはこれ
らに割り付けられた期間にこの形式の種々の動作量の時
間を区切る。割り付けられた時間が経過すると、これら
のタスクの処理はこれらの動作の他の期間になるまで保
留される。更に、プロセッサ・モジュールが制御プログ
ラムを坦在実行していなければ、全処理時間は必要に従
ってバックグラウンド・タスクに与えられる。
残りの処理時間は機械操作プログラムに割り付けられる
。このタスクは通常時間的に厳格なので、一般にバック
グラウンド・タスクに割り付けられた時間量は、どの程
度の時間を機械操作プログラムのために残す必要がある
かの関数となる。バックグラウンド・タスクに割り付け
られた処理時間量を慎重に選択することにより、オペレ
ータは実行が機械操作プログラムを介して、ある機械制
御応用で望ましいとされる規則正しい間隔で発生させる
ことができる。機械操作プログラムは同II した割り
込みがバックグラウンド・タスク期間の開始を知らせる
まで、動作し続ける。
本発明のプログラマブル・コントローラは機械操作プロ
グラムを実行する改良システムを提供するので、これら
のプログラムを詳細に説明する。
機能チャート・プログラムは、一連のステップとして総
合的な制御処理を定め、多重プログラム・プロセッサ・
モジュールにより並列にII機械操作プログラム異なる
部分の同時パフォーマンスを協調させる機能を有する。
約束により、各ステップには、何時そのステップを完了
するのかを指定する遷移条件が続く。独立したユーザ制
御プログラム、例えばラダー・プログラムは機能チャー
トの各ステップ及び遷移のために記述されている。
機械操作プログラムはプログラミング端末24、又はロ
ーカル・エリア・ネットワーク28により接続されてい
るパーソナル・コンピュータ若しくはホスト・コンピュ
ータに書き込まれる。これらのプログラミング装置は必
要なソフトウェアを有するので、プログラマは機能ヂャ
ート及びユーザ制御プログラムを作成することができる
。端末及びプログラミング・コンピュータも各ユーザ制
御プログラムを機械言語命令にコンパイルして、プログ
ラム実行プロセッサ・モジュール18のうちの一つによ
る実行を管理する。ラダー・プログラムをユーザ定義制
御プログラムとして用いるときは、ごれを確立する技術
は、従来のプログラマブル・コントローラと同一である
。唯一つの相違は完了したプログラムが複雑なことであ
る。
機能チャー1・の確立は従来のプログラマブル・コント
ローラと本発明の本プログラマブル・コントローラと異
なる。機能チャートはプログラミング端末24又はプロ
グラミング・コンピュータのスクリーン上に図形的に未
だ構築されている。ソフトウェア及びこれを実現する技
術は、従来のプログラマブル・コントローラと10によ
り実現化されているものと同一である。しかし、機能チ
ャートは、従来のプログラマブル・コントローラ異なり
、実行可能なコードを発生するのではなく、−組の記述
子を発生する。この記述子は、どのユーザが実行するプ
ログラムを制御するのか、何時そのようにするのか、か
つどのプロセッサを用いるのかを、プログラマブル・コ
ントローラに知らせる指令と考えることができる。
機能チャートの例を第10図に示す。機能ヂャートの各
処理ステップはステップ403のような四角により表わ
されている。また、一方のステップから他方のステップ
への遷移は線402のような水平線により表わされてい
る。機能チャートの最初のステップは、ステップ400
によって示すように、二重の四角いブロックにより定め
られる。
しかし、第10図の機能チャートにおける最初のステッ
プ400が機能チャートの一番上にあるが、以下で明ら
かとなるように同時構築内を除き、図面の殆んどであっ
てもよい。従来のプログラマブル・コントローラ10の
機能チャートにより、ステップ400にはメモリ内にフ
ァイル名(例えば、ファイル1)があり、このファイル
名には当該ステップにおいて実行すべきユーザ制御プロ
グラムが含まれる。ステップ400は従来の機能チャー
トと異なり、プログラム実行プロセッサ・モジュール1
8の表示(Pi、P2等)も含まれ、特定の機能チャー
ト・ステップのユーザ制御プログラムを実行する。本発
明のプログラマブル・コントローラ1oはPl及びP2
を表わす2つのプログラム実行プロセッサ・モジュール
18を有するが、付加的なプロセッサ・モジュールをラ
ック12に挿入することができる。最初のステップ及び
ユーザυ制御プログラムのファイル番号に割り付けられ
たプログラム実行プロセッサ・モジュール18は、シス
テム・コントローラ16のメモリ(第7図)のシステム
・ステータス・ファイル201に最終的に記憶されるの
で、プログラマブル・コントローラ10はどこから機械
操作プログラムを実行するのかを知る。
ステップ400のユーザ制御プログラムは第1のプロセ
ッサ・モジュールP1により実行され、プロセッサ・モ
ジュールP1はプログラム条件が満足されるまで、その
プログラムを反復して実行する。このプログラム条件は
機能チャートのステップ400の直ぐ下の)1移(例え
ば402のような遷移)により表わされている。典型的
には、)コ移402は1段階のラダー・プログラムによ
り定められ、例えば関連するステップとしてPlと同一
のプロセッサ・モジュールにより実行される。
IJ移に関するプロセッサ・モジュールの割り付けは、
機能チャート編集プログラムによって自動的に行なわれ
る。この段階ラダー・プログラムが真であったときは、
ステップ400のユーザ制御プログラムの実行及びプロ
グラム実行は次の機能チャートのステップ403に進む
。ステップ400、遷移402及びステップ403を含
む第10図の機能チャートの部分は、典型的なものとし
て、「シーケンス」構造と呼ばれており、各ステップに
は逐次他のものが続く。
ステップ403には3つの独立したプログラム分岐が続
いており、そのうちの一つのみが対応する遷移条件に基
づいて選択され、実行される。多くの分岐から一つを選
択することを「選択」構築と呼ぶ。最初の分岐には、フ
ァイル12に含まれているユーザ制御プログラムにより
定められる初期遷移404と、ファイル3に含まれてい
るユーザ制御プログラムにより定められる処理ステップ
407とが含まれる。処理ステップ407にはファイル
15に含まれる終結遷移条件410が続く。
同様に、中間の分岐には初期遷移405及び終結遷移条
件411に続く処理ステップ408が含まれる。選択構
造の第3及び最終分岐は、初期遷移406、メイン処理
ステップ409及び終結遷移412からなる。終結遷移
条f+412の次にはGOTO宣言があり、これが実行
されたとぎは、定義したラベルが現われる点にプログラ
ムをジャンプさせる。この場合は、プログラムが機能チ
ャートの一番下のステップ419の前にあるラベルパB
 RA D ”にジャンプする。初期遷移のファイル1
2.13及び14は全て前の機能チャートのステップ4
03と同一のプロセッサ・モジュール(Pl)に記憶さ
れ、かつ実行される。選択構築の3分岐のうちの一つの
みが実行されるので、これらは全て1台のプログラム実
行プロセッサ・モジュール18、この場合は第1のプロ
セッサ・モジュールP1により処理されることに注意す
べきである。しかし、異なるプログラム実行プロセッサ
・モジュール18により実行するように異なる分岐を定
義することもできる。
選択構築に進む前の機能チャートのステップ4o3が完
了すると、各分岐の初期遷移404〜4o6の条件を逐
次調べる。真であると判断された最初の初期遷移は、次
にどの分岐を実行するのかを決定する。例えば、ファイ
ル13におけるユーザ制御プログラムにより定義される
条件の初期遷移405が最初に真となったときは、ステ
ップ408を有する中間分岐のみが実行される。ステッ
プ408のユーザ制御プログラムの完了は、ファイル1
6にある終結遷移条件411により表わされる。当該遷
移が真となったときは、プログラムはファイル16にあ
るステップ413に遷移して第2のプロセッサ・モジュ
ールP2により実行される。
遷移414により示すステップ413が終了すると、機
能チャートはここで「同時」構築と呼ぶものに進む。同
時構築は、それぞれ少なくとも一つのステップを含む複
数の機能チャート分岐を備えている。これらの分岐は、
その名称が意味するように同時に実行される。この場合
は、3つの処理ステップ415〜417が同時に実行さ
れる。
最初のステップ415は最初のプロセッサ・モジュール
P1により実行されるべくファイル7に記憶されている
制御プログラムである。第2の分岐ステップ416のプ
ログラムはファイル8に記憶されており、プロセッサ・
モジュールP1により実行される。一方、第3の分岐ス
テップは、ファイル9内のプログラムにより表わされ、
第2のプロセッサ・モジュールP2に割り付けられてい
る。
ファイル7及び8は共にプロセッサ・モジュールP1に
よる実行用に割り付けられているので、各ファイルに含
まれているユーザ制御プログラムを連結させる(叩ら、
−緒に結合して逐次実行させる)。この連結は本発明の
プログラマブル・コントローラにおいて実施されている
ものと同一のものである。しかし、従来のプログラマブ
ル・コントローラであればファイル9を含む全ての同時
構築ファイルを連結することが必要となるが、本発明の
プログラマブル・コントローラ10では、ファイル9が
プロセッサ・モジュールP2により実行されるように割
り付けられ、また残りの2つのファイル7及び8がプロ
セッサ・モジュールP1により実行のために割り付けら
れる。プロセッサ・モジュールP1による実行のために
プログラマブル・コントローラ1oが3つの独立したプ
ログラム実行プロセッサ・モジュール18に含まれると
きは、各分岐の機能チャートのステップが別個のモジュ
ールのうちの一つにより実行されるように割り付けられ
る。
例えば、第10図の機能図の同時構築部分は、一つの製
造プロセスを制御することができる。この場合に、ファ
イル7のユーザ制御プログラムが種々のセンサを読み込
むことにより、プロセスを制御し、かつこれに応答して
種々の製造装置の部分を作動又は休止させている。ファ
イル8はブログラミング端末24上にファイル7のプロ
グラムが制御しているプロセスのステータスを表示する
制御プログラムからなる。この場合に、ファイル9のユ
ーザ制御プログラムは他のセンサを監視し、与られた製
造誤りが発生したことをこれらのセンサが示したときは
、警報を発することができる。
同時構築部の遷移出力は、ここで[収束]構築と呼ぶも
のによって表わされている。この収束構築は一つの遷移
ステップ418を有する。この遷移ステップ418では
、ファイル19のユーザ制御プログラムをそれぞれ走査
した後に、第2のプロセッサ・モジュールP2がファイ
ル9のユーザ制御プログラムを実行している。この収束
構築遷移は右端の同時分岐と同一のプロセッサ(例えば
P2)に対するプログラミング処理により自動的に割り
付けられる。遷移418が真であるときは、同時構築の
各分岐の実行はこれらの現在プログラム走査の終了で終
結する。システム・サポート・ファイル203は、第7
図のデータ構造に関連して以上で説明したように、機能
図の同時部分のステップ・カウンタ用にメモリ領域を有
する。これらのカウンタのうちの一つは、エントリした
ときに、当該構築における同時処理ステップの番号によ
り同時部分にロードされる。遷移条件418が満足され
ると、各ステップ415〜417がそのプログラム走査
を完了したときにこのカウンタを減少させ、停止させる
。カウンタがOになると、全同時処理ステップが完了し
、収束構築に続く次のステップ419への遷移が生起可
能となる。
従来の装置では、同時に実行された3つの機能チャート
・ステップ415〜417(第10図)は、1ブロセツ
ザの実行のために集約される必要があり、与られたユー
ザ制御プログラムの実行が3つのプログラムの全てによ
り1バス当り1回だけ発生した。従って、以上の例から
、ファイル9の制御プログラムが警報機能であったとき
は、ファイル7及び8の制御プログラムの走査の完了の
ときだけ走査される。これにに対して、並列処理を採用
している本発明の多重プロセッサ・システムでは、警報
機能用のユーザ制御プログラムがこれと連結されている
他のユーザ制御プログラムの介入なしに、それ自身のプ
ロセッサ・モジュールP2により繰り返して処理される
。これは時間に厳格な条件を、1プロセツサ・システム
が可能とするものより頓繁な監視を可能にする。
機能チャートの図面表示それ自体は、プログラマブル・
コントローラ10により実行されることはないが、プロ
グラミング端末ソフトウェアにより用いられ、各プログ
ラム実行プロセッサ・モジュール18の一組のデータ・
ファイルをアッセンブルさせる。特に、機能チャートは
、機能チャートの動作を記述する一連の記述子ファイル
に圧縮される。各記述子には、機能チャートにおいて1
ステツプのユーザ制御プログラムを識別するデータと、
終端遷移を識別するデータと、次の機能チャート部分が
実行予定の記述子(及びそのプロセッサ・モジュール)
を識別するデータとが含まれる。これらの記述子ファイ
ルは、機能チャートにおいて定義されたプログラム実行
プロセッサ・モジュール18に記憶される。各プログラ
ム実行プロセッサ・モジュール18における機能ヂャー
ト・インタープリタ−記)ホ子は、その記述子ファイル
を用い、各ユーザ・プログラムの実行を制御する。
第10図の機能チャート例を参照すると、第11八図に
示すプログラミング端末24によりマスク記述子ファイ
ル・テーブルを発生させている。
記述子は、記述子を発生した機能チャート構造(即ち、
シーケンス、選択、同時性、及び収束)に対応する4つ
に分類される。第10図及び第11A図を参照すると、
最初の記述子430は機能チャートのシーケンス部を表
わし、その内容が第11A図の右側に示されている。記
述子の第1ワードは記述子ファイルの形式(この場合は
シーケンス形式)を示す数ビットのTを有する。第1ワ
ードの残りの部分は、対応する機能チャート・ステップ
のために実行されユーザ制御プログラムを有するファイ
ル番号を識別する。この例における機能チャート・ステ
ップ400には、プロセッサ・モジュールP1のファイ
ル1におけるユーザ制御プログラムが含まれている。更
に、第1記述子430は、ユーザ制御プログラムの実行
が終了となる前に、発生する条件を識別する遷移ファイ
ルの番号も有する。ファイル11は機能チャートにおけ
る点402で指定される第1記述子430の遷移ファイ
ル番号である。遷移ファイルの番号フィールドの2ビツ
トは、条件の実際ステータスに無関係に、遷移が真又は
偽に強制的にセットさせるのかを指定することができる
ように、オペレータに定義させる。これは、プログラム
をデバッグする際に特に有用である。更に、記述子43
0は現在記述子ファイルが完了したときに用いられる次
の記述子ファイルと、これを記憶されプログラム実行プ
ロセッサ・モジュール18とを識別する。
この実施例では、最初の記述子430は次の記述子とし
て「記述子2」を定義する。この記述子2は最初のプロ
セッサ・モジュールP1が実行するために割り付けられ
るものである。
第11A図の第2の記述子ファイル432は第10図の
機能チャートの選択構築により発生したものである。第
2の記述子432の第1ワードは、これが選択形式であ
ること、及びファイル番号2にはこのステップのユーザ
制御プログラムが含まれることを表わしている。記述子
2の残りには、遷移アレーと、これらに対応する次の記
述子ファイル番号及びプロセッサとが含まれている。例
えば、第10図の機能チャートに示すように、遷移アレ
ーの要素は遷移ファイル12を示し、その次の記述子は
記述子3である。遷移アレーの第2要素は遷移ファイル
13及びこれに続く記述子14を示す。また、遷移アレ
ーの最終エントリは次の記述子5が続く遷移ファイル1
4を示す。
3つの選択分岐の記述子(記述子3,4及び5はシーケ
ンス形式のものであり、最初の記述子43oと同一のフ
ォーマットを有する。第6の記述子は記述子3及び4に
おいて次の記述子ファイル番号として示されている。し
かし、第3の選択分岐の記述子5における次の記述子フ
ァイル番号は、機能チャートにおける機能チャートGO
TO′rL言のために、ステップ419の第10の記述
子である。
次の形式の記述子は、第10図に示す機能チャートの同
時構築により発生した、第11A図の第6の記述子43
4により表わされている。第6の記述子434はその形
式に関する情報と、ユーザ制御プログラムのファイル番
号と、実行すべき1遷移条件ファイルとを有する。更に
、記述子434は各同時構築分岐の記述子(この実施例
では、分岐ステップ415〜417)を表わす次の記述
子ファイルのアレーを有する。これらの次の各記述子は
、それぞれ遷移条件が発生したときに、指定されている
そのプログラム実行プロセッサ・モジュール18により
実行される。
最終形式の記述子ファイルは、各同時実行分岐、例えば
第10図の機能チャートのステップ415〜417の実
行を制御する収束記述子である。収束記述子は各分岐に
ついて発生される。分岐ステップ415.416及び4
17は第11A図の記述子7,8及び9により表わされ
ている。全ての収束記述子は、記述子435及び436
により示すように、その形式を表わす数ビット(T)を
有する1ワードと、機能チャート・ステップのラダー・
プログラムを含むファイル番号とを有する。
更に、各収束記述子ファイルはシステム・コントローラ
16のメモリ内のシステム・サポート・ファイル203
に同時カウンタ・アドレスに対するポインタも有する。
収束部に関連する機能チャート・インタープリタ−・ソ
フトウェアの記述子の説明により明らかとなるが、同時
カウンタは、全ての同時分岐がその実行を完了したとき
を判所するのに用いられる。更に、全ての収束分岐の記
述子ファイルは次に実行すべき記述子ファイル番号と、
これを含むプロセッサ・モジュールとを有する。右端の
分岐の収束記述子ファイル(この場合は、第9の収束記
述子)は、その発生が同時実行を終了したときの遷移条
件を含むファイルを識別する。
プログラミング端末24により独立した全ての記述子を
アッセンブルすると、これらを解釈するために割り付け
られていた特定のプロセッサ・モジュールP1又はP2
に従って、記述子は複数のグループに分類される。記述
子により指定される種々のユーザ制御プログラムは、プ
ロセッサ・モジュールによる同様に分類される。次に、
記述子データ及びユーザ制御プログラムのファイルは、
プログラミング端末24によりプログラマブル・コント
ローラ10のプログラム実行プロセッサ・モジュール1
8に転送される。例えば、機能チャートの記述子1〜5
.7及び10.17及び20は第118図に示すように
、1つのデータ構造にアッセンブルされる。このデータ
構造は第1プログラムを実行するプロセッサ・モジュー
ルP1のプログラム・メモリ領1ii!313にダウン
ロードされる。残りのステップの記述子及びユーザ制御
プログラム・ファイルと、遷移とは、第11C図に示す
ように、次のプロセッサ・モジュールP2のlこめに他
のデータ構造にアッセンブルされる。
分類したファイルがそのプログラム実行プロセッサ・モ
ジュール18にダウンロードされたときは、プログラマ
ブル・コントローラ10は、[実行]モードに設定され
る。各プログラム実行プロセッサ・モジュール18には
、ランダム・アクセス・メモリ106に記憶されている
記)ホ子を解釈し、その記述子が必要とするユーザ制御
プログラムを実行する機能チャート・インタープリタ−
・プログラムが含まれている。機械操作ステップの実行
が終了すると、例えば遷移条件が満足されると、インタ
ープリタ−・プログラムは次の記述子ファイルの解釈を
開始、又はこれを開始し始めるための次の記述子を有づ
−る他のプログラム実行ブ[」セッサ・モジュール18
に知らせることができる。1以上のプログラム実行プロ
セッサ・モジュール18は、記述子の要求により、同時
に機械操作プログラムの異なる部分を実行することがで
きる。
第16図〜第19図は各プログラム実行プロセッサ・モ
ジュール18(第4図)をエネーブルし、種々の形式の
記)!1!子を解釈し、かつ処理するプログラムのフロ
ーチャートを示す。この処理は、第16図の一番上にあ
るステップ590から開始され、かつプロセッサ・モジ
ュールのマイクロプロセッサ98はランダム・アクセス
・メモリ106に記憶されている活性な記述子ファイル
番号のリストを調べる。
この活性なリストには、プログラム実行プロセッサ・モ
ジュール18によって現在解釈されている各記述子ファ
イルの表示が含まれている。記述子のリストがないとき
は、プロセッサ・モジュールは、ステップ609におい
てプロセッサ・モジュールが処理コマンドを受は取るま
で継続する待機状態になる。このリストがエントリを有
するときは、−吊上の記)ホ子はステップ592におい
て活性リストから外され、エントリに残りがあるならば
、リストに加える。次に、マイクロプロセッサ98は記
述子の形式を表わすビットを評価する。
ステップ600において、プログラムは記述子の形式に
基づいて、記述子が選択、同時、逐次又は収束であるか
に従って4つの選択のうちの一つに分岐する。以下で詳
細に説明するが、更に特殊な当該収束形式へ分岐する前
に、分岐ステップ607で評価されるいくつかの形式の
収束記3ホ子がある。
第16図の残りの部分はシーケンス形式の記述子ファイ
ルを実行するフローチャートである。この記述子ファイ
ルについては、第11A図の最初の記)ホ子ファイル4
30を参照して説明する。この分岐ルーチ・ンはステッ
プ601でブロセツυ・モジュールP1により開始して
記述子内のステップ・ファイル番号により指定されたユ
ーザ制御プログラムを介して1バスを実行する。このバ
スを終了したときに、記述子ファイルに示す遷移条件を
有するファイルが判断ブロック602により実行される
。この遷移条件が発生しないどぎは、記述子はステップ
608によりランダム・アクセス・メモリ106の活性
リストの一番下に戻される。
次に、プログラムはステップ590に戻り、活性リスト
から次の記述子を得る。活性リストに記述子が1つだけ
あるときは、同一のユーザ制御プログラムは直ちに再実
行される。このループは遷移条件が発生するまで継続す
る。遷移条件が発生すると、マイクロプロセッサ98は
ステップ603により、次の記述子ファイルに関連する
最初の記述子430内の情報を解釈して、どのプログラ
ム実行プロセッサ・モジュール18が解釈すべき次の記
述子を有するのかを判断する。同一のプロセッサ・モジ
ュール(Pl)が次の記述子を実行しようとするときは
、プログラム・ステップ604によりランダム・アクセ
ス・メモリ106から当該記述子ファイルを得ると共に
、ステップ605により活性リストに配置する。プログ
ラムはステップ590に戻り、マイクロプロセッサは活
性リストを調べて、処理する次の記述子を得る。
次の記述子ファイルが他のプログラム実行プロセッサ・
モジュール18のメモリに含まれているときは、ステッ
プ608において以上で説明したプライオリティ−・メ
ールにより当該プロセッサ・モジュールにコマンドを送
出する。このコマンドは他のプロセッサ・モジュールに
次の記述子の解釈を開始するように指令する。次の記述
子に関する情報を他のプログラム実行プロセッサ・モジ
ュール18に送出して肯定応答を受信すると、前に活性
のプログラム実行プロセッサ・モジュール18は、他の
記述子が活性リストに残っている限り、ステップ609
により待機状態に移行する。
この待機状態では、プログラム実行プロセッサ・モジュ
ール18がバックグラウンド・タスク及び以下で説明す
る他の優先順位の低いタスクを実行する。
第10図の機能チャートの実施例では、次に選択構築が
ブロセツリー・モジュールP1により処理される。第2
の記述子432が選択形式であるので、プログラムは第
17図に示すルーチンに分岐する。第4図のプロセッサ
・モジュールの図も参照すると、当該ルーチンの最初の
ステップ610においてマイクロプロセッサ98は遷移
条件ファイルのアレーにおける素子数を決定する。ステ
ップ611において、ランダム・アクセス・メモリ10
6におけるアレー・ポインタ・アドレスは、遷移条件フ
ァイルのアレーにJ3いて最初の素子にセットされる。
次に、記述子432におけるステップ・ファイル番号に
より表わされるラダー・プログラムは、ステップ612
においてプロセッサ・モジュール1〕2により実行され
る。
ユーザ制御プログラムにより一つの走査が終したときに
、ステップ613においてアレーの最初の素子により指
定されたファイル内に含まれている遷移条件がマイクロ
プロセッサ98により評価され、当該条件が満足される
かについて判断する。
遷移が発生していないときは、判断ブロック614にお
いて、アレー・ポインタに含まれているアドレスを調べ
て、これがアレーの@線素子に含まれているランダム・
アクセス・メモリ106のアドレスに対するポインタで
あるかどうかを判断する。これは最終素子ではないので
、ステップ615において、アレー・ポインタは増加さ
れ、プログラムは判断ブロック613に戻る。制御ブロ
ック613において、次のアレー素子により指定された
遷移条件を調べる。当該アレーにおいて指定された遷移
条件がいずれも発生していないと仮定すると、このルー
プは、当該アレーにおいて最終遷移条件を試験するまで
、継続する。そのような時点では、判断ブロック614
の実行は、アレー・ポインタが最終アレー素子のアドレ
スにあることを示し、プログラムはステップ621に進
み、ここで記述子が活性リストの一番下に戻される。
次に、プロセッサ・モジュールのプログラム実行はステ
ップ590に戻され(第16図)、活性リストの一番上
の記述子を処理する。
記述子アレーにおいて遷移条件のうちの一つが発生する
まで、選択記述子のユーザ制御プログラムは実行され続
ける。やがてステップ613においてこの遷移条件が検
出され、プログラムはステップ616に分岐する。ステ
ップ616において、マイクロプロセッサ98は、ファ
イル番号及び処理されるべき次の記述子の位置を指定す
るアレー・ポインタにより指示されたアレーフィールド
を読み出す。ステップ617において、このような次の
記述子仕様が評価される。次の記)ホ子が現在記述子ど
してプログラム実行プロセッサ・モジュール18に記憶
されたときは、処理ブロック618によりランダム・ア
クセス・メモリ106から記述子ファイルを読み出す。
ステップ620において、プログラムは活性リストに記
述子を加え、第16図のステップ590に戻り、次の記
述子ファイルを処理する。
次の記述子を他のプログラム実行プロセッサ・モジュー
ル18のRAMに記憶し、実行したときは、プログラム
は判断ブロック617からステップ619に分岐して、
現在のプロセッサ・モジュールP1はプライオリティ−
・メールによりコマンド・メツセージを送出することに
より、「起動」することを指定し、次の記述子を処理し
始める。
このコマンド・メツセージは記述子を含むファイル番号
を指定する。コマンド・メツセージの肯定応答を受は取
ったときに、活性リストが空きであれば、ステップ60
9において、現在のプロセッサ・モジュールP1は、他
の記述子の処理を再び開始すべきことを他のプログラム
実行プロセッサ・モジュール18が知らせるまで、待機
状態に入る。
第10図の機能チャートの例を参照すると、各選択分岐
が別個の逐次形式の記述子、即ち第11図の第3、第4
及び第5の記述子により表わされている。次のステップ
413として選択分岐のどれを選択しようともその遷移
は標準的な逐次形式の遷移である。特に、ステップ40
8を選択して実行したときは、ファイル16に含まれて
いる遷移条件411が発生するまで、ファイル4に含ま
れているユーザ制御プログラムが繰り返して実行される
。これが発生した時点で、プログラムの実行は機能チャ
ートのステップ413に移行する。
この遷移はプロセッサ・モジュールP1が第2のプロセ
ッサ・モジュールP2にプライオリティ−・メールを送
出して第6の記述子434(第11A図)の実行を開始
すべきことを表わすことにより、達成される。
プロセッサ・モジュールP2はそのランダム・アクセス
・メモリ1o6に機能チャート・インタープリタ−・プ
ログラムのコピーを有する。第1のプロセッサ・モジュ
ールP1からコマンド・メツセージを受は取ると、第2
のプロセッサ・モジュールP2は第6の記述子434を
その活性リストの一番下に加える。プロセッサ・モジュ
ールP2が待機状態にあるために、ステップ59o(第
16図)により当該プロセッサφモジュールP2をその
インタープリタ−・プログラムに進行させたときは、こ
のような動作も第2のプロセッサ・モジュールP2を「
起動」させるものである。第2のプロセッサ・モジュー
ルP2が第6の記述子434の実行を開始したときは、
ステップ600(第16図)において、その機能チャー
ト・インタープリタ−・プログラムは、この記述子が同
時形式であると判断して、プログラムが第18図のフロ
ーチャートに示されているルーチンに遷移する。同時機
能チャートの記述子の解釈における最初のプログラムの
ステップ630は、実行すべき同時ステップの番号を表
わす次の記述子アレーにおける要素数を決定することで
ある。次に、ランダム・アクセス・メモリ108のアレ
ー・ポインタ・アドレスの内容が処理ブロック631の
最初の要素のアドレス指定に送出される。ステップ63
2において、ファイル6に含まれているユーザ制御プロ
グラムは、第2のプロセッサ・モジュールP2により実
行される。ユーザ制御プログラムの1走査が終了すると
、判断ブロック633において、ファイル18に含まれ
ている遷移条件414の発生について調べる。遷移条件
414が発生していないときは、記述子は活性リストの
一番下に戻されるので、ユーザ制御プログラムが再び実
行される。
遷移条件414が発生したときは、処理が遷移して種々
の機能チャートの分岐の実行を開始する。
次の記述子、即ち記述子434のアレーにおける最初の
要素は、ステップ634においてマイクロプロセッサ9
8によりランダム・アクセス・メモリ106から読み出
され、ステップ635において次の記述子のプログラム
実行プロセッサ・モジュール18が判断される。プログ
ラム実行プロセッサ・モジュール18が現在のものと同
一であるときは、ステップ636において次の記述子フ
ァイルがランダム・アクセス・メモリ106から読み出
され、ステップ637においてこのプログラム実行プロ
セッサ・モジュール18上で同時に実行されるべき他の
ユーザ制御プログラムにより、プログラム実行プロセッ
サ・モジュール18の活性リスト、即ちリストに加算さ
れる。
次の記述子のうちの一つを他のプロセッサ・モジュール
(例えば、Pl)により実行すべきときは、記述子イン
タープリタ−・プログラムは判断ブロック635からス
テップ639に分岐し、ここで第2のプロセッサ・モジ
ュールP2はプライオリティ−・メール・メツセージに
より他のプライオリティ−・メールにコマンドを送出す
る。このコマンドは他のプロセッサ・モジュールに記憶
されている記述子ファイルの解釈の開始を命令する。次
に、プログラムは判断ブロック641に戻り、第1のプ
ロセッサ・モジュールP1においてマイクロプロセッサ
98は、最後のアレー要素を処理したかの判断をする。
未だアレー要素が残っているときは、ステップ642に
おいてマイクロプロセッサ98によりアレー・ポインタ
・アドレスの内容を増加させ、ステップ634において
次の記述子ファイル番号をアレーから読み出す。
次の記述子のそれぞれを評価するこのような処理は、ア
レーの各要素について継続する。ステップ641におい
て現在動作している第2のプロセッサ・モジュールP2
が!&後の要素を処理すると、プログラムはステップ5
90に戻り、次の作業のために活性記述子リストを調べ
る。
第10図に示す実施例の機能チャートにおいては、3つ
の同時分岐、即ちステップ415〜417は収束構築に
おいて終結する。収束構築には、全ての分岐の実行が終
了したときに、一つの遷移条件418が含まれている。
各分岐はプロセッサ・モジュールP1又はP2のランダ
ム・アクセス・メモリ106に記憶されている別個の記
述子(記述子7〜9)により表わされており、この記述
子は機能チャートの各自のステップを実行するようにユ
ーザによって表わされている。記述子7および8は実行
のためにプロセッサ・モジュールP1に記憶されており
、第9の記述子は第2のプロセッサ・モジュールP2に
割り付けられている。
記述子のうらの一つ、この実施例の場合は第9の記述子
436(第11A図)には、遷移条件及び次の記述子フ
ァイル番号が含まれている。
プロセッサ・モジュールP1の同時動作を説明する前に
、第2のプロセッサ・モジュールP2の動作を最初に説
明する。第9の記述子436は第2のプロセッサ・モジ
ュールP2に記憶される。
第9の記述子436の解釈は第16図のステップ592
において開始すると共に、プロセッサ・モジュールのマ
イクロプロセッサ98は活性リストの記述子を読み込み
、その形式を判断する。収束形式の記述子の場合は、プ
ログラムはステップ607に進む。マイクロプロセッサ
98により定められる特定形式の収束記述子による分岐
する。この場合は、収束記述子は遷移条件ファイル番号
を有し、第19図に示すルーチンのノードDに進む。
この収束記述子インタープリタ−・ルーチンは、マイク
ロプロセッサ98がステップ660から開始して、シス
テム・コントローラ16のRAM69(第7図)のシス
テム・ザポート・ファイル203内に含まれる同時カウ
ンタのアドレスにポインタを設定する。与えられた記述
子の収束ルーチンを介する最初は、ステップ661にお
いてマイクロプロセッサ98は、この場合に実行してい
る同時分岐の番号により同時カウンタ・アドレスをロー
ドする。次に、第2のプロセッサ・モジュールP2は、
処理ブロック662においてファイル9からユーザ制御
プログラムの実行を開始する。
ユーザ制御プログラムの1回のバスを完了すると、マイ
クロプロセッサ98は第9の記述子ファイル436によ
り指定されている遷移条件ファイルのプログラムを実行
する。この遷移条件が発生しなかったときは、プログラ
ムは活性リストの記述子を置換し、ステップ590(第
16図)に戻る。
しかし、遷移条件が発生したときは、ステップ664に
おいて第2のプロセッサ・モジュールP2はRAM69
のフラグをセットして、同時実行の終了を表わす。第2
のプロセッサ・モジュールP2はRAM69をアクセス
すると共に、ステップ665において同時カウンタを減
少させてその同時分岐の処理を終了したことを表わす。
次に、ステップ666において、同時カウンタの評価を
第2のプロセッサ・モジュールP2により実行して同時
カウンタがOになったかを判断する。同時カウンタがO
になっていないときは、プログラムはステップ590(
第16図)に戻って他の記述子の処理が残っているかど
うかを調べる。第2のプロセッサ・モジュールP2のた
めに何も残っていなければ、ステップ609において待
機状態になる。
全ての同時実行を終了するとく即ち、ステップ666に
おいて同時カウンタが0になると)、ステップ667に
おいて第2のプロセッサ・モジュールP2は、どのプロ
セッサ・モジュールが次の記述子を実行すべきかを調べ
る。第2のプロセッサ・モジュールP2が次の記述子フ
ァイルを実行することになっているときは、ステップ6
68においてそのマイクロプロセッサ98は次の記述子
を読み込み、ステップ670においてこれを活性リスト
に加える。次に、プログラムは第16図の最初のステッ
プ590に戻り、新しい記述子を処理する。次の記述子
が他のプロセッサ・モジュール(例えばPl)により処
理されるときは、当該ルーチンはステップ669に分岐
する。第2のプロセッサ・モジュールP2はプライオリ
ティ−・メール・メツセージを他のプロセッサ・モジュ
ールP1に送出して、次の記述子の実行を開始したこと
を通知する。次に、第2のプロセッサ・モジュールP2
はステップ609において待機状態に入る。
以上で説明したように、収束記述子にはいくつかの形式
がある。機能チャートのステップ415及び416(第
10図)を含む分岐の記述子は、遷移条件に関して何の
情報(第11A図の第8記述子435を参照すべきであ
る。)も有しない。
これらの記述子は記憶され、プロセッサ・モジュールP
1により解釈される。第16図のステップ607におい
てマイロプロセッサ98がこれらの記述子を評価したと
きは、そのプログラム実行プロセッサ・モジュール18
のインタープリタ−・プログラムは第19図に示すルー
チンのノードEに分岐する。このルーチンにおいて、ア
ドレス・ポインタはステップ680においてシステム・
コントローラ16のRAM69内の同時カウンタ・アド
レスにセットされる。次に、ユーザ制御プログラムはス
テップ681においてマイクロプロセッサ98により実
行される。各ユーザ制御プログラムが走査した後、シス
テム・コントローラ16のRAM69の終了フラグ・ア
ドレスを調べてこれがセットされているかいないかを判
断することにより、制御プログラムのプロセッサが終了
すべきことを表わす。終了フラグがセットされていない
ときは、ステップ683において記述子は当該マイクロ
プロセッサ98の活性リストに戻る。終了フラグがセッ
トされていれば、同時カウンタはステップ665におい
て2回減少されて、当該プロセッサ・モジュールP1に
よるファイル7及び8の実行が終了することを表わす。
次に、第1のプロセッサ・モジュールP1はステップ6
66において同時カウンタを調べてステップ666〜6
70に関連して先に説明したように、進む。
以上で説明したように、機能チャート及びユーザ制御プ
ログラムに加えて、ユーザも特定のプログラム実行プロ
セッサ・モジュール18の「バックグラウンド・タスク
」を定義して処理することができる。これらのプログラ
ムは、機能チャートの制御プログラムの動作における好
ましくない遅延なしに、時間が厳密でなく、長いタスク
を実行するのに用いられる。ユーザ定義のバックグラウ
ンド・タスクには、レポート生成及び従属的な一定の制
御タスクが含まれている。被制t1g装置のパフォーマ
ンスに関するレポート・データは、ローカル・エリア・
ネットワーク28を介してホスト・コンピュータに送信
されるように準備されてもよい。このようなレポートは
緊急のものではなく、これらを準備して送出する間に、
その被制御装置の制御を保留する必要はない。バックグ
ラウンド・タスクも主要な機能チャート・プログラムに
存在するものと同じ長い計禅に用いられるが、リアル・
タイムの制御には必要ではない。
バックグラウンド・タスク・プログラムを、ユーザ制御
プログラム、選択可能な時間割り込みのような割り込み
ルーチン、又は他のバックグラウンド・プログラムから
呼び出すことができる。各プログラム実行プロセッサ・
モジュール18の処理時間の割合は、これらのバックグ
ラウンド・タスクを実行するように割り付けられていた
。その割合はユーザにより設定されるので、バックグラ
ウンド・タスクの実行は機械操作プログラムの実行にあ
まり影響を与えることはない。ユーザ制御プログラムの
処理は、リアル・タイム・クロックにより周期的に割り
込まれ、バックグラウンド・タスクが与えられた時間間
隔により実行される。
バックグラウンド・タスクの実行期間の終了はバックグ
ラウンド・プログラムの終了前に発生したときは、バッ
クグラウンド・タスクの実行は中断され、次のバックグ
ラウンド・タスク期間で再開される。ユーザ制御プログ
ラムプログラム実行プロセッサ・モジュール18上で実
行されていないときは、バックグラウンド・タスクを殆
ど連続的に実行することができる。通常の動作において
は、バックグラウンド・タスクが間欠的に実行されて終
了するが、これらの実行はユーザ制御プログラムにより
、誤り条件が発生したことにより取り消される。
本発明のプログラマブル・コントローラ装置がプログラ
ム実行プロセッサ・モジュール18を有するので、ユー
ザ制御プログラムに常時掛かり切りとなるプロセッサは
一つもない。これは、このようなバックグラウンド・タ
スクが製造装置の制御に逆効果になることなく、プロセ
ッサ・モジュールにとり最終的に利用可能状態となって
バックグラウンド・タスクを実行する。これはまたプロ
グラマブル・コントローラに適用されたこの並列処理の
考え方の別の効果でもある。
更に、このプログラマブル・コントローラ1゜は2つの
形態の電力損失回復機構にもなる。この電力損失回復機
構は、機械操作プログラムの実行中に、例えば電力が供
給停止となったために、停電となったときは、必ず作動
する。オペレータは、このような停電の後に電力の供給
が回復したときは、プログラムを最初から再起動するか
、又は停電したときに実行中であったユーザ制御プログ
ラムの開始から実行を再開するかをシステム構築の際に
選択することができる。オペレータの回復モードの選択
はシステム・コントローラ16のシステム・メモリ(R
AM>69内のシステム・ステータス・ファイル201
に格納されている。
第3図を参照すると、システム・ステータス回路88は
電力が降下し始めるのを検出し、プロセッサ部のマイク
ロプロセッサ66に割り込みを掛ける。これは、マイク
ロプロセッサ66に割り込みサブルーチンを実行させて
、不揮発性メモリに各プロセッサ・モジュールの実行ス
テータスを格納させるものである。このステータス・デ
ータには、現在実行中の記)ホ子と、各プロセッサ・モ
ジュールの活性記述子リストにある記述子とのファイル
番号が含まれている。実行しているバラフグラウンド・
タスクに関する情報も退避される。
停電が回復した場合に、再開モードが選択されたときは
、プログラマブル・コントローラ10は各プログラム実
行プロセッサ・モジュール18に対して停電したときに
格納した記述子ファイル番号により実行を再開するよう
に通告をする。以上で説明したように、当該装置におい
て主要なモジュールは、停電したときにそれぞれのメモ
リを動作状態に保持する内部バッテリを有する。従って
、プログラム及びI10テーブルは停電中に当該モジュ
ールのメモリに格納したままである。
【図面の簡単な説明】
第1図は本発明によるプログラマブル・コントローラの
斜視図、 第2図は第1図に示すプログラマブル・コントローラの
概要ブロック図、 第3図は第2図のプログラマブル・コントローラにおけ
るシステム・コントローラの概要ブロック図、 第4図は第2図に示すプログラマブル・コントローラの
プログラム実行プロセッサのm要ブロック図、 第5図は第4図のプログラム実行プロセッサのランダム
・アクセス・メモリの概要ブロック図、第6図は第2図
のプログラマブル・コントローラのリモート入出力スキ
ャナの概要ブロック図、第7図はシステム・コントロー
ラのメモリ・データ構造のブロック図、 第8図はリモート入出力スキャナのメモリ・データ構造
のブロック図、 第9図はプログラム実行プロセッサのメモリ・データ構
造のブロック図、 第10図は実施例の機能チャート図、 第11A図、第118図及び、第11C図は第10図の
機能チャート・プログラムから発生した記述子ファイル
のデータ構造図、 第12A図及び第12B図は異なるメツセージ型式につ
いて第14図のメールボックスのエントリを示す図、 第13図はプログラマブル・コントローラの初期化ルー
チンのフローチャート、 第14図はプログラマブル・コントローラのモジュール
間のメツセージ授受の説明に用いる第1図のシステムの
一部分の概要ブロック図、第15図はプロゲランプル・
コントローラにおける一方のモジュールから他方の七ジ
ュールへメツセージの伝送を開始するプログラム・スデ
ツブのフローチャ−ト、 第16図、第17図、第18図及び第19図は機能チャ
ートのデータを解釈し、ユーザ制御プログラムを実行す
るソフトウェアの部分的なフローチャートである。 [符号の説明] 10・・・プログラマブル・コンI−ローラ、11・・
・バックプレーン、 16・・・システム・コントローラ、 18・・・プログラム実行プロセッサ・モジュール、1
9.19’ ・・・ローカル入出カモジュール、30.
66.98.140・・・マイクロプロセッサ、34.
104.l60−ROM。 38、 69. 106・・・RAM、48・・・直列
入出力コントローラ(810)、72・・・割り込みプ
ロセッサ、 99・・・割り込みインターフェイス回路、100・・
・浮動小数点副プロセツサ、102・・・ピット副プロ
セツサ、 134・・・メインRAM。

Claims (1)

  1. 【特許請求の範囲】 (1)複数のプログラム機能を実行する機械を作動させ
    るプログラマブル・コントローラにおいて、データ信号
    及び、アドレス信号及び制御信号を導くリード線を有す
    るバックプレーンと、 前記バックプレーンに制御されると共に、前記プログラ
    マブル・コントローラを制御することにより前記機械に
    特定の機能を実行させるように作動させる別個的なユー
    ザ制御プログラムを同時にそれぞれ実行可能な複数の処
    理手段と、 前記複数の処理手段に接続されると共に、プログラム実
    行シーケンス・データ及び複数のデータ・プログラムを
    記憶するメモリと、 前記プログラム実行シーケンス・データに応答して、前
    記複数の処理手段により前記ユーザ制御プログラムの実
    行を制御する制御手段と、 前記バックプレーンに接続され、前記プログラマブル・
    コントローラを複数の入出力装置に接続する入出力イン
    ターフェイス手段と、 前記バックプレーンに対する前記複数の処理手段及び前
    記入出力インターフェイス手段のアクセスを管理するシ
    ステム・コントローラとを備えていることを特徴とする
    プログラマブル・コントローラ。 (2)請求項1記載のプログラマブル・コントローラに
    おいて、 前記制御手段はそれぞれ、ユーザ制御プログラムを実行
    していないときは、他のプログラムを実行するように当
    該処理手段をエネーブルする手段を含むことを特徴とす
    るプログラマブル・コントローラ。 (3)請求項1記載のプログラマブル・コントローラに
    おいて、 ユーザ制御プログラムを除くプログラムを周期的に実行
    するように、プログラム実行時間の与えられた一部分を
    割り付ける割り付け手段を含むことを特徴とするプログ
    ラマブル・コントローラ。 (4)請求項3記載のプログラマブル・コントローラに
    おいて、 前記割り付け手段は、与えられた期間が経過したときに
    他のプログラムを実行させるように、前記ユーザ制御プ
    ログラムの実行を反復して中断させる手段を含むことを
    特徴とするプログラマブル・コントローラ。 (5)請求項1記載のプログラマブル・コントローラに
    おいて、 前記割り付け手段の少なくとも一つは前記プログラマブ
    ル・コントローラの外部にある装置からの信号に応答し
    て当該前記処理手段のプログラム実行を中断させる手段
    を含むことを特徴とするプログラマブル・コントローラ
    。 (6)請求項5記載のプログラマブル・コントローラに
    おいて、 前記割り付け手段の少なくとも一つは、更に、前記中断
    させる手段に応答して中断プログラム・ルーチンを実行
    する手段を含むことを特徴とするプログラマブル・コン
    トローラ。(7)請求項1記載のプログラマブル・コン
    トローラにおいて、 前記プログラム実行シーケンス・データは、ユーザ制御
    プログラムの標識と、識別されたユーザ制御プログラム
    の実行を終結すべきときに示す遷移条件の標識と、処理
    すべき次の記述子の標識とをそれぞれ含む一連の記述子
    を有し、 前記ユーザ制御プログラムの実行を制御する前記制御手
    段は前記記述子を解釈する手段を含むことを特徴とする
    プログラマブル・コントローラ。 (8)請求項7記載のプログラマブル・コントローラに
    おいて、 前記処理手段はそれぞれ前記記述子を解釈する手段を含
    むことを特徴とするプログラマブル・コントローラ。 (9)請求項7記載のプログラマブル・コントローラに
    おいて、更に、 前記遷移条件の実際の状態に無関係に、前記遷移条件を
    強制的に真又は偽に設定する手段を備えていることを特
    徴とするプログラマブル・コントローラ。 (10)複数のプログラマブル機能を実行する機械を作
    動させるプログラマブル・コントローラにおいて、 複数のユーザ制御プログラム及び機能チャート・データ
    を記憶する手段と、 前記プログラマブル・コントローラを管理して前記機械
    が特定の機能を実行させるユーザ制御プログラムをそれ
    ぞれ実行可能とし、かつ前記ユーザ制御プログラムを除
    き、そのプログラム実行時間のうちから与えられた一部
    を割り付けてプログラムを周期的に実行する手段を含む
    複数の処理手段と、 前記機能チャート・データに応答して、前記ユーザ制御
    プログラムを実行し、かつ前記処理手段のいずれがそれ
    ぞれのユーザ制御プログラムを実行すべきであるかのシ
    ーケンスを制御する手段とを備えていることを特徴とす
    るプログラマブル・コントローラ。 (11)請求項10記載のプログラマブル・コントロー
    ラにおいて、前記割り付け手段は前記ユーザ制御プログ
    ラムの実行を周期的に中断して他のプログラムを実行で
    きるようにする手段を含むことを特徴とするプログラマ
    ブル・コントローラ。 (12)請求項10記載のプログラム・コントローラに
    おいて、 前記割り付け手段は、更に、他のプログラムを中断し、
    予め定めた時間後に前記ユーザ制御プログラムの実行に
    戻す手段を含むことを特徴とするプログラマブル・コン
    トローラ。(13)請求項12記載のプログラム・コン
    トローラにおいて、 前記処理手段は、前記予め定めた時間を経過しても前記
    実行が完了しなかつたときは、他のプログラムの実行を
    保留し、前記ユーザ制御プログラムの実行について別の
    中断をすることにより実行を再開する手段を備えている
    ことを特徴とするプログラマブル・コントローラ。 (14)複数のプログラム機能を実行する機械を作動さ
    せるプログラマブル・コントローラにおいて、データ信
    号及びアドレス信号を導くリード線を有するバックプレ
    ーンと、 前記バックプレーンに接続された複数の処理手段と、 前記バックプレーンに接続され、入出力装置を前記プロ
    グラマブル・コントローラに接続する入出力インターフ
    ェイス手段と、 前記複数の処理手段及び前記入出力装置により前記バッ
    クプレーンに対するアクセスを制御する手段とを備える
    と共に、 各前記処理手段は、 当該処理手段により実行するユーザ制御プログラムを記
    憶すると共に、ユーザ制御プログラムと、前記ユーザ制
    御プログラムの実行を何時終結すべきかを表わす遷移条
    件と、実行すべき次のユーザ制御プログラムであつて、
    前記次のユーザ制御プログラムをいずれの処理手段が実
    行すべきかについてとをそれぞれ識別する複数の記述子
    を含むプログラム実行シーケンス・データを記憶するメ
    モリを有し、 更に、前記各処理手段は他の処理手段にプログラム実行
    手段を転送する手段を有することを特徴とするプログラ
    マブル・コントローラ。 (15)請求項14記載のプログラマブル・コントロー
    ラにおいて、 前記プログラム・シーケンス・データは、更に、前記プ
    ログラム実行の開始時に最初に実行すべきユーザ制御プ
    ログラムのうちの一つを指定する手段を含むことを特徴
    とするプログラマブル・コントローラ。 (16)請求項14記載のプログラマブル・コントロー
    ラにおいて、更に、 停電のときに各処理手段の実行状態を待避させ、停電が
    復旧したときに同一のユーザ制御プログラムにより再開
    することができるようにした手段を備えることを特徴と
    するプログラマブル・コントローラ。
JP63225521A 1987-10-07 1988-09-08 プログラマブル・コントローラ Pending JPH0283601A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US105815 1987-10-07
US07/105,815 US4937777A (en) 1987-10-07 1987-10-07 Programmable controller with multiple task processors

Publications (1)

Publication Number Publication Date
JPH0283601A true JPH0283601A (ja) 1990-03-23

Family

ID=22307929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63225521A Pending JPH0283601A (ja) 1987-10-07 1988-09-08 プログラマブル・コントローラ

Country Status (4)

Country Link
US (1) US4937777A (ja)
EP (1) EP0311007B1 (ja)
JP (1) JPH0283601A (ja)
CA (1) CA1310387C (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007260417A (ja) * 1996-08-29 2007-10-11 Bausch & Lomb Inc 自動再構成機能を提供する外科手術用システム
JP2015204117A (ja) * 2014-04-15 2015-11-16 エルエス産電株式会社Lsis Co.,Ltd. 複数のcpuモジュールを備えるplcシステム及び制御方法
RU2743247C1 (ru) * 2020-06-25 2021-02-16 Общество с ограниченной ответственностью "Электротехническая Компания-Приборы Автоматики" Способ работы программируемого логического контроллера
JP2021071863A (ja) * 2019-10-30 2021-05-06 ファナック株式会社 プログラマブルコントローラ
JP2021071864A (ja) * 2019-10-30 2021-05-06 ファナック株式会社 プログラマブルコントローラ

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193189A (en) * 1987-10-07 1993-03-09 Allen-Bradley Company, Inc. Programmable controller with multiple priority level task processing
US5001666A (en) * 1987-10-19 1991-03-19 Motorola, Inc. Multiple interrupt tri-level microprocessor operating system
JP2561696B2 (ja) * 1988-03-31 1996-12-11 三菱電機株式会社 ネットワークシステムにおける共用領域管理方法
JPH0210454A (ja) * 1988-06-29 1990-01-16 Canon Inc 電子機器
US5138701A (en) * 1988-07-12 1992-08-11 Minolta Camera Kabushiki Kaisha Data communication control system
US5065314A (en) * 1988-09-23 1991-11-12 Allen-Bradley Company, Inc. Method and circuit for automatically communicating in two modes through a backplane
IT1227711B (it) * 1988-11-18 1991-05-06 Caluso Torino Sistema multiprocessore di elaborazione dati a risorse distribuite condivise e prevenzione di stallo.
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5042002A (en) * 1989-03-31 1991-08-20 Allen-Bradley Company, Inc. Programmable controller with a directed sequencer
US5319783A (en) * 1989-03-31 1994-06-07 Allen-Bradley Company Inc. Programmable controller with an operator messaging function
GB2232514B (en) * 1989-04-24 1993-09-01 Yokogawa Electric Corp Programmable controller
US5218711A (en) * 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors
JP3069357B2 (ja) * 1989-07-13 2000-07-24 キヤノン株式会社 印刷制御装置
WO1991001520A1 (en) * 1989-07-17 1991-02-07 Ability Technologies Corporation System and method for controlling devices
US5166872A (en) * 1989-07-17 1992-11-24 Ability Technologies Corporation System and method for controlling devices through communication processors and pluralities of address-associated device controllers sharing each communication processor
US5099449A (en) * 1989-07-17 1992-03-24 Allen-Bradley Company, Inc. Industrial controller with variable I/O update rate
US5283869A (en) * 1989-07-25 1994-02-01 Allen-Bradley Company, Inc. Interrupt structure for network interface circuit
US5218699A (en) * 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
US5187777A (en) * 1989-09-21 1993-02-16 Loral Aerospace Corp. Multi-function pre-processor for target tracking
US5218686A (en) * 1989-11-03 1993-06-08 Compaq Computer Corporation Combined synchronous and asynchronous memory controller
US5072374A (en) * 1989-11-07 1991-12-10 Ge Fanuc Automation North America, Inc. Method for communicating among a plurality of programmable logic controllers each having a dma controller
JP2839590B2 (ja) * 1989-11-10 1998-12-16 株式会社東芝 命令割り当て装置及び命令割り当て方法
JP2526691B2 (ja) * 1990-03-02 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラの制御方法
JP2526709B2 (ja) * 1990-05-08 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラおよびプログラマブルコントロ―ラのsfcプログラム実行方法
CA2048944A1 (en) * 1990-08-31 1992-03-01 Otomar S. Schmidt Processor for a programmable controller
US5265005A (en) * 1990-08-31 1993-11-23 Allen-Bradley Company, Inc. Processor for a programmable controller
DE69124066T2 (de) * 1990-10-31 1997-08-21 Mitsubishi Electric Corp Prozesssteuerungsgerät
ATE128777T1 (de) * 1991-03-28 1995-10-15 Cray Research Inc Echtzeit-input/output-methode fuer ein vektor- prozessor-system.
US5297257A (en) * 1991-04-15 1994-03-22 Allen-Bradley Company, Inc. Distributing a real-time control program to a plurality of input/output nodes
EP0523627A3 (en) * 1991-07-15 1993-08-25 Matsushita Electric Works, Ltd. Multi-cpu programmable controller
AU2052192A (en) * 1991-08-07 1993-02-11 Aeci Limited A controller
FR2682202B1 (fr) * 1991-10-03 1994-03-11 Sextant Avionique Procede et dispositif pour la gestion temps reel d'un systeme comprenant au moins un processeur apte a gerer plusieurs fonctions.
US5265004A (en) * 1991-10-15 1993-11-23 Allen-Bradley Company, Inc. Sequence controller with combinatorial Boolean logic
JPH05324589A (ja) * 1992-03-25 1993-12-07 Nippon Sheet Glass Co Ltd 並列コンピュータ装置および光結合装置
US5390356A (en) * 1992-05-05 1995-02-14 The United States Of America As Represented By The Secretary Of The Navy Rapid reprogramming terminal
US5455923A (en) * 1992-07-30 1995-10-03 Kaplinsky; Cecil H. Memory system for loading peripherals on power up
JP3310402B2 (ja) * 1993-06-24 2002-08-05 株式会社三協精機製作所 マルチタスク制御コントローラ
DE4497320T1 (de) * 1993-09-27 1996-11-21 Oracle Corp Verfahren und Vorrichtung zur parallelen Verarbeitung in einem Datenbanksystem
US5513346A (en) * 1993-10-21 1996-04-30 Intel Corporation Error condition detector for handling interrupt in integrated circuits having multiple processors
US5508909A (en) * 1994-04-26 1996-04-16 Patriot Sensors And Controls Method and systems for use with an industrial controller
US5887029A (en) * 1994-05-31 1999-03-23 Allen-Bradley Company, Llc Method of scheduling spatially separated control events with an industrial controller
WO1996036925A1 (en) * 1995-05-16 1996-11-21 Giga Operations Corporation Monitor cpu for a logic device
US5881247A (en) * 1995-11-30 1999-03-09 Allen-Bradley Company Llc System having a plurality of frame bytes capable of identifying addressed recipients and assert a busy signal onto the backplane bus to forthrightly abort the message transfer
US5768632A (en) * 1996-03-22 1998-06-16 Allen-Bradley Company, Inc. Method for operating inductrial control with control program and I/O map by transmitting function key to particular module for comparison with function code before operating
US6311265B1 (en) * 1996-03-25 2001-10-30 Torrent Systems, Inc. Apparatuses and methods for programming parallel computers
US5805442A (en) * 1996-05-30 1998-09-08 Control Technology Corporation Distributed interface architecture for programmable industrial control systems
US7146408B1 (en) 1996-05-30 2006-12-05 Schneider Automation Inc. Method and system for monitoring a controller and displaying data from the controller in a format provided by the controller
US6456308B1 (en) 1996-08-08 2002-09-24 Agranat Systems, Inc. Embedded web server
EP0853788A1 (en) * 1996-08-08 1998-07-22 Agranat Systems, Inc. Embedded web server
US5796603A (en) * 1996-10-17 1998-08-18 Allen Bradley Company, Inc. Partitioning program for highly distributed control system to reduce network traffic
DE19707107A1 (de) * 1997-02-22 1998-09-10 Bosch Gmbh Robert Einrichtung zur Programmierung eines SPS
US6330008B1 (en) * 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US7035898B1 (en) 1997-09-10 2006-04-25 Schneider Automation Inc. System for programming a factory automation device using a web browser
US20020152289A1 (en) * 1997-09-10 2002-10-17 Schneider Automation Inc. System and method for accessing devices in a factory automation network
US6282454B1 (en) 1997-09-10 2001-08-28 Schneider Automation Inc. Web interface to a programmable controller
US6587884B1 (en) 1997-09-10 2003-07-01 Schneider Automation, Inc. Dual ethernet protocol stack for maximum speed access to a programmable logic controller (PLC)
US6732191B1 (en) 1997-09-10 2004-05-04 Schneider Automation Inc. Web interface to an input/output device
US6151625A (en) * 1997-09-10 2000-11-21 Schneider Automation Inc. Internet web interface including programmable logic controller for controlling output devices based on status of input devices
US20020091784A1 (en) * 1997-09-10 2002-07-11 Baker Richard A. Web interface to a device and an electrical network control system
US7058693B1 (en) 1997-09-10 2006-06-06 Schneider Automation Inc. System for programming a programmable logic controller using a web browser
US6014513A (en) * 1997-12-23 2000-01-11 University Of Washington Discovering code and data in a binary executable program
US7162510B2 (en) * 1998-03-16 2007-01-09 Schneider Automation Inc. Communication system for a control system over Ethernet and IP networks
JP2002533791A (ja) * 1998-09-10 2002-10-08 サンクタム、リミテッド アプリケーション・プログラムあるいはオペレーティング・システムのたの制限された運転環境を維持する方法およびシステム
US6434157B1 (en) 1998-10-06 2002-08-13 Schneider Automation, Inc. MODBUS plus ethernet bridge
US6233626B1 (en) 1998-10-06 2001-05-15 Schneider Automation Inc. System for a modular terminal input/output interface for communicating messaging application layer over encoded ethernet to transport layer
US6853867B1 (en) * 1998-12-30 2005-02-08 Schneider Automation Inc. Interface to a programmable logic controller
US6845401B1 (en) 1998-12-30 2005-01-18 Schneider Automation Inc. Embedded file system for a programmable logic controller
US6327511B1 (en) 1998-12-30 2001-12-04 Schneider Automation, Inc. Input/output (I/O) scanner for a control system with peer determination
JP4230147B2 (ja) * 1999-08-30 2009-02-25 三菱電機株式会社 プログラマブルコントローラシステムおよびプログラマブルコントローラシステムのリセット制御方法
US7734744B1 (en) * 1999-11-09 2010-06-08 Cisco Technology, Inc. System for communicating management information and method of operation
US6662254B1 (en) 2000-06-22 2003-12-09 Axerra Networks, Ltd. System architecture
US7519737B2 (en) * 2000-07-07 2009-04-14 Schneider Automation Inc. Input/output (I/O) scanner for a control system with peer determination
US7032029B1 (en) 2000-07-07 2006-04-18 Schneider Automation Inc. Method and apparatus for an active standby control system on a network
US7181487B1 (en) 2000-07-07 2007-02-20 Schneider Automation Inc. Method and system for transmitting and activating an application requesting human intervention in an automation network
US20020167967A1 (en) * 2000-09-06 2002-11-14 Schneider Electric Method for managing bandwidth on an ethernet network
US7028204B2 (en) * 2000-09-06 2006-04-11 Schneider Automation Inc. Method and apparatus for ethernet prioritized device clock synchronization
US7023795B1 (en) * 2000-11-07 2006-04-04 Schneider Automation Inc. Method and apparatus for an active standby control system on a network
WO2002088966A1 (en) * 2001-04-26 2002-11-07 The Boeing Company Systems, methods, and bus controllers for creating an event trigger on a network bus
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
US7007106B1 (en) 2001-05-22 2006-02-28 Rockwell Automation Technologies, Inc. Protocol and method for multi-chassis configurable time synchronization
DE10163342A1 (de) * 2001-12-21 2003-07-10 Elektro Beckhoff Gmbh Unterneh Datenübertragungsverfahren, serielles Bussystem und Anschalteinheit für einen passiven Busteilnehmer
US8775196B2 (en) 2002-01-29 2014-07-08 Baxter International Inc. System and method for notification and escalation of medical data
US10173008B2 (en) 2002-01-29 2019-01-08 Baxter International Inc. System and method for communicating with a dialysis machine through a network
DE10216332A1 (de) * 2002-04-13 2003-10-30 Conducta Endress & Hauser Messeinrichtung für die Prozesstechnik und Betriebsverfahren für eine Messeinrichtung
US8234128B2 (en) 2002-04-30 2012-07-31 Baxter International, Inc. System and method for verifying medical device operational parameters
US6640163B1 (en) * 2002-09-30 2003-10-28 Husco International, Inc. Operating system for a programmable controller of a hydraulic system
US20040210664A1 (en) * 2003-04-17 2004-10-21 Schneider Automation Inc. System and method for transmitting data
WO2005022280A1 (en) * 2003-09-03 2005-03-10 Unitronics (1989) (R'g) Ltd. System and method for implementing logic control in programmable controllers in distributed control systems
US7424328B2 (en) * 2006-01-03 2008-09-09 De Silvio Louis F Apparatus and method for wireless process control
JP4766252B2 (ja) * 2006-04-28 2011-09-07 オムロン株式会社 プログラマブルコントローラおよび通信ユニット
DE102006035662A1 (de) * 2006-07-31 2008-02-14 Infineon Technologies Ag Datenverarbeitungseinrichtung und Verfahren zum Überwachen des korrekten Betriebs einer Datenverarbeitungseinrichtung
US7979701B1 (en) 2006-09-15 2011-07-12 Netapp, Inc. Cross mapping graphical interface to show encryption relationships between hosts and storage devices
US7822802B2 (en) * 2006-09-29 2010-10-26 Fisher-Rosemount Systems, Inc. Apparatus and method for merging wireless data into an established process control system
EP2078994A1 (de) * 2008-01-10 2009-07-15 Siemens Aktiengesellschaft Automatisierungsgerät und Verfahren zu dessen Betrieb
US8057679B2 (en) 2008-07-09 2011-11-15 Baxter International Inc. Dialysis system having trending and alert generation
US10089443B2 (en) 2012-05-15 2018-10-02 Baxter International Inc. Home medical device systems and methods for therapy prescription and tracking, servicing and inventory
JP5473267B2 (ja) * 2008-07-14 2014-04-16 キヤノン株式会社 ワークフロー実行システム及びワークフロー実行方法
US8554579B2 (en) 2008-10-13 2013-10-08 Fht, Inc. Management, reporting and benchmarking of medication preparation
US8892620B2 (en) * 2009-10-07 2014-11-18 Qsigma, Inc. Computer for Amdahl-compliant algorithms like matrix inversion
US8340793B2 (en) * 2009-10-09 2012-12-25 Hamilton Sundstrand Corporation Architecture using integrated backup control and protection hardware
US8536821B2 (en) 2011-09-22 2013-09-17 Hamilton Sundstrand Corporation Redundant interface for a stepper motor
US9625894B2 (en) 2011-09-22 2017-04-18 Hamilton Sundstrand Corporation Multi-channel control switchover logic
US9483032B2 (en) 2011-09-22 2016-11-01 Hamilton Sundstrand Corporation Multi-channel protection logic
KR20150048816A (ko) 2012-08-31 2015-05-07 백스터 코포레이션 잉글우드 약제 요청서 집행 시스템 및 방법
US9375079B2 (en) 2012-10-26 2016-06-28 Baxter Corporation Englewood Work station for medical dose preparation system
KR101974258B1 (ko) 2012-10-26 2019-04-30 백스터 코포레이션 잉글우드 의료 투여분 조제 시스템을 위한 개선된 이미지 취득
US9772615B2 (en) 2013-05-06 2017-09-26 Hamilton Sundstrand Corporation Multi-channel control switchover logic
JP2017525032A (ja) 2014-06-30 2017-08-31 バクスター・コーポレーション・イングルウッドBaxter Corporation Englewood 管理された医療情報交換
US11107574B2 (en) 2014-09-30 2021-08-31 Baxter Corporation Englewood Management of medication preparation with formulary management
US11575673B2 (en) 2014-09-30 2023-02-07 Baxter Corporation Englewood Central user management in a distributed healthcare information management system
WO2016090091A1 (en) 2014-12-05 2016-06-09 Baxter Corporation Englewood Dose preparation data analytics
SG11201707114XA (en) 2015-03-03 2017-09-28 Baxter Corp Englewood Pharmacy workflow management with integrated alerts
WO2016207206A1 (en) 2015-06-25 2016-12-29 Gambro Lundia Ab Medical device system and method having a distributed database
KR102476516B1 (ko) 2016-12-21 2022-12-09 감브로 룬디아 아베 외부 도메인을 지원하는 안전한 클러스터 도메인을 구비한 정보 기술 인프라를 포함하는 의료 장치 시스템
US11112449B2 (en) * 2018-04-06 2021-09-07 Bendy Nevada, LLC Flexible and scalable monitoring systems for industrial machines
US11500799B2 (en) * 2020-09-23 2022-11-15 EMC IP Holding Company LLC Managing access to a CPU on behalf of a block application and a non-block application
CN116700135B (zh) * 2023-08-09 2023-10-20 长江三峡集团实业发展(北京)有限公司 可编程逻辑控制器任务调度方式的测试方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5436941A (en) * 1977-08-29 1979-03-19 Ricoh Co Ltd Control system of copier by plural micro-processors
JPS57155603A (en) * 1981-03-23 1982-09-25 Hino Motors Ltd Electronic controller of car
JPS6081650A (ja) * 1983-07-21 1985-05-09 バロ−ス・コ−ポレ−シヨン データ処理システム
JPS6220006A (ja) * 1985-07-19 1987-01-28 Toshiba Mach Co Ltd プログラマブルコントロ−ラのリモ−トi/oリンク方式
JPS62121505A (ja) * 1985-11-22 1987-06-02 Toshiba Mach Co Ltd プログラマブルコントロ−ラのリンク方式
US4742443A (en) * 1985-03-28 1988-05-03 Allen-Bradley Company Programmable controller with function chart interpreter

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3364472A (en) * 1964-03-06 1968-01-16 Westinghouse Electric Corp Computation unit
US4648064A (en) * 1976-01-02 1987-03-03 Morley Richard E Parallel process controller
US4128876A (en) * 1977-04-28 1978-12-05 International Business Machines Corporation Synchronous microcode generated interface for system of microcoded data processors
US4293924A (en) * 1979-05-30 1981-10-06 Allen-Bradley Company Programmable controller with high density intelligent I/O interface
US4302820A (en) * 1979-08-20 1981-11-24 Allen-Bradley Company Dual language programmable controller
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
DE3144714C2 (de) * 1980-11-20 1986-02-13 Beloit Corp., Beloit, Wis. Automatisches Positionssteuersystem für Längsschneider
US4442504A (en) * 1981-03-09 1984-04-10 Allen-Bradley Company Modular programmable controller
US4404651A (en) * 1981-03-09 1983-09-13 Allen-Bradley Company Programmable controller for using coded I/O data technique
US4413319A (en) * 1981-03-09 1983-11-01 Allen-Bradley Company Programmable controller for executing block transfer with remote I/O interface racks
US4443865A (en) * 1981-10-26 1984-04-17 Allen-Bradley Co. Processor module for a programmable controller
US4521871A (en) * 1982-04-12 1985-06-04 Allen-Bradley Company Programmable controller with back-up capability
US4504927A (en) * 1982-09-08 1985-03-12 Allen-Bradley Company Programmable controller with expandable I/O interface circuitry
JPS59154564A (ja) * 1983-02-24 1984-09-03 Hitachi Ltd プログラマブルコントロ−ラ
US4638452A (en) * 1984-02-27 1987-01-20 Allen-Bradley Company, Inc. Programmable controller with dynamically altered programmable real time interrupt interval
US4771403A (en) * 1984-11-16 1988-09-13 Allen-Bradley Company, Inc. I/O module with multi-function integrated circuits and an isolation interface for multiplexing data between a main processor and I/O devices
US4691296A (en) * 1984-11-16 1987-09-01 Allen-Bradley Company, Inc. Method and apparatus for exchanging multiple data bytes with an I/O module in a single scan.
JP2528813B2 (ja) * 1985-05-10 1996-08-28 株式会社日立製作所 制御装置
GB2180965B (en) * 1985-09-28 1988-10-26 Stc Plc Sequence controller
US4858101A (en) * 1987-08-26 1989-08-15 Allen-Bradley Company, Inc. Programmable controller with parallel processors

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5436941A (en) * 1977-08-29 1979-03-19 Ricoh Co Ltd Control system of copier by plural micro-processors
JPS57155603A (en) * 1981-03-23 1982-09-25 Hino Motors Ltd Electronic controller of car
JPS6081650A (ja) * 1983-07-21 1985-05-09 バロ−ス・コ−ポレ−シヨン データ処理システム
US4742443A (en) * 1985-03-28 1988-05-03 Allen-Bradley Company Programmable controller with function chart interpreter
JPS6220006A (ja) * 1985-07-19 1987-01-28 Toshiba Mach Co Ltd プログラマブルコントロ−ラのリモ−トi/oリンク方式
JPS62121505A (ja) * 1985-11-22 1987-06-02 Toshiba Mach Co Ltd プログラマブルコントロ−ラのリンク方式

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007260417A (ja) * 1996-08-29 2007-10-11 Bausch & Lomb Inc 自動再構成機能を提供する外科手術用システム
JP2015204117A (ja) * 2014-04-15 2015-11-16 エルエス産電株式会社Lsis Co.,Ltd. 複数のcpuモジュールを備えるplcシステム及び制御方法
US9940276B2 (en) 2014-04-15 2018-04-10 Lsis Co., Ltd. PLC system having a plurality of CPU modules and control method thereof
JP2021071863A (ja) * 2019-10-30 2021-05-06 ファナック株式会社 プログラマブルコントローラ
JP2021071864A (ja) * 2019-10-30 2021-05-06 ファナック株式会社 プログラマブルコントローラ
RU2743247C1 (ru) * 2020-06-25 2021-02-16 Общество с ограниченной ответственностью "Электротехническая Компания-Приборы Автоматики" Способ работы программируемого логического контроллера

Also Published As

Publication number Publication date
CA1310387C (en) 1992-11-17
US4937777A (en) 1990-06-26
EP0311007B1 (en) 1994-03-09
EP0311007A2 (en) 1989-04-12
EP0311007A3 (en) 1989-08-02

Similar Documents

Publication Publication Date Title
JPH0283601A (ja) プログラマブル・コントローラ
US5193189A (en) Programmable controller with multiple priority level task processing
EP0304880B1 (en) Programmable controller with parallel processors
US4876664A (en) Programmable controller with a dual intermodule message system
US5428526A (en) Programmable controller with time periodic communication
US4742443A (en) Programmable controller with function chart interpreter
CA1294711C (en) Communication interface protocol
EP0586813B1 (en) Programmable controller with ladder diagram macro instructions
JP2644780B2 (ja) 処理依頼機能を持つ並列計算機
EP0320274B1 (en) An initial program load control system in a multiprocessor system
US4792896A (en) Storage controller emulator providing transparent resource sharing in a computer system
EP0305068A2 (en) Controlling asynchronously operating peripherals
JPS6124740B2 (ja)
US5228127A (en) Clustered multiprocessor system with global controller connected to each cluster memory control unit for directing order from processor to different cluster processors
JPS581813B2 (ja) デ−タ処理システム
EP0446077B1 (en) A control system for multi-processor system
JPS60501382A (ja) プロセス間通信を行うマイクロコンピュ−タ
JPH03241448A (ja) Ipl方式
US5280580A (en) System service request processing in multiprocessor environment
JP4479131B2 (ja) 制御装置
JPS5870352A (ja) システムコンソ−ル装置
JP3479623B2 (ja) マイクロコンピュータ装置
EP0316251B1 (en) Direct control facility for multiprocessor network
Serra et al. MICROPROCESSOR SYSTEM FOR
Di Manzo et al. MODIAC—A modular integrated microprocessor system for industrial automation and process control