(57)【特許請求の範囲】
【請求項１】
プロセッサ・モジュールおよび機能モジュールを有するプログラマブル・コントローラにおいて、前記モジュールの一方は、双方のモジュールからアクセスできるメモリを含み、前記メモリに情報を格納する前記モジュールの一方と前記メモリから情報を読み出す前記モジュールの他方とにより前記メモリを介して情報が交換されるプログラマブル・コントローラであって、前記プログラマブル・コントローラは、さらに情報の交換を初期化する機構を含み、
前記メモリを有する前記モジュールは、格納場所の数を指定するサイズ・データを前記メモリに書き込む手段を有し、
前記メモリを有しない前記モジュールは、前記メモリからサイズ・データを読み出す手段を有し、
前記プロセッサ・モジュールは、第１の所定の組のデータを前記メモリの一組の格納場所に書き込み、前記機能モジュールに第１の信号を送る手段を有し、
前記機能モジュールは、前記メモリの一組の格納場所からデータを読み出し、前記データが前記第１の所定の組のデータと整合しているかを決定するため前記データを試験することにより前記第１の信号に応答する第１の応答手段を有し、前記機能モジュールは、第２の所定の組のデータを前記メモリの一群の格納場所に書き込み、前記プロセッサ・モジュールに第２の信号を送る手段を有し、
前記プロセッサ・モジュールは、前記メモリの一群の格納場所からデータを読み出し、前記データが前記第２の所定の組のデータと整合しているかを決定するため前記データを試験することにより前記第２の信号に応答する第２の応答手段を有し、
前記プロセッサ・モジュールは、前記メモリの所定の格納場所に機能モジュール型式の識別又は前記プロセッサ・モジュールが機能モジュール型式の識別を有していない場合は初期情報のいずれかを書き込み、前記機能モジュールに第３の信号を送る手段を有し、
前記機能モジュールは、前記メモリの所定の格納場所からデータを読み出し、前記データが前記機能モジュールを正しく識別するかを決定するため前記データを試験することにより前記第３の信号に応答する第３の応答手段を有し、
前記機能モジュールは、前記メモリの所定の格納場所に正しいモジュール型式を指定するデータを書き込み、前記第３の応答手段が前記第３の信号に応答して読み出された前記データが前記機能モジュールを正しく識別しないことを示す場合に前記プロセッサ・モジュールに第４の信号を送る手段を有し、
前記プロセッサ・モジュールは、前記メモリの所定の格納場所からデータを読み出すことにより前記第４の信号に応答する第４の手段を有する、
プログラマブル・コントローラ。
【請求項２】
請求項１記載のプログラマブル・コントローラであって、前記プロセッサ・モジュールは、テスト・データを前記メモリに格納し、前記メモリからデータを読み出し、前記メモリから読み出したデータが前記テスト・データと整合するかを決定する手段をさらに含むプログラマブル・コントローラ。
【請求項３】
請求項１記載のプログラマブル・コントローラであって、前記プロセッサ・モジュールは、前記第１又は前記第２の応答手段のいずれかが前記データが整合しないことを決定する場合に前記機能モジュールとデータを交換できないことを示す手段をさらに含むプログラマブル・コントローラ。
【請求項４】
インタフェースを介してプログラマブル・コントローラのプロセッサ・モジュールとデータを交換し前記インタフェースを初期化する機構を有する任意の型式の機能モジュールであって、前記機構は、
前記プロセッサ・モジュールからデータを受信する受信手段と、
前記受信手段に接続され、前記プロセッサ・モジュールから受信したデータが第１の所定の組のデータと整合しているかを決定する第１の手段と、
前記第１の手段がデータが整合していないと表示することに応答して前記プロセッサ・モジュールにエラー信号を送る手段と、
前記第１の手段がデータが整合していると表示することに応答して前記プロセッサ・モジュールに第２の所定の組のデータを送る手段と、
前記プロセッサ・モジュールから受信した型式データに応答して前記型式データが前記機能モジュールを正しく識別しているかを決定する第２の手段と、
前記第２の手段に応答して前記プロセッサ・モジュールから受信したデータが前記機能モジュールの型式を正しく識別していない場合に前記機能モジュールの型式の正しい識別を前記プロセッサ・モジュールに送る手段と、
を含む機能モジュール。
【請求項５】
請求項４記載の機能モジュールであって、
前記モジュールの一方が前記モジュールの他方に送るデータを格納するメモリであって、前記モジュールの他方が前記メモリから前記データを読み出す前記メモリと、
前記メモリに格納場所の数を指定するサイズ・データを格納する手段と、
をさらに含む機能モジュール。
【請求項６】
請求項４記載の機能モジュールであって、
前記プロセッサ・モジュールおよび前記機能モジュールが共にデータを格納および書き込みできるメモリ手段であって、前記メモリ手段は、前記機能モジュールが前記プロセッサ・モジュールとデータを交換するために利用可能であるかに関する指定を格納する格納場所の部分を有する前記メモリ手段と、
前記プロセッサ・モジュールに対する前記機能モジュールの利用可能性を示すため所定の論理レベルを有するビットを前記格納場所の部分に書き込む手段と、をさらに含む機能モジュール。
【請求項７】
請求項６記載の機能モジュールであって、
前記プロセッサ・モジュールに対する前記機能モジュールの非利用可能性を示す論理レベルを有するビットを前記格納場所の部分に書き込む手段をさらに含む機能モジュール。
【請求項８】
プログラマブル・コントローラのプロセッサ・モジュールと機能モジュールとの間のデータ・インタフェースを初期化する方法であって、データをメモリに書き込む前記モジュールの一方によりデータが交換され、前記データの他方によりデータが読み出される前記方法は、
前記機能モジュールが格納場所の数を指定するサイズ・データを前記メモリに書き込むステップと、
前記プロセッサ・モジュールが前記メモリからサイズ・データを読み出すステップと、
前記プロセッサ・モジュールが第１の所定の組のデータを前記メモリの一組の格納場所に書き込むステップと、
前記機能モジュールが前記メモリの一組の格納場所からデータを読み出し、前記データが前記第１の所定の組のデータと整合しているかを決定するため前記データを試験するステップと、
前記機能モジュールが第２の所定の組のデータを前記メモリの一群の格納場所に書き込むステップと、
前記プロセッサ・モジュールが前記メモリの一群の格納場所からデータを読み出し、前記データが前記第２の所定の組のデータと整合しているかを決定するステップと、
前記プロセッサ・モジュールが機能モジュール型式の識別を有していない場合に前記プロセッサ・モジュールが機能モジュール型式の識別又は初期情報のいずれかを前記メモリの所定の格納場所に書き込ステップと、
前記機能モジュールが前記メモリの所定の格納場所からデータを読み出し、前記データが前記機能モジュールを正しく識別しているかを決定するため前記データを試験するステップと、
前記データが前記機能モジュールを正しく識別していない場合に前記機能モジュールが実際の型式を示すデータを前記メモリの所定の格納場所に書き込むステップと、
前記プロセッサ・モジュールが前記メモリの所定の格納場所からデータを読み出すステップと、
を含む前記方法。
【請求項９】
請求項８記載の方法であって、前記プロセッサ・モジュールがデータを前記メモリに書き込み、前記データを前記メモリから読み出し、前記メモリから読み出した前記データが前記メモリに格納されたデータと整合するかを決定するステップをさらに含む前記方法。
【請求項１０】
請求項８記載の方法であって、前記メモリは、前記機能モジュールが前記プロセッサ・モジュールとデータを交換するために利用可能であるかに関する指定を格納場所の部分に格納し、前記機能モジュールは、
前記プロセッサ・モジュールとの利用性を示すために前記機能モジュールが前記格納場所の部分の１ビットを所定の論理レベルに配置し、
前記機能モジュールが利用可能であることを認定するために前記プロセッサ・モジュールが前記格納場所の部分の別の１ビットを所定の論理レベルに配置して応答することにより、
利用可能となる前記方法。
【請求項１１】
請求項１０記載の方法であって、
前記機能モジュールが前記格納場所の部分の任意のビットを前記プロセッサ・モジュールの非利用可能性を示す論理レベルに配置し、
前記プロセッサ・モジュールが前記任意のビットを読み出し、前記格納場所の部分の別のビットを前記機能モジュールが利用不可能であることを認定する論理レベルに配置することにより、
前記機能モジュールが前記プロセッサ・モジュールとデータを交換するのに非利用となる前記方法。
【請求項１２】
請求項１１記載の方法であって、データが前記第１又は第２の所定の組のデータと整合しないことが判明する場合に前記プロセッサ・モジュールが前記機能モジュールと情報を交換することができないことを示すステップをさらに含む前記方法。
【請求項１３】
機能モジュールがプログラマブル・コントローラのプロセッサ・モジュールとのデータ・インタフェースを初期化する方法であって、前記方法は、
前記プログラマブル・コントローラから第１の所定の組のテスト・データを受信するステップと、
前記機能モジュールが前記第１の所定の組のテスト・データにエラーを検出するとき前記プロセッサ・モジュールにエラー表示を送り、それ以外の場合に前記プロセッサ・モジュールに第２の所定の組のテスト・データを送るステップと、前記プロセッサ・モジュールから機能モジュール型式の識別を受信するステップと、
前記機能モジュールが前記受信した識別が前記機能モジュールに該当しないことを検出するとき機能モジュール型式の異なる識別を送るステップと、
を含む前記方法。
【請求項１４】
請求項１３記載の方法であって、メモリのサイズを示すデータを前記プロセッサ・モジュールに送ることによりリセット信号に応答する前記機能モジュールを不動作にすることをさらに含む前記方法。
【請求項１５】
請求項１３記載の方法であって、前記機能モジュールは、当該モジュールが前記プロセッサ・モジュールとデータを交換するのに利用できるかに関する指定をメモリに格納し、前記プロセッサ・モジュールは、当該モジュールの利用可能性を示すために所定の論理レベルを有するデータ・ビットを前記メモリの格納場所に書き込むことにより利用可能となる前記方法。
【請求項１６】
請求項１５記載の方法であって、前記機能モジュールは、前記プロセッサ・モジュールの非利用可能性を示すために所定の論理レベルを有する任意のビットを前記メモリの格納場所に書き込むことにより前記プロセッサ・モジュールとデータを交換するのに非利用可能となる前記方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は産業設備の動作を制御するプログラマブル・コントローラに関し、より正確には、モジュール化されたプログラマブル・コントローラと、主プロセッサと特殊機能コプロセッサとの間のインタフェースと、に関する。
【０００２】
【従来の技術】
プログラマブル・コントローラは、各種の組立ライン及び工作機械のような各種製造設備を、内蔵制御プログラムに従って運転するための周知の型の産業用コンピュータである。該プログラムは、一連のプロセス制御命令により構成されており、この命令は読み出せれ実行されて、被制御設備上の選択された感知装置の状態を検査し、そして、１つもしくは１つ以上の検査された感知装置の状態にしたがって選択された駆動装置に対する電流の供給あるいは切断を行う。
【０００３】
多数の感知装置及び駆動装置の状態は、制御プログラムの命令によって操作される１ビットのデータによって表される。位置センサのような他の感知装置は被制御設備の状態を表す複数ビットのデータを与える。これら後者の装置に対しては、感知装置及び駆動装置の状態を表す複数バイトもしくは複数ワードのデータを操作する命令が与えられる。ここで使用される単語、「バイト」は８ビットのデータを、また「ワード」は１６ビット、あるいは２バイトのデータを表す。このほかのプログラム命令は、算術演算、タイミングと計数機能、並びに複雑な統計データを報告する演算を実行する。これらの命令はその産業の中ではまったく標準化されていて、プロセス制御技術者により容易に理解される梯子型論理図(ladder logic diagram)の各種要素に直接的関連付けがなされている。
【０００４】
【発明が解決しようとする課題】
プログラマブル・コントローラが、より複雑な製造システムに適用されるようになったことに伴い、プログラマブル・コントローラはより広範囲のタスクを迅速に実行するように要求された。一定のタスクを迅速かつ効率的に実行するため、プログラマブル・コントローラの主処理装置を、これらのタスクを処理することから解放するカスタム・コプロセッサ（特定用途向コプロセッサ）が提案されてきた。しかし、コプロセッサの動作は主処理装置の動作に調和していなくてはならない。さらに、各種の異なるカスタム・コプロセッサが同じプログラマブル・コントローラに接続されるので、主処理装置がカスタム・コプロセッサの機能性を識別することができる、ある種の機構が必要となる。
【０００５】
【課題を解決する手段】
プログラマブル・コントローラは、プロセッサ・モジュールを含み、機械を動作させるための内蔵制御プログラムを実行する。コプロセッサのような機能モジュールはプロセッサ・モジュールに接続される。両モジュールの１つの中にあるインタフェースメモリに情報を書き込む起動モジュール（originator module ）と、前記メモリ（recipient module）からこの情報を読み出す受け側モジュールによって、データメッセージは両モジュールの間で交換される。
【０００６】
この方法によってモジュール間でデータが正確に交換できる前に、この２つのモジュールの間のデータインタフェースが満足に動作しているかどうか判定する初期設定処理が実行される。この初期設定処理の初めに、前記メモリを含むモジュールはメモリの中の格納場所の数を指定するデータをそのメモリに書き込む。別のモジュールは前記メモリからサイズデータを読み出し、前記メモリを介して情報を交換するときに後で使用するためこの読み出したデータを格納する。
【０００７】
つぎにプロセッサ・モジュールは、前記メモリの１組の格納場所に所定の第１のテストデータを書き込む。すると機能モジュールはこの１組の格納場所からデータを読み出し、この読み出したデータが、所定の第１の１組のデータと整合しているかどうか判定する。整合していなければ、プロセッサ・モジュールにエラー表示が送られ、プロセッサ・モジュールはこれに応答して、モジュール間のデータ交換に問題があることを示す表示をセットする。データが整合していれば、機能モジュールは前記メモリの１群の格納場所に所定の第２の１組のデータを書き込む。プロセッサ・モジュールは機能モジュールのこの動作に応答して前記メモリの１群の格納場所からデータを読み出し、このデータが、所定の第２の１組のデータと整合しているかどうか判定する。整合していない場合、プロセッサ・モジュールはモジュール間のデータ交換に問題があることを示す表示をセットする。
【０００８】
両モジュールの間でデータが両方向に正確に交換されると、プロセッサ・モジュールは、機能モジュールの型式を識別したことを示す情報、あるいは、プロセッサ・モジュールが機能モジュールの型式を識別できなければ既定値情報（default information ）、のいずれかを前記メモリの指定した格納場所に書き込む。機能モジュールは前記メモリの指定した格納場所からデータを読み出し、このデータが当該機能モジュールを正しく確定しているかどうか判定する。このデータが当該機能モジュールを正しく確定していない場合、機能モジュールは当該機能モジュールの実際の型式を示すデータを、前記メモリの指定した格納場所に書き込む。プロセッサ・モジュールは前記メモリの指定した格納場所からデータを読み出す。
【０００９】
本発明の目的は、それを介して、プログラマブル・コントローラの２つのモジュールの間でデータが交換されるインタフェースを初期設定する装置と初期設定方法を提供することである。これは本インタフェースを介して実データを送ろうとする前に、本インタフェースが正しく機能していることを保証するものである。
【００１０】
別の目的は、インタフェースのメモリにデータを格納し、このメモリを前記メモリから読み出すことにより、両モジュールがこのインタフェースを独立に試験する機構を提供することである。
【００１１】
さらに別の目的は、各モジュールが既知のテストデータを別のモジュールに送りこの別のモジュールは前記既知のデータが正しく受信されたことを照合する手法を提供することである。
【００１２】
本発明のさらに別の目的は、プロセッサ・モジュールが機能モジュールとのデータ交換を可能とするために、インタフェースおよび機能モジュールの機能性を定義するデータをプロセッサ・モジュールに送ることである。
【００１３】
【実施例】
図１を参照すると、符号１０のプログラマブル・コントローラ・システムは主装置ラック１２と、ラック１４のような、シリアルＩ／Ｏネットワーク１５により相互接続されている一連のリモート入出力（Ｉ／Ｏ）ラックにより構成される。端末１１はユーザがコントローラ１２のプログラミングをすることと、その動作を監視することができるようにするための装置である。
【００１４】
主ラック１２は、電力供給装置１６、プロセッサ・モジュール２０、コプロセッサ・モジュール１７および複数の入出力インターフェース・モジュール１８を収容している。またここでは、プロセッサ・モジュール２０およびコプロセッサ・モジュール１７を、それぞれプロセッサおよびコプロセッサと簡単に呼ぶこともある。プロセッサ・モジュール２０はユーザ定義の制御プログラムを実行する。この制御プログラムは被制御設備上の感知装置からの入力信号に応答して、同じ被制御設備上の駆動装置に信号を出力する。感知信号及び駆動信号は入出力インターフェース・モジュール１８を介してラック１２に結合される。主ラック内の各種モジュール１８及び２０はバックプレーンの導線により電気的に相互に接続され、モジュール間でデータ信号及び制御信号を交換可能としている。
【００１５】
プロセッサ・モジュール２０は、ケーブル１３によって本モジュールのフロントパネル上のシリアル・ポート・コネクタに接続される端末１１を介して、プログラムの命令を受信する。シリアルＩ／Ｏネットワーク１５はプロセッサ・モジュール２０のフロントパネル上の第２のコネクタおよびリモートＩ／Ｏラック１４のアダプタモジュール（１９）に結合され、これによりプロセッサ・モジュール２０は、リモートＩ／Ｏラック内の別のグループの入出力モジュール１８とデータができることになる。ローカルエリアネットワークは、プロセッサ・モジュール２０のフロントパネル上のコネクタの１つに結合され、ホストコンピュータ及び該ネットワークに結合されている他のプログラマブル・コントローラとの通信を可能としている。
【００１６】
コプロセッサ・モジュール１７はプロセッサ・モジュール２０から受信したデータを処理し、処理の結果をプロセッサ・モジュールに送り返す。入出力モジュール１８およびアダプタモジュール１９は従来の装置であるが、プロセッサ・モジュール２０およびコプロセッサ・モジュール１７は本発明に独特な装置であるから、これら後者の２つのモジュールについて詳細に説明する。
【００１７】
Ａ．プロセッサ・モジュール
図２を参照すると、プロセッサ・モジュール２０は、ユーザの制御プログラムの実行用の汎用プロセッサ・セクション４０と、ケーブル１３及びシリアルＩ／Ｏネットワーク１５上のデータの交換を処理するための通信インタフェース回路２１を含んでいる。またプロセッサ・モジュール２０は、これらのセクション２１、４０をシステムメモリ３６および専用処理回路３８、３９に接続する１組の共用バスを有している。
【００１８】
通信インタフェース回路２１はローカル・アドレス・バス２３および１６ビット幅のローカル・データ・バス２４の周囲に形成されている。これらのバスに結合されている第１のマイクロプロセッサ２２には、モトローラ社製のモデル６８０００マイクロプロセッサを使用することができる。第１のマイクロプロセッサ２２は、電気的書き込み可能読み出し専用メモリ（ＥＰＲＯＭ）２６内に内蔵されているプログラムを実行し、ランダム・アクセス・メモリ（ＲＡＭ）２７をデータの一時格納用に利用する。マスタークロック回路２８は、通信インタフェース回路２１の要素に特定のタイミング信号を供給するばかりでなく、プロセッサ・モジュール２０内の他の要素に使用されるシステム・クロック信号を供給する。
【００１９】
第１のマイクロプロセッサ２２に割り当てられた主要機能は、プログラミング端末１１およびシリアルＩ／Ｏネットワーク１５との通信の制御である。通信ネットワーク・インターフェース回路２９は、ローカル・アドレス・バス２３とローカル・データ・バス２４を端末ケーブル１３およびリモートＩ／Ｏケーブル１５へ結合する。通信ネットワーク・インターフェース回路２９は、プロセッサ・モジュール２０内のパラレル・フォーマットと、端末ケーブル１３およびシリアルＩ／Ｏネットワーク１５上でデータの交換に使用されるシリアル・フォーマットとの間のデータを変換する。
【００２０】
着脱可能な小型の印刷回路カード３０は、図１に示されているように、プロセッサ・モジュール２０の前面パネルの開口部に挿入し、ローカル・バス２３、２４と噛み合うコネクタを有している。カード３０は種々の形態をとることができる。即ち、そのひとつは、機械の制御プログラムを保管するメモリを持つことである。
【００２１】
通信インタフェース回路２１のローカル・バス２３、２４と第１のマイクロプロセッサ２２からの１組の制御線２５は、プロセッサ・モジュール２０の側面のコネクタ３５に結合されている。コプロセッサ・モジュール１７はコネクタ３５に接続され、この２つのモジュールが相互に電気的にインタフェースする手段が用いられている。このインタフェースとコプロセッサ・モジュールについては後で詳細に説明する。
【００２２】
通信インタフェース回路２１は、１組の双方向３状態(tri-state) データ・ゲート３２を介して他のプロセッサ・モジュール・セクションに接続される。特に、ゲート３１はローカル・アドレス・バス２３を、モジュールの共用アドレス・バス３３に結合し、データ・ゲート（３２）はローカル・データ・バス２４を共用データ・バス３４に結合する。従来の制御信号を運ぶ別の線はプロセッサ・モジュール２０のコンポーネントの間に延びているが、説明を簡明にするため示していない。
【００２３】
このバスの結合により、第１のマイクロプロセッサ２２は、共用アドレス・バス３３および共用データ・バス３４に結合された共用システムＲＡＭ３６に対し読み出しおよび書き込みを行うことができる。この共用システムＲＡＭ３６は、プログラマブル・コントローラに制御される機械上の感知装置および駆動装置の状態を格納する入出力データの組を保持する。ユーザ定義の制御プログラムは共用システムＲＡＭ３６の別のセクションに格納される。共用システムＲＡＭ３６のさらに別のセクションは、システム・レベル、プロセッサ・モジュール・レベルおよびマイクロプロセッサ・レベルの構成データ(configuration data)を格納するために使用される。
【００２４】
さらに図２のプロセッサ・モジュール回路を参照すると、Ｉ／Ｏラック・インターフェース回路３８は、共用アドレス・バスおよび共用データ・バスと、主ラック１２のバックプレーンに接続されている。このインターフェース回路３８は、被制御設備のセンサからのデータを収集して駆動装置に対して出力データを送るため、Ｉ／Ｏモジュール１８を定期的に走査する。この従来形の走査は、以前のプログラマブル・コントローラで使用されているのと同様な方法で、各Ｉ／Ｏモジュールに対して制御信号を順次連続して送ることにより行われる。これらの制御信号によって、入力形モジュールはバックプレーン１６上にセンサ・データを送り、出力形モジュールはプロセッサ・モジュールにより送られたデータを格納する。主ラックのＩ／Ｏモジュール１８により交換されるデータは、共用システムＲＡＭ３６のＩ／Ｏデータ・テーブルに格納される。
【００２５】
また梯子型論理プロセッサ３９は、共用アドレス・バス３３および共用データ・バス３４に結合されている。梯子型制御プログラム命令の大半は１ビットあるいは１ワードのデータで動作する。梯子型論理プロセッサは、基本制御動作を行う梯子型論理図命令の部分集合を実行するように設計されている。これは、これらの命令を効率的に実行することができるばかりでなく、制御プログラムの実行と同時に他の機能を行うように、プロセッサ・モジュール２０のマイクロプロセッサ２２、４１を解放する。
【００２６】
Ｉ／Ｏモジュール１８に対するデータブロック転送、並びに複雑な数学的演算や論理演算のようなある種の機能は、梯子型論理プロセッサ３９は実行できない。これらの複雑な制御プログラム機能は、汎用プロセッサ・セクション４０により実行される。プロセッサ・モジュール２０のセクション４０には、分離された専用のローカル・アドレス・バス４２およびローカル・データ・バス４３にそれぞれ接続される第２のマイクロプロセッサ４１が含まれる。このバス４２および４３の組によって、第２のマイクロプロセッサ４１は第２のＥＰＲＯＭ４４および第２のローカル・ランダム・アクセス・メモリ（ＲＡＭ）４５に結合される。第２のＥＰＲＯＭ４４には、第２のマイクロプロセッサ４１によって実行される、より複雑な梯子型論理動作を行うためのファームウエアが格納されている。
【００２７】
タイミング回路４７はシステム・クロック信号を受信し、第２のマイクロプロセッサ４１、メモリ４４および４５に必要なタイミング信号および制御信号をつくり出す。一対の３状態・送信用ゲート４８および４９により、汎用プロセッサ・セクション４０のローカル・アドレス・バス４２およびローカル・データ・バス４３は、共用アドレス・バス４２および共用データ・バス４３から分離されている。第２のマイクロプロセッサ４１からのコマンドに応答して、これらのゲート４８および４９が導通となると、ローカル・バス４２および４３は共用バス３３および３４と電気的に接続される。第２のマイクロプロセッサ４１が梯子型論理プロセッサ３９内のアービトレーション回路  によって共用バス３３および３４へのアクセスが許可された場合にのみ、ゲート４８および４９を導通とする動作が行われる。
【００２８】
Ｂ．コプロセッサ回路
プロセッサー・モジュール２０はコネクタ３５を介してコプロセッサ・モジュール１７に直接結合して信号を交換するのであって、ラック１２のバックプレーンを通して信号を交換するのではない。図３を参照すると、コプロセッサ・モジュール１７は、プロセッサ・モジュール２０のコネクタ３５と噛み合うコネクタ５０を持っている。プロセッサ・モジュール２０からのデータ・バス２３、アドレス・バス２４および制御線２５はこれらのコネクタ３５、５０を介して２重ポート・ランダム・アクセス・メモリ５２の１つのポートに延びている。メモリ５２の他の１つのポートは、コプロセッサ・モジュール１７内の１組のバス５３、５４および制御線５５に接続されている。プロセッサ２０が前記メモリにアクセスする場合を除き、メモリへのアクセスを調整し、かつ、各モジュールのバスを隔離する機構の追加により、２重ポート・ランダム・アクセス・メモリ５２のかわりに共用メモリを使用することができることは、当業者には理解されていることであろう。
【００２９】
バス５３、５４および制御線５５によりマイクロコンピュータ５６、メモリ５７および入出力インタフェース５８を相互接続する。たとえば、コプロセッサ１７は、プロセッサ・モジュールが実効可能な言語とは別のコンピュータ言語で書かれた制御プログラムを実行したり、あるいはコプロセッサは被制御機械の稼働状況を要約する報告書を作製するため、Ｉ／Ｏモジュール１８からのデータを作表することもできる。これらの機能を実行するため、マイクロコンピュータ５６はメモリ５７に格納されたプログラムを実行するとともに、他のコンピュータ言語の命令を解釈したり、報告書を作製する。コプロセッサ１７は入出力インタフェース回路５８により外部の入出力装置に接続される。
【００３０】
起動側モジュール（originator）が２重ポート・メモリ５２にデータを書き込むとともに受け側モジュールに割り込んで、前記メモリの中に読み出しを待つデータがあることを示すことによって、プロセッサー・モジュール２０およびコプロセッサ・モジュール１７の間でデータが交換される。受け側モジュールは２重ポート・メモリ５２を読み出し、このデータを処理する。
【００３１】
特に図４を参照すると、２重ポート・メモリ５２はデータを複数のセグメントの中に格納する。第１のセグメント６４は方式決定セグメントである。このセグメントには３２バイトのデータが含まれ、電源オンのとき、このデータはプロセッサとコプロセッサとの間の通信の特性の方式を決定（negotiation ）するために使用される。方式決定セグメントは以前のインテリジェント通信ネットワーク・インタフェースからその名前を取っている。すなわち、インテリジェント通信ネットワーク・インタフェースでは、バス・インタフェースを通してデータを交換するパラメータを決定するためプロセッサ・モジュールおよび通信回路が折衝して方式を決定する。しかし、コプロセッサの種類が異なると２重ポート・メモリＲＡＭ５２の大きさも変化するので、プロセッサ・モジュール２０からの読み出しに備えて、ＲＡＭ５２の大きさは方式決定セグメントの４バイトに格納される。
【００３２】
方式決定セグメント６４の別のワードは、モジュール１７、２０により協同してリセット手続きがおこなわれた後のプロセッサ・モジュール２０の最新の状態を表す。プロセッサ・モジュール２０の内部の状態フラグが変化すると、プロセッサ・モジュール２０はこのワードのビット値を変更する。各ビットは、次の表によって定義される通り、プロセッサ・モジュールの動作モードを表す。
【表１】
ビット０    −  ＲＡＭ不良
ビット１    −  走行モード
ビット２    −  テスト・モード
ビット３    −  プログラム・モード
ビット４    −  ＥＥＰＲＯＭの書き込み（burning EEPROM）
ビット５    −  ダウンロード・モード
ビット７    −  リモート・モード
ビット８    −  強制モード準備完（forces enabled）
ビット９    −  強制モード状態（forces present）
ビット１０  −  ＥＥＰＲＯＭの書き込み完了
ビット１１  −  オンライン編集
ビット１２  −  デバッグ・モード
ビット１３  −  ユーザ・プログラムの検査合計終了
ビット１４  −  梯子型論理図あるいは機能図のステップの最新スキャン
ビット１５  −  梯子型論理図あるいは機能図のステップの最初のスキャン
【００３３】
コプロセッサ・インタフェースの初歩的な使い方には、データ交換に対してパラメータの方式決定（negotiation ）をする必要はないが、パラメータの方式決定が必要なより複雑なモジュールの場合は、本インタフェース初期設定処理が使用されることがある。
【００３４】
第２のメモリ・セクションは識別セグメント６５であり、このセグメントにはコプロセッサ・モジュールの系列およびバージョン番号を示す情報が含まれる。
【００３５】
第３のメモリ・セクションはディレクトリ・セグメント６６であり、このセグメントには、２重ポート・メモリ５２の各セグメントの先頭アドレス、各セグメントのサイズ、各セグメントの型式、各セグメントのしるし（instance）を含むセグメント記述子の配列が含まれる。ディレクトリ・セグメント６６は、２重ポート・メモリ５２の別のセグメントに対するインデックスである。セグメントの型式には以下の種類が含まれる。
０−方式決定セグメント
１−セグメント・ディレクトリ
２−識別セグメント
４−チャネル・セグメント
５−プロセッサ間ハンドシェーク・フラグ
６−未処理データの転送
セグメントのしるしは特定の型式のセグメントの数を示す。
【００３６】
ディレクトリ・セグメント６６に続いてハンドシェーク・セグメント６７があるが、このセグメントは２重ポート・メモリＲＡＭ５２の８バイトを占有する。図５に示す通り、ハンドシェーク・セグメント６７には、プロセッサ・モジュール２０からコプロセッサ・モジュール１７に送られる割り込み要求に関するフラグビットを含む２つのバイト７０、７１と、コプロセッサ・モジュール１７からプロセッサ・モジュール２０に送られる割り込み要求に関するフラグを格納する２つのバイト７３、７４とが含まれる。より詳細には、コプロセッサ・モジュールに割り込む場合、バイト７０によりフラグ・ビットが立てられる（toggled ）。コプロセッサ・モジュール１７は、これらのフラグを読み、かつ、どのフラグが反転されているか調べることにより、この割り込みを処理する。バイトの対、７０、７１およびバイトの対、７２、７３では、機能は（各バイトに１対ある）フラグビットの対によって表される。すなわち、１ビットはメッセージの発信側によって制御され、他の１ビットはメッセージの受信側によって制御される。この２つのビットが異なると、ハンドシェーク・セグメント６７は保留されているとみなされる。そうではなくこの２つのビットが同じ場合は、このフラグとこれに対応する機能は保留中されていない。
【００３７】
バイトの中の第１の２つのフラグ・ビットは、コプロセッサ・モジュールの相手プロセッサ・モジュールに信号を送ることによって、このコプロセッサ・モジュールをオンラインにしたり、オフラインにしたりすることができる。第３のビットは、プロセッサ・モジュール２０が、そのシステムＲＡＭ３６のＩ／Ｏデータ・テーブルからコプロセッサに未処理データの転送を完了したことを示す。次の４つのフラグは、それぞれ該当する４つのアクセスＦＩＦＯレジスタがサービスを要求し、次の４つのフラグは、該当する１組のアクセスＦＩＦＯ管理（management）レジスタがサービスを要求していることを示す。バイト７０、７１がコプロセッサ・モジュール１７からプロセッサ・モジュール２０に送られているデータに関連していることを除けば、ハンドシェーク・セグメント６７の最終の２バイト７２、７３はバイト７０、７１と同一である。
【００３８】
要約すると、ハンドシェーク・セグメント６７は、割り込み線の対６０、６１を介してプロセッサあるいはコプロセッサのいずれかから入る、多数の割り込みを多重化する手段としての働きをしているのである（図３）。バイト対７０−７１とバイト対７２ー７３の対応するビットが反対の状態にある場合、割り込み信号が送られる。モジュール１７およびモジュール２０はこの全フラグを読んで、割り込みが要求され、かつ、要求された割り込みが処理されたか判定する。
【００３９】
再び図４を参照すると、２重ポート・メモリＲＡＭ５２の中の次のセグメント６８には、ＦＩＦＯアクセス・レジスタ、ＦＩＦＯ管理レジスタ、および、プロセッサ・モジュール２０とコプロセッサ・モジュール１７ののメッセージデータを渡すためのその他の情報が格納される。ここでは、このセグメント６８は「チャネル０セグメント」と呼ばれ、図６に示す通り、複数のサブセグメントに分割される。第１のサブセグメント７４は、他のサブセグメント・ユニットにアクセスするためのディレクトリである。要求（REQUEST ）ＦＩＦＯレジスタは次のサブセグメント７５に含まれ、コプロセッサ１７からのサービスを要求するために使用される。次のサブセグメントには確認（CONFIRM ）ＦＩＦＯレジスタが含まれているが、この確認ＦＩＦＯレジスタは、プロセッサから前に要求されたサービスをコプロセッサが確認するために使用される。サブセグメント７７の指定（INDICATE）ＦＩＦＯレジスタおよびサブセグメント７８の受領（ACCEPT）ＦＩＦＯレジスタは、プロセッサ２０に対してデータの送信あるいはデータの要求をコプロセッサ１７が開始し、かつプロセッサがこれに応答した場合を示すために使用される。
【００４０】
プロセッサ・フリー・プール・サブセグメント７９およびコプロセッサ・フリー・プール・サブセグメント８０は、交換中のメッセージデータを格納する。詳細には、これらのサブセグメントには、２重ポート・インタフェースを介した通信のメッセージヘッダー、バッファヘッダーおよびデータバッファが含まれる。各フリー・プールは複数のサブフリー・プールに細分され、各サブフリー・プールは、図７に示す通り、プール・ヘッダー８１と、接続された組のメッセージ・ブロック８２とを備えている。
【００４１】
各プール・ヘッダー８１には、次のプール・ヘッダーに対するポインタ、このヘッダーに関する第１のメッセージブロックに対するポインタおよびこのサブプール用データバッファのサイズの指定示が含まれている。各メッセージブロック８２には表２に指定される情報が格納される。
【表２】
0003549116.tif 000002
【００４２】
図４の未処理データ転送セグメント６９には、プロセッサ・モジュール２０の入出力データテーブルとコプロセッサ１７との間の未処理データのブロック転送用のバッファおよび情報が含まれる。
【００４３】
図６および図７をさらに参照すると、プロセッサ・モジュール２０がメッセージを生成すると、プロセッサ２０はそのメッセージのヘッダーに対するポインタを、矢印線８４に示す通り、要求ＦＩＦＯ７５に格納する。要求ＦＩＦＯ７５は、表３に示す情報が先行して格納されているポインタの配列である。
【表３】
0003549116.tif 000003
【００４４】
コプロセッサ１７が割り込みを受けると、コプロセッサ１７は、矢印線８５で示すように、要求ＦＩＦＯ７５から次のメッセージポインタを読み出し、ついで指定されたプールヘッダー８１と関連するメッセージブロック８２を読み出す。８６で示すように、コプロセッサは確認ＦＩＦＯ７６に同一メッセージヘッダーを書き込むことによってメッセージが受信され処理されたことを確認する。後者のＦＩＦＯ７６の構造は要求ＦＩＦＯ７５と同様であり、プロセッサ２０が割り込みを受けると、矢印線８７で示すように、確認ＦＩＦＯ７６から次プールヘッダーポインタを読み出す。つぎに、プロセッサ２０は指定されたメッセージヘッダーを２重ポート・メモリ５２から読み出し、作成したメッセージが処理されたことを確認する。
【００４５】
図７に示す通り、同様なデータ構造はコプロセッサ１７により作成されたメッセージに対して存在する。コプロセッサ・モジュール１７がプロセッサ・モジュール２０に対するデータを持っている場合、このデータは２重ポート・メモリ５２の使用可能なメッセージブロック８２に格納され、ヘッダー情報は使用可能なプールヘッダー８１に置かれる。コプロセッサ１７は、矢印線９０で示すように、ポインタを指定ＦＩＦＯ７７のプールヘッダー８１に格納する。プロセッサ・モジュール２０は、矢印線９１で示すように、指定ＦＩＦＯ７７内の次ポインタを読み出し、ヘッダーとメッセージデータが２重ポート・メモリ５２から読み出される。次に、プロセッサ・モジュール２０は、矢印線９２で示すように、同一ポインタを受領ＦＩＦＯ７８に書き込み、コプロセッサ・モジュール１７に割り込みをかける。コプロセッサ・モジュールは、矢印線９３で示すように、受領ＦＩＦＯ７８からこのポインタを読み出し、プロセッサによりメッセージが受け取られたことを確認する。
【００４６】
再び図５を参照すると、ハンドシェーク・セグメントには、４つのＦＩＦＯ７５−７８に対応する割り込みフラグがある。より詳細には、ワード７０のプロセッサ割り込みには、４つのＦＩＦＯに対応する４つのアクセスフラグがあり、コプロセッサ・ワード７２には、４つのＦＩＦＯに対応する４つのアクセスフラグがある。これらのフラグにより、別のモジュールから割り込みを受けたとき、割り込みを受けたモジュールは適切なＦＩＦＯを迅速に読み出すことができることになる。
【００４７】
２重ポート・メモリ５２内のチャネル０セグメント６８もまたインタフェース管理機能に関するデータ構造を格納する。これらデータ構造体には、上記説明の通り動作する（図示されていない）４つの管理用ＦＩＦＯと、関連するメッセージヘッダー、バッファヘッダーおよびバッファとが含まれる。さらに、ハンドシェイク・セグメント６７（図５）のワード７０−７３のそれぞれの中に４つの管理用割り込みフラグがあり、これらのフラグにより、プロセッサ・モジュールおよびコプロセッサ・モジュールは管理用ＦＩＦＯに対して迅速にサービスする。
【００４８】
Ｃ．コプロセッサの初期設定
本発明が特に重点を置いていることは、コプロセッサがリセットされると、これに伴ってコプロセッサ・モジュール１７およびプロセッサ・モジュール２０協力的関係（cooperative configuration ）をつくる方法である。システムに電源が投入されると、普通のメッセージの授受が起こる前に、２つのモジュール１７、２０により初期設定手続きが実行される。この過程に於いて、２重ポート・メモリ５２の協力的試験および識別情報の交換が行われる。この段階的に進む初期設定手続きを示すフローチャートが図８と図９に示されている。これらの図は、プロセッサ・モジュール２０によって実行されるステップを示す左側部分と、コプロセッサ・モジュール１７によって実行されるステップを示す右側部分に分割される。
【００４９】
プログラマブル・コントローラに電源が投入され、続いてシステム全体がリセットされると、プロセッサ・モジュール２０は、自身のコンポーネントをチェックして初期動作状態に設定する。図８のフローチャートに示す通り、内部リセット処理の後で、プロセッサ・モジュール２０はコプロセッサ・モジュール１７の協力的初期設定を始める。この処理はステップ１００で開始するが、ステップ１００でプロセッサ・モジュール２０はその制御バス２５の線５９に供給していた有効なリセット信号を取り除く。コプロセッサ・モジュール１７内のマイクロコンピュータ５６は前記リセット信号が取り除かれたことを感知すると、ステップ１０１で内部メモリ５７の試験を実行する。ついでステップ１０２で、マイクロコンピュータ５６は内部メモリの試験に合格したかどうか判定する。この時メモリの故障が発見されると、マイクロコンピュータ５６にコプロセッサの故障制御線６２が引き込まれ、プロセッサ・モジュール２０にエラーが発見されたことが示される。ステップ１０３で、プロセッサ・モジュールはこの故障信号に応答してその状態レジスタのエラーフラグをセットし、これ以後使用しないようにコプロセッサ・モジュール１７を終了させる。これでコプロセッサの初期設定ルーチンは終了する。これとは別に、エラーが発見されてもコプロセッサは初期設定処理を完全に終了できることがある。次のステップ１０４が正しく終了すると、コプロセッサからプロセッサ２０に割り込みをかけることになっているので、プロセッサ２０は、割り込みを受けなかったとしても、何か異常のあることが判る。
【００５０】
しかし、コプロセッサ・モジュール１７の内部メモリが試験に合格すると、コプロセッサの初期設定ルーチンはステップ１０４に進み、ここでマイクロコンピュータ５６は、２重ポート・メモリ５２のサイズをメモリ５７の不揮発性セクションから読み出し、これを２重ポート・メモリの所定の格納場所に格納する。ついでコプロセッサのマイクロコンピュータ５６は線６１に割り込み要求を与え、プロセッサ・モジュール２０の第１のマイクロプロセッサ２２に割り込みをかける。
【００５１】
第１のマイクロプロセッサ２２はこの割り込みに応答して、ステップ１０６で２重ポート・メモリ５２からそのサイズを読み出す。図２に示す通り、２重ポート・メモリ５２のサイズは、プロセッサ・モジュール２０の通信インタフェース回路２１内の第１のＲＡＭ２７のブロックの中に格納される。ついでプロセッサ・モジュール２０は、ステップ１０８でテストデータを格納しかつ読み戻すことにより、従来どおりの２重ポート・メモリ５２の試験を実行する。この２重ポート・メモリ５２の試験に合格したか失敗したかを示すために、プロセッサ・モジュール２０内の第１のＲＡＭ２７の中に含まれているフラグがセットされる。前記メモリの試験に合格すれば、プロセッサ・モジュール２０は、そして詳細には第１のマイクロプロセッサ２２は、コプロセッサ・モジュール１７に対する制御バス２５の線６０に割り込み要求（ＩＲＱ）信号を与える。この割り込み要求によってコプロセッサ・モジュール１７内のマイクロコンピュータ５６が活性化すると、マイクロコンピュータ５６はこの割り込み要求に応答して、ステップ１１０で所定のテストデータを２重ポート・メモリ５２の最初の１６バイトと最後の１６バイトの中に格納する。一旦テストデータが格納されてしまうと、マイクロコンピュータ５６は、線６１によりプロセッサ・モジュール２０内の第１のマイクロプロセッサ２２に対して割り込み要求（ＩＲＱ）を発行する。
【００５２】
第１のマイクロプロセッサ２２はステップ１１２でこの割り込み要求に応答して、２重ポート・メモリ５２から最初の１６バイトと最後の１６バイトを読み出す。ついで、第１のマイクロプロセッサ２２はステップ１１４で、２重ポート・メモリ５２から正しい組のテストデータを読み出したかどうか判定する。２重ポート・メモリ５２がこれらのメモリ試験のいずれか１つに失敗すると、初期設定処理はステップ１１６に分岐し、ステップ１１６で第１のマイクロプロセッサ２２はＲＡＭ２７の中のフラグをセットし、これ以後使用しないようにコプロセッサ・モジュール１７との接続を切断する。必要ならば、コプロセッサの初期設定ルーチンの終了に先立ち、シリアル通信リンク１３を介してオペレータ端末装置１１にエラー表示が送られる。不良コプロセッサ・モジュール１７が発見されると、プロセッサ・モジュール２０はコプロセッサ・モジュールを使用しない別の制御機能を継続する。
【００５３】
２重ポート・メモリ５２がここまでの試験にすべて合格したとすると、プログラムの実行はステップ１１４からステップ１１８に進み、ここで第１のマイクロプロセッサ２２により所定の異なる組のテストデータが、２重ポート・メモリ５２の最初の１６バイトと最後の１６バイトの中に格納される。ついで第１のマイクロプロセッサ２２は、有効な信号をコプロセッサの割り込み要求（ＩＲＱ）線６０に与えることにより、コプロセッサ１７に割り込みをかける。ついで初期設定ルーチンは図９のステップ１２０に進み、ここでコプロセッサのマイクロコンピュータ５６はこの割り込み要求に応答して、２重ポート・メモリ５２から最初の１６バイトと最後の１６バイトを読み出す。ステップ１２２で、マイクロコンピュータ５６はこれらのバイトを検査して、正しい組のテストデータがメモリから読み出されたかどうか判定する。もしデータにエラーが発見されると、マイクロコンピュータ５６によりステップ１２４で、線６２を介してプロセッサ・モジュールに故障信号が送られる。第１のマイクロプロセッサ２２はこの故障信号に応答して、コプロセッサ・モジュール１７をこれ以後使用しないように指定するため、第１のＲＡＭの中の状態フラグをセットする。前に示した通り、コプロセッサの初期設定ルーチンの終了に先立ち、オペレータ端末装置１１にエラー・メッセージも送られる。
【００５４】
しかし、正しい組のテストデータが２重ポート・メモリから読み出されたとすれば、コプロセッサのマイクロコンピュータ５６はステップ１２６で、線６１を介してプロセッサ・モジュール２０に対して割り込み要求（ＩＲＱ）を送る。この割り込み要求がプロセッサ・モジュール２０に示しているのは、２重ポート・メモリ５２が確実に作動することをコプロセッサは確認済みであるということである。
【００５５】
プロセッサ・モジュール内の第１のマイクロプロセッサ２２はステップ１２８でこの割り込み要求に応答して、プロセッサ・モジュールのシステムＲＡＭ３６の中に含まれているコプロセッサ識別データを、２重ポート・メモリ５２の方式決定セグメントの中の指定された場所に格納する。プロセッサ・モジュール２０が以前このコプロセッサ・モジュール１７と共に作動したとすれば、システムＲＡＭ３６の中に正しい識別データが格納されていることになる。さもなければ、このデータは、システムに最初に電源が投入されたときの値、すなわち、全部ゼロであるか、あるいは異なるモジュールが前に使用されたとすれば正しくないかのいずれかである。一旦識別結果が格納されると、第１のマイクロプロセッサ２２は再びコプロセッサ・モジュール１７に割り込みをかける。コプロセッサのマイクロコンピュータ５６はステップ１３０で、この後者の割り込み要求に応答して、プロセッサ・モジュール２０によって２重ポート・メモリ５２の中に格納されたコプロセッサ識別データを、コプロセッサメモリ５７の不揮発性セクションの中に含まれているデータと比較する。２組のコプロセッサ識別データが整合するかどうかの決定はステップ１３２で行われる。整合していなければ、マイクロコンピュータ５６はステップ１３４で、当該識別データをコプロセッサのメモリ５７から２重ポート・メモリ５２の指定された場所に転送する。ついでマイクロコンピュータ５６はプロセッサ・モジュールに割り込み要求を送る。
【００５６】
この割り込み要求により、プロセッサ・モジュール２０はステップ１３６で、新しいコプロセッサ識別データメッセージを２重ポート・メモリ５２から読み出し、このデータをシステムＲＡＭ３６に格納する。これでコプロセッサの初期設定手続きは確実に終了し、プロセッサ・モジュールはメインとして動作するソフトウエアプログラムの実行を開始する。
【００５７】
初期設定手続きが完了するとき、コプロセッサ・モジュール１７はまだオフラインの状態にある。したがって、図１０に示すように、コプロセッサが接続手続きを開始するまで、モジュール１７とモジュール２０の間で正常にメッセージを交換することはできない。この処理は、コプロセッサ・モジュール１７の中のマイクロコンピュータ５６によりステップ１４０で開始され、２重ポート・メモリ５２は、先に説明したセグメントおよびサブセグメントに構成される。ついでマイクロコンピュータ５６は、図５に示すハンドシェーク・セグメントのバイト７２のビット１を変更する。マイクロコンピュータ５６はつぎにプロセッサ・モジュール２０の第１のマイクロプロセッサ２２に割り込み要求を送る。
【００５８】
第１のマイクロプロセッサ２２はこの割り込み要求に応答して、バイト７２のビット１の状態に一致するように、肯定応答バイト７３のビット１を変更する。ついで第１のマイクロプロセッサ２２はステップ１４４で、コプロセッサ・モジュール１７がオンラインであることを示すため、各種の準備（housekeeping）タスクを実行する。コプロセッサ・モジュール１７の中の２重ポート・メモリ５２はプロセッサ・モジュール２０の第１のマイクロプロセッサ２２からアクセスされる。ハンドシェークセグメントのバイト７０のビット１に保留の印を付ける。ついでコプロセッサ・モジュール１７が割り込みを受けると、２つのモジュールの接続には、オンラインとみなしたコプロセッサが完備されていることになる。
【００５９】
プログラマブル・コントローラが稼働中でないときには、コプロセッサ・モジュール１７は、図１１に示す接続切断手続きを実行することにより自身をオフラインにするすることができる。この手続きはステップ１５０で開始し、ここでコプロセッサは、２重ポート・メモリ５２の中のハンドシェーク・セグメント６７のバイト７２のビット０に保留の印を付ける。つぎにマイクロコンピュータ５６はプロセッサ・モジュールに割り込み要求を送る。プロセッサ・モジュール２０の第１のマイクロプロセッサ２２はこの割り込み要求に応答して、バイト７２のビット０の状態に一致するように、肯定応答バイト７３のビット０を変更する。ついでステップ１５２で、コプロセッサ・モジュール１７がオフラインであることを示すため、第１のマイクロプロセッサ２２により準備タスクが実行される。このあとステップ１５４で、第１のマイクロプロセッサ２２により、２重ポート・メモリ５２の中のハンドシェーク・セグメント６７のバイト７０のビット０に保留の印が付けられる。ついで割り込み要求がコプロセッサ・モジュール１７に送られ、コプロセッサ１７はオフラインとなっていることが示される。先に説明した図１０の手続きを実行することにより、コプロセッサ・モジュールはオンラインに戻ることができる。
【図面の簡単な説明】
【図１】本発明を使用したプログラマブル・コントローラ・システムの外観図。
【図２】図１のコントローラの一部を形成する、プロセッサ・モジュールの機能ブロック図。
【図３】該プロセッサ・モジュールに接続される１種類のコプロセッサ・モジュールのファンクション・ブロック図。
【図４】コプロセッサ・モジュールの２重ポート・ランダム・アクセス・メモリのアドレス・マップ図。
【図５】図４のメモリ・マップ図の１部を形成するハンドシェーク・セグメントのアドレス・マップ図。
【図６】図４のメモリ・マップ図のチャネル０セグメントのアドレス・マップ図。
【図７】前記２重ポート・ランダム・アクセス・メモリに格納されるデータの構造を示す図。
【図８】プロセッサ・モジュールおよびコプロセッサが相互に初期設定する処理のフローチャートを示す図。
【図９】プロセッサ・モジュールおよびコプロセッサが相互に初期設定する処理のフローチャートを示す図。
【図１０】コプロセッサ・モジュールがオンラインになる処理を示す図。
【図１１】コプロセッサ・モジュールがオフラインになる処理を示す図。
【符号の説明】
１０  プログラマブル・コントローラ・システム
１１  オペレータ端末装置
１２  主装置ラック
１３  ケーブル
１４  リモートＩ／Ｏラック
１５  Ｉ／Ｏネットワーク
１６  電力供給装置
１７  コプロセッサ・モジュール
１８  入出力インターフェース・モジュール
２０  プロセッサ・モジュール
２１  通信インタフェース回路
２２  第１のマイクロプロセッサ
２３  データ・バス
２４  アドレス・バス
２５  制御線
２６  第１のＲＯＭ
２７  第１のＲＡＭ
２８  マスター・クロック
２９  ネットワーク・インターフェース
３０  ファンクション・カード
３１  ３状態アドレス・ゲート
３２  ３状態・双方向データ・ゲート
３３  共用アドレス・バス
３４  共用データ・バス
３５  コネクタ
３６  共用システムＲＡＭ
３８  Ｉ／Ｏラック・インターフェース回路
３９  梯子型論理プロセッサ
４０  汎用プロセッサ
４１  第２のマイクロプロセッサ
４２  ローカル・アドレス・バス
４３  ローカル・データ・バス
４４  第２のＲＯＭ
４５  第２のＲＡＭ
４７  タイミング回路
４８  ３状態アドレス・ゲート
４９  ３状態・双方向データ・ゲート
５０  コネクタ
５２  ２重ポート・ＲＡＭ
５３  コプロセッサ・ローカル・データ・バス
５４  コプロセッサ・ローカル・アドレス・バス
５５  コプロセッサ・ローカル・制御線
５６  コプロセッサ・モジュールのマイクロコンピュータ
５７  コプロセッサ・モジュールのメモリ
５８  コプロセッサ・モジュールのインタフェース回路
５９  リセット線
６０  コプロセッサへの割り込み要求線
６１  プロセッサへの割り込み要求線
６２  コプロセッサ故障信号線
６４  方式決定セグメント
６５  識別セグメント
６６  ディレクトリ・セグメント
６７  ハンドシェーク・セグメント
６８  チャネル０セグメント
６９  未処理データ転送セグメント
７０  プロセッサ割り込みフラグ
７１  肯定応答フラグ
７２  コプロセッサ割り込みフラグ
７３  肯定応答フラグ
７４  セグメント・ディレクトリ
７５  要求ＦＩＦＯ
７６  確認ＦＩＦＯ
７７  指定ＦＩＦＯ
７８  受領ＦＩＦＯ
７９  プロセッサ・フリー・プール
８０  コプロセッサ・フリー・プール
８１  プールヘッダー
８２  メッセージブロック
【図１】
0003549116.tif 000004
【図２】
0003549116.tif 000005
【図３】
0003549116.tif 000006
【図４】
0003549116.tif 000007
【図５】
0003549116.tif 000008
【図６】
0003549116.tif 000009
【図７】
0003549116.tif 000010
【図８】
0003549116.tif 000011
【図９】
0003549116.tif 000012
【図１０】
0003549116.tif 000013
【図１１】
0003549116.tif 000014