(57)【要約】【課題】既存プログラムの再利用性を効果的に向上させるとともに、各ＰＬＣが出力する個々の出力変数の識別を、該システムのＳＥや運用管理者に対して容易にすること。【解決手段】  表示フィールドｗ５に表示されている局番は、このパソコンが接続されているＰＬＣの局番と一致している。また、表示フィールドｗ１には各出力変数のビットアドレスが表示されている。例えば、出力変数の番地が００Ｌ１Ｅで、その送信先のＰＬＣ局番が２であるチェックボックスに対応する対応ビットは、第１の記憶手段ＴＢＬ１上に格納される出力予定定義フレームＲＦ０２中の出力予定定義ビットＲｂ１Ｅであるので、この出力予定定義ビットＲｂ１Ｅの値は０（：出力予定無し）と定義される。ＯＫボタンｗ４をクリックすると、正しく定義された各出力予定定義フレームが、ＰＬＣ１０に転送されて、第１の記憶手段ＴＢＬ１上にそれぞれ格納される。【選択図】図４
2008152532.tif 000002
【特許請求の範囲】
【請求項１】
通信手段を有するＰＬＣを複数台接続することによって構成されるブロードキャスト型又はマルチキャスト型のＰＬＣ分散制御システムにおいて、
各前記ＰＬＣは、
自ＰＬＣ上において実行されるラダーダイアグラム中の出力コイルを模擬する各出力変数の他の前記ＰＬＣに対する出力予定の有無を、その各出力変数毎に定義する出力予定定義情報からなる出力予定定義フレームを他の各前記ＰＬＣ対応にそれぞれ記憶する第１の記憶手段と、
他の前記ＰＬＣ上において実行されるラダーダイアグラム中の出力コイルを模擬する各出力変数に対する参照予定の有無を、その各出力変数毎に定義する参照予定定義情報からなる参照予定定義フレームを他の各前記ＰＬＣ対応にそれぞれ記憶する第２の記憶手段と、
前記出力予定定義フレームまたは前記参照予定定義フレームを他の各前記ＰＬＣに送信する送信手段と、
前記出力予定定義フレームまたは前記参照予定定義フレームを他の各前記ＰＬＣから受信する受信手段と、
前記出力予定定義フレームと前記参照予定定義フレームとを各対応フレーム毎にそれぞれ照合する照合手段と、
前記照合手段による照合結果に基づいて、前記ＰＬＣ分散制御システムにおける通常通信の開始の是非を判定する通常通信開始判定手段と
を有する
ことを特徴とするＰＬＣ分散制御システム。
【請求項２】
前記送信手段は、
送信すべき目的の送信データに前記自ＰＬＣの局番を付与する局番付与手段を有し、
各前記ＰＬＣは、
前記出力予定定義情報の入力を受け付ける定義情報入力手段と、
前記定義情報入力手段によって入力された入力情報に基づいて、前記出力予定定義フレームを前記第１の記憶手段上にそれぞれ生成する第１のフレーム生成手段と
を有する
ことを特徴とする請求項１に記載のＰＬＣ分散制御システム。
【請求項３】
各前記ＰＬＣは、
自ＰＬＣ上において実行される前記ラダーダイアグラムのソースプログラム中から前記参照予定定義情報を抽出する定義情報抽出手段と、
前記定義情報抽出手段によって抽出された抽出情報に基づいて、前記参照予定定義フレームを前記第２の記憶手段上にそれぞれ生成する第２のフレーム生成手段と
を有する
ことを特徴とする請求項１または請求項２に記載のＰＬＣ分散制御システム。
【請求項４】
通信手段を有するＰＬＣを複数台接続することによって構成されるＰＬＣ分散制御システムにおいて、
送信すべき目的の送信データに自ＰＬＣの局番を付与して他の各前記ＰＬＣに送信する送信手段を有し、
各前記ＰＬＣは、
自ＰＬＣ上で実行されるラダーダイアグラムの動作内容を所定の画面上または紙面上に表示するダイアグラム編集表示手段を有し、
前記ダイアグラム編集表示手段は、
前記ＰＬＣ分散制御システムにおける前記自ＰＬＣの局番を取得する局番取得手段と、  前記ラダーダイアグラムを具現するオブジェクトプログラム上において出力コイルを模擬する各出力変数のアドレスコードを、取得された前記局番を含む形式の論理的なアドレスコードに書き換える表示アドレスコード編集手段と
を有する
ことを特徴とするＰＬＣ分散制御システム。
【請求項５】
前記送信手段は、
送信すべき目的の送信データに前記自ＰＬＣの局番を付与する局番付与手段を有し、
各前記ＰＬＣは、
自ＰＬＣ上で実行されるラダーダイアグラムの動作内容を所定の画面上または紙面上に表示するダイアグラム編集表示手段を有し、
前記ダイアグラム編集表示手段は、
前記ＰＬＣ分散制御システムにおける前記自ＰＬＣの局番を取得する局番取得手段と、  前記ラダーダイアグラムを具現するオブジェクトプログラム上において出力コイルを模擬する各出力変数のアドレスコードを、取得された前記局番を含む形式の論理的なアドレスコードに書き換える表示アドレスコード編集手段と
を有する
ことを特徴とする請求項１乃至請求項３の何れか１項に記載のＰＬＣ分散制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信手段を有するＰＬＣ（プログラマブルコントローラ）を複数台接続することによって構成されるＰＬＣ分散制御システムに関する。本発明は、例えば、国際安全規格に準拠する安全システム等を構築する際などに特に有用である。
【背景技術】
【０００２】
所定の安全規格に準拠する安全システムを構成するために、記憶手段や演算処理部などを多重化したＰＬＣ分散制御システムに関する従来技術としては、例えば下記の特許文献１に記載されている安全コントローラなどが公知である。また、複数の機械設備を同時に並列制御するファクトリーオートメーションにおいては、各機械設備を制御する個々のＰＬＣを相互に接続して、分散制御システムを構成することがある。そして、近年、この様な分散制御システムにおいては、各ＰＬＣ間の通信回線などをも更に多重並列化することによって、各ＰＬＣ間の通信処理に関する信頼性をも十分に確保すべきとする安全指向の要請が強くなりつつある。
【０００３】
また、この様な分散制御システムにおける安全通信を実現するための、通信制御に係わる信頼性が十分に高いインターロック機構を容易かつ効率よく構成したいと言うニーズが高まりつつあり、また、分散制御システム内における安全処理シーケンスを分かり易く表した表現形式によって、当該システムを効率的に運用管理したいと言うニーズも、近年ますます高まりつつある。
【特許文献１】特開２００２−３５８１０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の様な信頼性の高い安全通信を実現するには、システムの実稼働前に、各ＰＬＣ上の各ラダーダイアグラムの実行によって発生する個々の通信が、各通信回線を介してそれぞれ正しく行なわれるか否かを予め各回線毎に全てテストしておく必要が生じる。このため、システム生成時やラダーダイアグラム（シーケンスプログラム）の入れ換え時などに、当該システムの運用効率が、著しく低下すると言う問題が発生する。
【０００５】
また、安全システムに限定されない一般のＰＬＣ分散制御システムにおいても、同一または類似のロジック（アルゴリズム）を有するラダーダイアグラムを相異なる複数台のＰＬＣ上において同時に並列に動作させたいと言うケースがある。この様な場合に、各ＰＬＣにおいては、それらのロジックを同様に具現する既存プログラムをそれぞれ同様に適用すること（即ち、既存プログラムの再利用）によって、オブジェクトプログラムの生産性が大幅に向上する。しかし、それと同時に、この様な場合には、ネットワークを構成する当該分散制御システムのシステム構成が複雑となるため、それらの各ＰＬＣの各出力変数を論理的に識別し易く体系化し直して、各出力変数をそれぞれ分かり易く見易い形式でラダー図上などに表示したいと言う、新たな運用管理上のニーズが発生する。
【０００６】
本発明は、上記の課題を解決するために成されたものであり、その目的は、ＰＬＣ分散制御システムにおいて、信頼性の高い安全通信を実現するとともに、通信回線のテストなどに係わる運用効率を効果的に向上させることである。
また、本発明のその他の目的は、ＰＬＣ分散制御システムにおいて、既存プログラムの再利用性を効果的に向上させるとともに、該ＰＬＣ分散制御システムを構成する各ＰＬＣが出力する個々の出力変数の識別を、該システムのＳＥや運用管理者に対して容易にすることである。
【課題を解決するための手段】
【０００７】
上記の課題を解決するためには、以下の手段が有効である。
即ち、本発明の第１の手段は、通信手段を有するＰＬＣを複数台接続することによって構成されるブロードキャスト型又はマルチキャスト型のＰＬＣ分散制御システムにおいて、上記の各ＰＬＣに、自ＰＬＣ上において実行されるラダーダイアグラム中の出力コイルを模擬する各出力変数の他のＰＬＣに対する出力予定の有無をその各出力変数毎に定義する出力予定定義情報からなる出力予定定義フレームを他の各ＰＬＣ対応にそれぞれ記憶する第１の記憶手段と、他のＰＬＣ上において実行されるラダーダイアグラム中の出力コイルを模擬する各出力変数に対する参照予定の有無をその各出力変数毎に定義する参照予定定義情報からなる参照予定定義フレームを他の各ＰＬＣ対応にそれぞれ記憶する第２の記憶手段と、上記の出力予定定義フレームまたは参照予定定義フレームを他の各ＰＬＣに送信する送信手段と、上記の出力予定定義フレームまたは参照予定定義フレームを他の各ＰＬＣから受信する受信手段と、それらの出力予定定義フレームと参照予定定義フレームとを各対応フレーム毎にそれぞれ照合する照合手段と、この照合手段による照合結果に基づいて当該ＰＬＣ分散制御システムにおける通常通信の開始の是非を判定する通常通信開始判定手段とを備えることである。
【０００８】
ただし、上記の各ＰＬＣには、各処理が二重化された安全ＰＬＣを用いることが望ましい。また、上記のラダーダイアグラムを記述するためのプログラミング言語は、特に限定されず、グラフィック形言語を用いてもテキスト形言語をもちいてもよい。また、１つの出力変数に対する上記の出力予定定義情報や上記の参照予定定義情報は、何れも１ビット情報として取り扱うことが望ましく、この場合には、上記の各定義フレームは、それらのビット列データで構成される。
【０００９】
また、これらの各手段は、システムの構成時、起動時、または再起動時に、動作させることが望ましいが、更に、定期的に動作させてもよい。
また、ブロードキャスト型又はマルチキャスト型の通信を実現するために各ＰＬＣを繋げる通信配線は、必ずしも二重化しなくてもよい。また、例えばパケットの二重化などによって、少なくとも、論理的に通信回線を二重化することによって、本発明に基づいて、所望の安全通信を実現することができる。
また、物理的な通信配線は、リング形かバス形に構成することが望ましく、更には、二重化しておくことがより望ましい。
【００１０】
また、本発明の第２の手段は、上記の第１の手段において、送信すべき目的の送信データに自ＰＬＣの局番を付与する局番付与手段を上記の送信手段に設け、更に、上記の出力予定定義情報の入力を受け付ける定義情報入力手段と、この定義情報入力手段によって入力された入力情報に基づいて上記の出力予定定義フレームを上記の第１の記憶手段上にそれぞれ生成する第１のフレーム生成手段とを各ＰＬＣに設けることである。
【００１１】
ただし、上記の本発明の第２の手段の代わりに、以下の本発明の第３の手段と略同様の手段によって、ラダーダイアグラムのソースプログラム中から抽出された抽出情報に基づいて、上記の出力予定定義フレームを上記の第１の記憶手段上にそれぞれ生成する様にしてもよく、かつ、その様な手段を備えたＰＬＣを用いて、本発明のＰＬＣ分散制御システムを構成してもよい。
【００１２】
次に、本発明の第３の手段は、上記の第１又は第２の手段の各ＰＬＣにおいて、自ＰＬＣ上において実行されるラダーダイアグラムのソースプログラム中から、上記の参照予定定義情報を抽出する定義情報抽出手段と、この定義情報抽出手段によって抽出された抽出情報に基づいて、上記の参照予定定義フレームを上記の第２の記憶手段上にそれぞれ生成する第２のフレーム生成手段とを備えることである。
ただし、上記の定義情報抽出手段は、上記のソースプログラムをコンパイルするコンパイラの例えば拡張機能などとして構成してもよいし、コンパイラとは独立のツール（コード解析プログラム）によって実現してもよい。
【００１３】
また、本発明の第４の手段は、通信手段を有するＰＬＣを複数台接続することによって構成されるＰＬＣ分散制御システムにおいて、送信すべき目的の送信データに自ＰＬＣの局番を付与して他の各前記ＰＬＣに送信する送信手段を設け、更に、上記の各ＰＬＣに、自ＰＬＣ上で実行されるラダーダイアグラムの動作内容を所定の画面上または紙面上に表示するダイアグラム編集表示手段を設け、このダイアグラム編集表示手段に、当該ＰＬＣ分散制御システムにおける自ＰＬＣの局番を取得する局番取得手段と、上記のラダーダイアグラムを具現するオブジェクトプログラム上において出力コイルを模擬する各出力変数のアドレスコードを、取得された上記の局番を含む形式の論理的なアドレスコードに書き換える表示アドレスコード編集手段とを備えることである。
【００１４】
ただし、本発明の第４の手段における上記のＰＬＣは、各種の二重化などによって安全処理が図られた安全ＰＬＣに限定されるものではない。
また、上記のラダーダイアグラムを記述するためのプログラミング言語は、特に限定されず、グラフィック形言語を用いてもテキスト形言語をもちいてもよい。また、ダイアグラム編集表示手段の出力結果に関する編集表示形態についても同様の任意性を有する。また、上記の局番取得手段は、所定のユーザーインターフェイスを介して、ユーザーに局番を直接入力させる手段でもよいし、例えば診断命令などの問い合わせコマンド等を用いて、自動的に取得する様に構成してもよい。
なお、上記の局番を含む形式の論理アドレスコードが、ＳＥや運用管理者に対して認識（目視）させるための運用管理上のアドレスコードとなる。
【００１５】
また、本発明の第５の手段は、上記の第１乃至第３の何れか１つの手段において、送信すべき目的の送信データに前記自ＰＬＣの局番を付与する局番付与手段を上記の送信手段に設け、更に、上記の各ＰＬＣに、自ＰＬＣ上で実行されるラダーダイアグラムの動作内容を所定の画面上または紙面上に表示するダイアグラム編集表示手段を設け、このダイアグラム編集表示手段に、当該ＰＬＣ分散制御システムにおける自ＰＬＣの局番を取得する局番取得手段と、上記のラダーダイアグラムを具現するオブジェクトプログラム上において出力コイルを模擬する各出力変数のアドレスコードを、取得された上記の局番を含む形式の論理的なアドレスコードに書き換える表示アドレスコード編集手段とを備えることである。
【００１６】
ただし、上記のラダーダイアグラムを記述するためのプログラミング言語は、特に限定されず、グラフィック形言語を用いてもテキスト形言語をもちいてもよい。また、ダイアグラム編集表示手段の出力結果に関する編集表示形態についても同様の任意性を有する。また、上記の局番取得手段は、所定のユーザーインターフェイスを介して、ユーザーに局番を直接入力させる手段でもよいし、例えば診断命令などの問い合わせコマンド等を用いて、自動的に取得する様に構成してもよい。
なお、上記の局番を含む形式の論理アドレスコードが、ＳＥや運用管理者に対して認識（目視）させるための運用管理上のアドレスコードとなる。
以上の本発明の手段により、前記の課題を効果的、或いは合理的に解決することができる。
【発明の効果】
【００１７】
以上の本発明の手段によって得られる効果は以下の通りである。
即ち、本発明の第１の手段によれば、上記の定義フレーム（即ち、出力予定定義フレームまたは参照予定定義フレーム）は各ＰＬＣ間の各通信回線においてそれぞれ双方向にて送受信され、上記の照合処理は各ＰＬＣにおいてそれぞれ実施されるので、これによって、各ＰＬＣ間における少なくとも論理的な各通信回線の状態を全回線にわたって双方向に自動的にそれぞれテストすることができる。また、これによって、各相手局の送受信状態がそれぞれ正常であるか否かについても同時にテストされる。
更に、この照合処理では、各ＰＬＣ間における個々の出力変数について、各対応フレーム毎に入力条件と出力条件とが一致することがチェックされる。このため、各ＰＬＣ間で入出力すべき各出力変数の送受信が、それぞれ正しく実行される状態にあるか否かを、送受信されるべき各出力変数について、全て漏れなく自動的に判定することができる。
また、上記と同様の通信方式に基づいて、即ち、上記の出力予定定義フレームと同一形式の送信データフレームを、各ＰＬＣ間においてそれぞれ送受信する通信方式を採用することによって、通常通信実行時においても勿論、同様のブロードキャスト型又はマルチキャスト型の通信を安全に実施することができる。
【００１８】
したがって、本発明の第１の手段によれば、マスタースレーブ方式を採用する従来の分散制御システムにおけるマスターＰＬＣの様な、子局間の通信に関する中継機能を奏する中継局（マスター局）を設置することなく、安全通信を容易に実現することができる。このため、少なくとも通信制御処理に関しては、メモリーオーバーヘッドやＣＰＵオーバーヘッドが大きくプログラム構成が複雑となるマスターＰＬＣを設ける必要がなくなる。或いは、ある特定のＰＬＣに何らかのマスター機能を付与したとしても、この第１の手段の構成に従えば、ブロードキャスト型又はマルチキャスト型の通信方式により、通信系におけるシステムトポロジー（ネットワーク構造）の対称性は高く維持できるので、そのＰＬＣの通信制御処理オーバーヘッドをも効果的に軽減することができる。
したがって、本発明の第１の手段によれば、安全通信を具現するための通信制御に係わるインターロック制御機構を非常に容易かつ確実に構成することができ、これによって、所望のＰＬＣ分散制御システムにおいて信頼性の高い安全通信を非常に容易に実現することができる。
【００１９】
また、本発明の第２の手段によれば、ユーザーは、ある１台のＰＬＣの分散制御システム上の既存プログラムを他のＰＬＣに流用する場合に、自ＰＬＣの出力変数（コイル出力）のアドレスを修正せず、その代わりに、上記の定義情報入力手段から上記の出力予定定義情報を入力するだけで、上記のアドレス修正手続きと等価な所望の流用手続きを完了することができる。即ち、本発明の第２の手段によれば、上記の様な既存プログラムの流用作業時に、ソースプログラム上の出力変数のアドレスを修正する代わりに、上記の定義情報入力手段から上記の出力予定定義情報を入力するだけで、所望の第１の記憶手段に格納すべき各出力予定定義フレームをそれぞれ全て生成することが可能となる。
【００２０】
この様に、自ＰＬＣのオブジェクトコード上の出力変数の実アドレスを修正する必要がなくなるのは、出力変数を含んだ送信データに各ＰＬＣが各自のＰＬＣの局番を付与して他の各ＰＬＣに送信する送信手段の局番付与作用に基づいて、何れのＰＬＣ上においても、各自の出力変数を同じ番地の記憶領域上に展開することができるためであり、また、各ＰＬＣのＣＰＵモジュール２０上においては、送信データに付与された局番に基づいて、受信データ中の出力変数が、どのＰＬＣからの出力変数であるのかを容易に区別することができるためである。
【００２１】
また、上記の定義情報入力手段を具現するに当たっては、例えばＧＵＩやテキスト入力などによって、極めて簡潔なユーザーインターフェイスを構成することができるので、上記の所望の流用手続きは、非常に効率よく実行することができる。
したがって、本発明の第２の手段によれば、極めて効率よく、分散制御システム上の既存プログラムの流用を図ることができる。
【００２２】
また、本発明の第３の手段によれば、上記の定義情報抽出手段と上記の第２のフレーム生成手段により、既存のソースプログラムに基づいて、上記の第２の記憶手段上に自動的に上記の参照予定定義フレームを生成することができる。このため、本発明の第３の手段によれば、極めて効率よく、該ＰＬＣ分散制御システムにおける各ＰＬＣ間の安全通信を実現することができる。
【００２３】
また、本発明の第４または第５の手段によれば、出力変数の定義領域のアドレスが各ＰＬＣ間において互いに重なっている場合においても、各ＰＬＣ間においては、前述の局番付与作用と同様の作用に基づいてそれらの各出力変数を容易に区別することができ、各ラダーダイアグラムは誤動作なく正確に実行することができる。このため、例えば、同一ロジックで動作する対称構成の子局間などにおいては、それらのオブジェクトコードについて、出力変数の実アドレスに関する修正操作を実施しなくても、それらのオブジェクトコードを誤動作なく正確に実行することができる。
【００２４】
また、これと同時に、ラダー図上などにおける各ＰＬＣの出力変数のアドレス表示においては、該当する各ＰＬＣの局番を含む形式の論理的なアドレスコード（論理的表現）が用いられるので、それらの各出力変数のアドレスは、該当する正しい局番を含む形式の論理的なアドレスコードによって、それぞれ分かり易く見易い形式でラダー図上などに表示することができる。
【００２５】
したがって、本発明の第４または第５の手段によれば、出力変数の定義領域のアドレスが各ＰＬＣ間において互いに重なっている場合においても、ラダー図上などに表示される各出力変数のアドレス表記に対する、ＳＥやシステム運用管理者などの視覚的な認識性が向上し、これによって、当該分散制御システムの運用管理が容易となる。
また、出力変数の定義領域のアドレスが各ＰＬＣ間において互いに重なっている場合においても、例えば、同一ロジックで動作する対称構成の子局間などにおいては、それらのオブジェクトコードについて、出力変数の実アドレスに関する修正操作を実施しなくても、それらのオブジェクトコードを誤動作なく正確に実行することができるので、例えば、少なくとも通信制御関連の処理が同一ロジックによって動作する子局（即ち、子局間にカスケード接続がなく、かつ、親子間で参照し合う出力変数に関する通信関係が同一である類似構成の子局）を並列に複数設ける際などに、既存プログラムの再利用性を極めて高く確保することができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明を具体的な実施例に基づいて説明する。
ただし、本発明の実施形態は、以下に示す個々の実施例に限定されるものではない。
【実施例１】
【００２７】
図１に本実施例１のＰＬＣ分散制御システム１のシステム構成図を示す。この分散制御システムは、アドレスＱ１８〜Ｑ１Ｄの合計６つの各モータを、非同期または必要に応じて同期させつつ、かつ、安全に動作させるためのものであり、これらの各モータは工業用の工作ロボットや加工装置などを駆動するために使用される。
このＰＬＣ分散制御システム１は、スレーブＰＬＣ１１、１２とマスターＰＬＣ１０をリングバス１４を用いてリング状に接続したものであり、これによって、ブロードキャスト型の通信ネットワークが構成されている。これらの各ＰＬＣ（１０、１１、１２）はそれぞれ、ＣＰＵモジュール２０と通信制御モジュール３０とＩ／Ｏモジュール４０、６０から構成されており、これらのモジュールは、バス２１によって相互に接続されている。これらの各ＰＬＣは、Ａ系統とＢ系統とに演算処理装置や記憶装置などの各部がそれぞれ２重化された安全ＰＬＣで構成されているが、その各部の２重化構成に関する詳しい解説は図８などに譲ることとし、以下では何れもそれぞれ１重構成に省略して説明する。
【００２８】
ＣＰＵモジュール２０のメモリ２２には、ラダー図言語で記述されたシーケンスプログラムが記憶されている。ＣＰＵモジュール２０は、このシーケンスプログラムをＣＰＵ２４によって実行することによって、各モジュールを制御したり各モジュールと連動したりすることができる。なお、このＰＬＣ分散制御システム１においては、ブロードキャスト型の安全通信が実現されるが、マスターＰＬＣ１０の通信制御モジュール３０は、そのＣＰＵモジュール２０からの指令に基づいて、リングバス１４上における通信状態を制御するための指令や信号等を送出する同期制御機能（通信トリガー生成管理機能）などをも奏する。
【００２９】
各ＰＬＣの通信制御モジュール３０は、バスインターフェイス３２、メモリ３４、及びＣＰＵ３６が具備されており、各メモリ３４にはそれぞれ、所定のパケット交換プロトコルに従う通信プログラムが記憶されている。通信制御モジュール３０は、ＣＰＵモジュール２０から受ける指令に基づいて、この通信プログラムをＣＰＵ３６にて実行することにより、リングバス１４上におけるパケットの送受信をバスインターフェイス３２を介して制御する。
また、各Ｉ／Ｏモジュール４０には、二重化された非常停止ボタン（ＥＳＢ０〜２）がそれぞれ接続されており、その状態に基づいて非安全状態を検出することができる。
【００３０】
本実施例１のＰＬＣ分散制御システム１では、更に、各ＣＰＵモジュール２０のインターフェイス２６にパソコン５０、５１、５２がそれぞれ個別に接続されている。これらの各パソコン（５０、５１、５２）はそれぞれ、キーボード５４、表示装置５５及びメモリ５７などが具備されている。勿論、その他にも、マウスやプリンターや、或いは携帯可能な外部記憶媒体に対する入出力装置などを備えてもよい。
ＣＰＵモジュール２０のメモリ２２に記憶させる上記のシーケンスプログラムとしては、通常、これらのパソコン上でコンパイルされたものを用いるのが普通であるが、既にその他のコンピュータ上において生成（コンパイル）されたものを、例えば上記の外部記憶媒体などを介して導入してもよい。
【００３１】
図２に、上記のＰＬＣ分散制御システム１の制御形態を例示する。本図２は、各ＰＬＣ１０〜１２の各ＣＰＵモジュール２０上にて実行すべきシーケンスプログラムをラダーダイアグラムを用いて表したものであり、局番「００」がＰＬＣ１０のステーションアドレスを、局番「０１」がＰＬＣ１１のステーションアドレスを、局番「０２」がＰＬＣ１２のステーションアドレスをそれぞれ示している。
【００３２】
図２中の破線で囲まれた入力接点（Ｉ００〜Ｉ０５）やコイル（Ｑ１８〜Ｑ１Ｄ）は、それぞれ図１の各変数アドレス（Ｉ００〜Ｉ０５，Ｑ１８〜Ｑ１Ｄ）と対応しており、これらは、非常停止ボタンやモータなどの実際に存在する物理的な入出力対象と直接１対１に対応する状態変数を示している。また、破線で囲まれていないその他の状態変数（００Ｌ０４，０１Ｌ０８，０２Ｌ０８）は、論理的に模擬されたコイルなどの状態を表す。以下、論理的に模擬されたこれらの状態変数のことをリンクリレーを表すＬ型変数または単に出力変数と呼ぶ。
図２のラダー図上に表示されているアドレスコードにつては、各出力変数（リンクリレーを表すＬ型変数）のアドレス表記の頭２文字は、それぞれ各局番と一致しており、３文字目は’Ｌ’に固定されている。また、図中の矢印は、各出力変数に対する参照関係を示している。
【００３３】
そして、例えば、以上の様なラダーダイアグラムを実行可能にコード化したシーケンスプログラムによって、何れかの非常停止ボタン（ＥＳＢ０，ＥＳＢ１，ＥＳＢ２）が押下された際には、当該ＰＬＣ分散制御システム１を安全に停止させることができる。例えば、２重化された非常停止ボタンＥＳＢ０が押下された際には、入力接点Ｉ００または入力接点Ｉ０１の少なくとも何れか一方がＯＦＦ状態となるため、全モータ（Ｑ１８〜Ｑ１Ｄ）が非常停止する。また、非常停止ボタンＥＳＢ１が押下された際には、モータＱ１８〜Ｑ１Ｂだけが非常停止する。
勿論、非常停止ボタンの代わりに、または、更に非常停止ボタンに加えて、各種のエリアセンサ（例：ライトカーテンや安全マット）などの安全入力機器を導入してもよい。
【００３４】
安全ＰＬＣを用いて構成される本実施例１のＰＬＣ分散制御システム１において、これらの安全機構を実現する上で非常に重要となる課題の１つに、各ＰＬＣ間における通信の安全性を挙げることができる。即ち、図２の矢印で示されている参照関係が常時安全に成り立つことを保証するための通信制御に関するインターロック機構を確実に構成することが、非常に重要となる。
以下、上記のＰＬＣ分散制御システム１において、その様な安全通信に有用なインターロック機構を容易かつ確実に構成するための実現方式について説明する。
【００３５】
本実施例１では、各ＰＬＣ間においてリングバス１４を介してやり取りされる上記の出力変数（リンクリレーを表すＬ型変数）は、それを出力する各ＰＬＣ（１０〜１２）毎にそれぞれ最大３２変数まで定義できるものとする。また、１台のＰＬＣが入力（参照）することのできる他のＰＬＣの出力変数（リンクリレーを表すＬ型変数）についても、合計で３２変数までとする。したがって、システム内の通信を実現するために論理的に模擬される入力接点やコイル（出力変数）の設定可能数は何れも、各ＰＬＣにつきそれぞれ最大３２個までとする。
したがって、例えば図２におけるアドレス表現に従えば、局番が「００」であるＰＬＣ１０において定義することができる出力変数の論理アドレスは、００Ｌ００〜００Ｌ１Ｆの３２通りとなる。
【００３６】
図３−Ａは、本実施例１における第１の記憶手段ＴＢＬ１のテーブル構造図である。この第１の記憶手段ＴＢＬ１は、各ＰＬＣ毎に設けられる手段であり、ＴＢＬ１０〜ＴＢＬ１３の連続した４つのフレーム格納領域から構成されている。各格納領域は何れも４バイト領域からなる。そして、これらの各フレーム格納領域ＴＢＬ１０〜ＴＢＬ１３には、例えば、局番が００であるＰＬＣ（即ちＰＬＣ１０）上においては、それぞれ４バイトデータである出力予定定義フレームＲＦ００，ＲＦ０１，ＲＦ０２が格納される。ＴＢＬ１３は予備領域である。
【００３７】
図３−Ｂには、出力予定定義フレームＲＦ０１のフレーム構造図を例示する。この出力予定定義フレームＲＦ０１は、ＰＬＣ１０（局番＝００）上において実行されるラダーダイアグラム中の出力コイルを模擬する各出力変数（００Ｌ００〜００Ｌ１Ｆ）の、ＰＬＣ１１（局番＝０１）に対する出力予定の有無をその各出力変数毎にそれぞれ定義したものであり、合計３２ビットある該ビット列の各出力予定定義ビットＲｂ００〜Ｒｂ１Ｆが、その出力予定の有無を示している。即ち、この各出力予定定義ビットＲｂ００〜Ｒｂ１Ｆが、本発明の出力予定定義情報に相当している。
【００３８】
したがって、例えば、出力予定定義フレームＲＦ０１を構成するその先頭ビットの値、即ち出力予定定義ビットＲｂ００の値が１であった場合には、出力変数００Ｌ００は、ＰＬＣ１０（局番＝００）からＰＬＣ１１（局番＝０１）に対して出力（送信）される予定がある。勿論、この予定の有無は、ＰＬＣ１０（局番＝００）が有するＣＰＵモジュール２０が実行するラダーダイアグラム（シーケンスプログラム）の内容に依存する。以下、同様に、出力予定定義フレームＲＦｍｎ（ｍ＝０，１，２；ｎ＝０，１，２）を定義すると、その出力予定定義フレームＲＦｍｎを構成するビット列は、局番ｍから出力される各出力変数（０ｍＬ００〜０ｍＬ１Ｆ）の、局番ｎに対する出力予定の有無を各対応ビット毎に示す。
したがって、ｎ＝ｍの時、その出力予定定義フレームＲＦｍｎを構成する各出力予定定義ビットの各値は何れも０となる。
【００３９】
図４に、本実施例１における出力予定定義画面ＷＤ００（定義情報入力手段）の表示形態を例示する。この画面は、ＰＬＣ１０に接続されたパソコン５０の表示装置５５に表示されるもので、局番を指定するための前段の操作画面の操作後に、その次段の操作画面として出力される。即ち、表示フィールドｗ５に表示されている局番（ＰＬＣ＃＝００）は、このパソコン５０が接続されているＰＬＣの局番と一致している。
また、この出力予定定義画面ＷＤ００の表示フィールドｗ１には各出力変数の番地（ビットアドレス）が表示されており、表示フィールドｗ２にはそれらの出力変数の送出先の各ＰＬＣの局番が表示されている。
【００４０】
そして、この画面の中央には、（ｊ列：該ＰＬＣ分散制御システム１を構成するＰＬＣ台数）×（ｋ行：各ＰＬＣ上に定義可能な出力変数の個数の最大値）個のチェックボックス（ｗ３，ｗ３′，ｗ３″）が、マトリックス状に配列されている。チェックマーク（レ印）が指定されていないチェックボックスｗ３に対応するビットの値は０と定義される。例えば、出力変数の番地が００Ｌ１Ｅで、その送信先のＰＬＣ局番が２である本出力予定定義画面ＷＤ００上のチェックボックスに対応する対応ビットは、第１の記憶手段ＴＢＬ１上に格納される出力予定定義フレームＲＦ０２中の出力予定定義ビットＲｂ１Ｅであるので、この出力予定定義ビットＲｂ１Ｅの値は０（：出力予定無し）と定義される。
【００４１】
同様にして、チェックマーク（レ印）が指定されているチェックボックスｗ３′に対応するビットの値は１と定義される。例えば、出力変数の番地（ビットアドレス）が００Ｌ０４で、その送信先のＰＬＣ局番が１である本出力予定定義画面ＷＤ００上のチェックボックスに対応する対応ビットは、第１の記憶手段ＴＢＬ１上に格納される出力予定定義フレームＲＦ０１中の出力予定定義ビットＲｂ０４であるので、この出力予定定義ビットＲｂ０４の値は１（：出力予定有り）と定義される。
また、自ＰＬＣが出力する出力変数（リンクリレーを表すＬ型変数）の自ＰＬＣ自身に対する送出は一切行われないので、一番左側の列にある各チェックボックスｗ３″に対する指定（レ印の入力操作）はできない。
以上の各チェックボックスに対する指定が完了した時点でＯＫボタンｗ４をクリックすると、その操作を契機（トリガー）として、上記の出力予定定義画面ＷＤ００に対するユーザの操作にしたがって正しく定義された各出力予定定義フレームが、まとめてパソコン５０よりＰＬＣ１０に転送されて、図３−Ａの第１の記憶手段ＴＢＬ１上にそれぞれ格納される。
【００４２】
以下、これらの出力予定定義フレームと照合されるべき、本発明の参照予定定義フレームのフレーム構造とその生成方式について説明する。
図５−Ａは、本実施例１における第２の記憶手段ＴＢＬ２のテーブル構造図である。この第２の記憶手段ＴＢＬ２は、各ＰＬＣ毎に設けられる手段であり、ＴＢＬ２０〜ＴＢＬ２３の連続した４つのフレーム格納領域から構成されている。各格納領域は何れも４バイト領域からなる。そして、これらの各フレーム格納領域ＴＢＬ２０〜ＴＢＬ２３には、例えば、局番が００であるＰＬＣ（即ちＰＬＣ１０）上においては、それぞれ４バイトデータである参照予定定義フレームＳＦ００，ＳＦ０１，ＳＦ０２が格納される。ＴＢＬ２３は予備領域である。
【００４３】
図５−Ｂには、参照予定定義フレームＳＦ０１のフレーム構造図を例示する。この参照予定定義フレームＳＦ０１は、ＰＬＣ１１（局番＝０１）上において実行されるラダーダイアグラム中の出力コイルを模擬する各出力変数（０１Ｌ００〜０１Ｌ１Ｆ）に対する、ＰＬＣ１０（局番＝００）上における参照予定の有無を各出力変数毎にそれぞれ定義したものであり、合計３２ビットある該ビット列の各参照予定定義ビットＳｂ００〜Ｓｂ１Ｆが、その参照予定の有無を示している。即ち、この各参照予定定義ビットＳｂ００〜Ｓｂ１Ｆが、本発明の参照予定定義情報に相当している。
【００４４】
したがって、例えば、参照予定定義フレームＳＦ０１を構成するその先頭ビットの値、即ち参照予定定義ビットＳｂ００の値が１であった場合には、出力変数０１Ｌ００は、ＰＬＣ１０（局番＝００）上において参照（受信）される予定がある。勿論、この予定の有無は、ＰＬＣ１０（局番＝００）が有するＣＰＵモジュール２０が実行するラダーダイアグラム（シーケンスプログラム）の内容に依存する。以下、同様に、参照予定定義フレームＳＦｍｎ（ｍ＝０，１，２；ｎ＝０，１，２）を定義すると、その参照予定定義フレームＳＦｍｎを構成するビット列は、局番ｎから出力される各出力変数（０ｎＬ００〜０ｎＬ１Ｆ）の、局番ｍにおける参照予定の有無を各対応ビット毎に示す。
【００４５】
以下、図６を用いて、参照変数テーブル生成プログラムＰＧａの動作について説明する。例えば、局番「００」のＰＬＣ上にて実行される本図中のラダーダイアグラム等の各個々のソースコード上においては、出力変数（リンクリレーを表すＬ型変数）のアドレスを論理的な形式のアドレスで、即ち「ｙ1 ｙ2 Ｌｚ1 ｚ2 」なる形式の論理アドレスで表す。ただし、ここで、ｙ1 ｙ2 はそのＰＬＣの局番で、ｚ1 ｚ2 が出力変数定義領域上におけるビットアドレスを示している。
【００４６】
そして、これらのソースコードをこの参照変数テーブル生成プログラムＰＧａに入力すると、参照変数テーブルＴＢａが生成されて出力される。この参照変数テーブルＴＢａは、上記の様なソースコード中において論理的に定義（模擬）された入力接点において参照される出力変数を列挙して登録したものであり、２バイト情報を連続的に並べた、該２バイト情報の集合体から構成されている。即ち、その各２バイト情報の下位バイトは、図６のラダーダイアグラムとの対応からも分かる様に、その入力接点にて参照される出力変数を出力するＰＬＣの局番を表している。また、上位バイトは、その出力変数のビットアドレスを示している。
【００４７】
この様な参照変数テーブル生成プログラムＰＧａは、コンパイラのオプションまたは拡張機能などとして用意してもよいし、単独のツールとして用意してもよい。パソコン５０よりこの参照変数テーブルＴＢａをＰＬＣ１０のＣＰＵモジュール２０上へ転送して、該データをＣＰＵモジュール２０上で変換処理することによって、例えば、局番が００であるＰＬＣ（即ちＰＬＣ１０）上においては、各参照予定定義フレームＳＦ００，ＳＦ０１，ＳＦ０２が生成されて、上記の第２の記憶手段に格納される。他のＰＬＣについても勿論同様にして、第２の記憶手段上に各参照予定定義フレームが生成される。
【００４８】
本実施例１の安全通信に係わる初期処理（イニシャル動作）について、以下、図７、図８を用いて説明する。図７は、当該ＰＬＣ分散制御システム１全体のイニシャル動作を示すフローチャートである。
この制御処理手順では、まずステップＳ１において、上記の様な定義フレーム生成処理を各ＰＬＣ毎に実行することにより、各ＰＬＣ上における第１の記憶手段及び第２の記憶手段に、それぞれ各出力予定定義フレーム及び各参照予定定義フレームを生成する。
図８に、そのステップＳ１の動作を図示する。メモリ２４を有する図１の各ＣＰＵモジュール２０は、実際には図８に示す様に、Ａ系統とＢ系統の２系統の処理系に並列２重化されており、各ＰＬＣ上における上記の第１の記憶手段及び第２の記憶手段は、勿論、各ＣＰＵ２０上のＡ系統とＢ系統の各マイクロプロセッサ（ＭＰ−Ａ，ＭＰ−Ｂ）の上に、２重化されて生成される。
したがって、以下に示す安全通信に係わるイニシャル動作についても、勿論、それぞれＡ系統とＢ系統の各処理系で互いに並列に実行されるが、以下ではその１系統の処理についてのみ、図８のフローチャートに沿って説明する。
【００４９】
次のステップＳ２は、局番００にて実行すべき処理を示しており、ここでは、出力予定定義フレームＲＦ０１を局番０１のＰＬＣに、出力予定定義フレームＲＦ０２を局番０２のＰＬＣにそれぞれ送出する。
この時送出されるパケットのデータ構造（フレーム構成）を図９に例示する。このパケットは、上記の出力予定定義フレームＲＦ０１（４バイト）を情報部Ｉの一部として送受信するためのものであり、一般的なパケット交換プロトコルに準拠している。ここでは、特に、送信先アドレス（ＰＬＣ局番ＤＡ）や送信元アドレス（ＰＬＣ局番ＳＡ）が各パケット毎に付与される点に特徴がある。
【００５０】
そして、送信元の局番を送信データに付与するこの様な手段が、本発明における局番付与手段に相当する。
なお、フレーム・タイプＦＴ（２バイト）には、情報部Ｉを構成しているデータの種別コード（例：コマンドタイプなど）や、当該フレームのデータ構造等に係わる制御ビットなどが含まれる。また、情報部Ｉには、通信の同期制御や異常連絡などに可用な制御情報などを含めることができる。
【００５１】
図８のリングバス１４は、バックアップ用の光ファイバケーブルと通常通信時の光ファイバケーブルとに２重化されており、ここでの通常通信時の安全通信に係わる２重化は、パケットレベルにて多重並列化される。即ち、各通信制御モジュール３０を構成する各マイクロプロセッサ（ＭＰ−Ａ，ＭＰ−Ｂ）のアドレスは、それぞれ互いに異なり、Ａ系統の通信処理とＢ系統の通信処理とが、常時１ペアの組を構成しつつ実行される。この時、例えば先にＭＰ−Ａがデータａを送信すると、次にＭＰ−Ｂがそのデータａの各ビットをそれぞれ反転したデータｂを送信する。（ただし、テストビット（ＴＥＳＴ）は反転させない。）
【００５２】
次のステップＳ３は、その後局番０１及び局番０２の各ＰＬＣのＣＰＵモジュール２０にて実行すべき処理を示している。即ち、局番０１のＰＬＣのＣＰＵモジュール２０では、局番００から自局宛に送信された出力予定定義フレームＲＦ０１の内容を、自ＰＬＣの第２の記憶手段上に格納されている参照予定定義フレームＳＦ０１の内容と各ビット対応に照合する。また、局番０２のＰＬＣのＣＰＵモジュール２０では、局番００から自局宛に送信された出力予定定義フレームＲＦ０２の内容を、自ＰＬＣの第２の記憶手段上に格納されている参照予定定義フレームＳＦ０２の内容と各ビット対応に照合する。
【００５３】
次のステップＳ４では、上記の両照合処理において、不一致ビットが存在していたか否かを判定して、１つでも不一致ビットが存在していた場合にはステップＳ１２へ、そうでなければステップＳ５へ処理を移す。
【００５４】
ステップＳ５〜ステップＳ７の各ステップは、上記の各ＰＬＣの役割をサイクリックにずらして相互に置き替えることによって、上記のステップＳ２〜ステップＳ４の各ステップと同様の処理を、互いに立場を替えて実行するものであり、その照合の結果、不一致ビットが存在しない場合には、次のステップＳ８へ処理を移す。即ち、これらの照合処理は、ＰＬＣ分散制御システム１内において、回転対称的にＰＬＣ台数分繰り返してそれぞれ実行する。
【００５５】
したがって、例えば、ステップＳ８〜ステップＳ１０の各ステップは、上記の各ＰＬＣの役割をサイクリックにずらして相互に置き替えることによって、上記のステップＳ５〜ステップＳ７の各ステップと同様に、それらの各処理を、互いに立場を替えて実行するものであり、その照合の結果、不一致ビットが存在しない場合には、次のステップＳ１１へ処理を移す。
【００５６】
ステップＳ１１では、通常通信を開始するための処理、即ち開始指令の出力処理を行う。他方、ステップＳ１２では、通常通信を禁止するための処理、即ち禁止指令の出力処理を行う。
【００５７】
以上の様な構成に従えば、上記の出力予定定義フレームＲＦｎｍは各ＰＬＣ間の各通信回線においてそれぞれ双方向にて送受信され、上記の照合処理は各ＰＬＣにおいてそれぞれ実施されるので、これによって、各ＰＬＣ間におけるＡ系統及びＢ系統の各パケット回線の状態を全回線にわたって双方向に自動的にそれぞれテストすることができる。また、これによって、各相手局の送受信状態がそれぞれ正常であるか否かについても同時にテストされる。
更に、上記の照合処理では、各ＰＬＣ間における個々の出力変数について、各対応フレーム毎に入力条件と出力条件とが一致すること（出力予定定義フレームＲＦｎｍ＝参照予定定義フレームＳＦｎｍ）がチェックされる。このため、各ＰＬＣ間で入出力すべき各出力変数の送受信が、それぞれ正しく実行される状態にあるか否かを、送受信されるべき各出力変数について、全て漏れなく自動的に判定することができる。
したがって、通常通信時には、出力側と参照側との参照関係の定義の不整合によって、シーケンスプログラムに誤動作が生じる恐れがなくなる。
【００５８】
図１０−Ａに、上記の出力予定定義フレームＲＦｍｎの通常通信時の利用形態を例示する。本図１０−Ａの送信処理は、ブロードキャスト型の通信を実現するためのものであり、各ＰＬＣからその出力変数を送出する通常通信実行時に毎回行われるものである。ただし、ここで、図中の出力変数フレームＯＵＴｍは、局番ｍのＰＣＬ上で定義された出力変数０ｍＬ００〜０ｍＬ１Ｆに関するその出力時の（即ち、演算結果としての）３２ビットから成る４バイトデータを表している。
また、定数ＲＦｍ（例：ＲＦ０＝ＯＲ（ＲＦ０１，ＲＦ０２））は、局番ｍのＰＣＬのＣＰＵモジュール２０上の第１の記憶手段に登録されている全てのエントリー（即ち、各出力変数定義フレームＲＦｍｉ（ｉ＝０〜全ＰＬＣ台数−１））に関する、各対応ビット毎の累計的な全論理和の結果ビットから成る４バイトデータである。
【００５９】
そして、この送信処理では、まず最初に、ステップＳ２１において、４バイトの作業領域Ａ１に、出力変数フレームＯＵＴｍと上記定数ＲＦｍとの各対応ビット毎の論理積演算（ＡＮＤ演算）の演算結果を格納する。次にステップＳ２２では、その演算結果（Ａ１）と出力変数フレームＯＵＴｍの値とを比較し、両者の各ビット値が全て一致していればステップＳ２４へ、そうでなければステップＳ２５に処理を移す。
そして、次のステップＳ２４では、出力変数フレームＯＵＴｍを、図９の情報部Ｉ内の所定の領域にセットし、その宛て先として全ＰＬＣを指定すること（全局指定）によって、その送信パケットを他の各ＰＬＣに送信する。一方、ステップＳ２５では、当該ＰＬＣ分散制御システム１を所定の非常停止処理プログラムに従って安全に停止させる。
【００６０】
以上の様な送信処理を行えば、ステップＳ２１，Ｓ２２，Ｓ２５の作用によって、送信側のＰＬＣのＣＰＵモジュール２０を制御するシーケンスプログラム中に、例えば本来は更新されないはずの出力変数を余計にＯＮ設定してしまう様なプログラム不良が万一不本意ながら存在していた場合にも、システムを安全に停止させることができる。
或いは、以上の様な送信処理を行えば、受信側のＰＬＣのＣＰＵモジュール２０を制御するシーケンスプログラムとして、本来とは何ら関係のない別のプログラムが誤ってダウンロードされていて、かつ、この誤操作に対して更に丁度迎合する様な誤った出力予定定義の設定操作が、図４の出力予定定義画面から行われていた場合にも、システムを安全に停止させることができる。
【００６１】
他方、受信側の各ＰＬＣにおける参照予定定義フレームの他の利用形態を図１０−Ｂに例示する。各ＰＬＣの受信処理においては、まず最初にステップＳ３０において、自局（局番ｎ）宛てのパケットをリングバス１４から受け取る。勿論、宛て先が全局指定のパケットも自局宛てのパケットである。
次に、ステップＳ３２では、そのパケットの情報部Ｉ（図９）内にある送信元（局番ｍ；ｍ≠ｎ）の出力変数フレームＯＵＴｍ（：３２ビット情報）を取り出す。次に、ステップＳ３４では、「ＯＵＴｍｎ＝ＡＮＤ（ＯＵＴｍ，ＳＦｍｎ）」なる論理積演算処理、即ち出力変数フレームＯＵＴｍに対する自局（：受信局）向けのマスキング処理を行い、自局が参照すべき出力変数だけを選別する。そして、自局にて参照すべき参照ビット（各出力変数）だけが選別された出力変数フレームＯＵＴｍｎを、ステップＳ３６にて、自局の各入力接点（即ち参照処理プログラム）が参照可能な所定の領域上にコピーする。
【００６２】
例えば、以上の様な送受信処理を行えば、通常通信時に送信側のＰＬＣでは、上記の「全局指定」によって、自局の出力変数フレームＯＵＴｍを１回だけネットワーク回線（リングバス１４）へ送出するだけで、その回の出力変数に関する必要な送信処理を完了することができる。即ち、所望のブロードキャスト型の通信により、高効率な送信処理を実施することができる。また、この様な安全通信方式に従えば、出力変数に関する送信側と受信側との間の参照関係の不整合が生じないので、シーケンスプログラムを誤動作なく安全に実行させることができる。
【００６３】
なお、上記のステップＳ３４の代わりに、上記のステップＳ２４の前段にステップＳ３４と同等の処理、即ち、「ＯＵＴｍｎ＝ＡＮＤ（ＯＵＴｍ，ＲＦｍｎ）」なる処理を設け、かつ、上記のステップＳ２４において、各送信先局番のアドレス指定、即ち受信側局番ｎの指定をそれぞれ行う様にすれば、これによって、上記のブロードキャスト型の通信の代わりにマルチキャスト型の通信を実現することもできる。即ち、本実施例１の照合処理方式に従えば、マルチキャスト型の安全通信を実施する際にも、出力変数に関する送信側と受信側との間の参照関係の不整合を未然に排除しつつ、シーケンスプログラムを正確に動作させることができる。
【実施例２】
【００６４】
図１１に、本実施例２のダイアグラム編集表示手段２００の構造と動作を示す。このダイアグラム編集表示手段２００は、オブジェクトコードＤ０に基づいてその動作を表すラダーダイアグラムＤ２を編集し、その編集結果を目視可能な所定の出力媒体（画面または紙面）上に表示するためのものであり、ダイアグラム編集プログラム２１０と局番入力手段２２０とダイアグラム表示手段２３０とを有している。例えば、局番入力手段２２０は、先の実施例１の図１のキーボード５４などから構成することができ、これが本発明の局番取得手段に相当する。即ち、例えば図１のパソコン５０、５１、５２などを各ＰＬＣ毎に接続することによって、そのパソコン上に当該ダイアグラム編集表示手段２００を生成することができる。また、ダイアグラム表示手段２３０には、同図１の表示装置５５などを用いてもよいし、その代わりにプリンターなどを用いてもよい。
【００６５】
図１１の中央のラダーダイアグラムＤ１は、ダイアグラム編集プログラム２１０のラダーダイアグラム編集処理における中間結果を示している。このラダーダイアグラムＤ１中の入力接点及び出力変数の各実アドレス（Ｌ０ｘ1 ｘ2 ，Ｌ０００）には、オブジェクトコードＤ０上における値がそのまま示されている。この様な中間結果（ラダーダイアグラムＤ１）は、従来技術に基づいて編集することが可能であるが、このダイアグラム編集表示手段２００には、更に、ラダーダイアグラムが実行される各ＰＬＣの局番を入力するための局番入力手段２２０と、その入力された局番に基づいて、各出力変数の実アドレスを局番が含まれた論理的なアドレスコードに書き直す表示アドレスコード編集手段２１１とが具備されている。このため、例えば、出力変数Ｌ０００などのアドレス表示コードは、以下の様にして編集されてから、ダイアグラム表示手段２３０が出力するラダーダイアグラムＤ２中に表示される。
【００６６】
本実施例２が適用されるＰＬＣ分散制御システムにおいては、出力変数（リンクリレーを表すＬ型変数）を各ＰＬＣ毎にそれぞれ最大３２変数まで定義することができ、かつ、出力変数を含んだ送信データに各ＰＬＣが各自のＰＬＣの局番を付与して他の各ＰＬＣに送信する送信手段（図１の通信制御モジュール３０）を有しているため、何れのＰＬＣにおいてもその出力変数の当該ＰＬＣ上における実アドレスａｄは、個々のオブジェクトコードＤ０上において、同じ範囲内の実アドレス（Ｌ０００≦ａｄ≦Ｌ０１Ｆ）として展開される。即ち、各ＰＬＣのＣＰＵモジュール２０上においては、それぞれ互いに、出力変数の格納領域が全く重なっている。これは、送信データに付与された局番に基づいて、各ＰＬＣのＣＰＵモジュール２０上においては、受信されたそれらの出力変数が、どのＰＬＣからの出力変数であるのかを容易に区別することができるためである。
【００６７】
このため、表示アドレスコード編集手段２１１は、この範囲内（Ｌ０００〜Ｌ０１Ｆ）にその実アドレスａｄを有する変数（即ち、上記の出力変数）に対してのみ作用する。
より具体的には、ダイアグラム編集プログラム２１０の実行中に、即ちダイアグラム編集表示手段２００においてラダーダイアグラムＤ１を編集している途中で、実アドレスが上記の範囲内にある出力変数（リンクリレーを表すＬ型変数）が検出された時点で、所定の編集サブルーチン（即ち、表示アドレスコード編集手段２１１）を毎回呼び出すことによって、所望のアドレスコードの変更処理（Ｌ０ｘ1 ｘ2 →ｎｎＬｘ1 ｘ2 ）を当該ＰＬＣ上における各出力変数に対してそれぞれ実施することができる。ただし、ここでｎｎは入力された局番で、図１１では、局番入力手段２２０から入力される局番’０１’に相当する。
【００６８】
他方、論理的に定義（模擬）された入力接点で参照される各出力変数のアドレスに関する「Ｌ０ｘ1 ｘ2 →ｙ1 ｙ2 Ｌｚ1 ｚ2 」なる編集処理、即ち、「ｘ1 ｘ2 →（ｙ1 ｙ2 ，ｚ1 ｚ2 ）」なるコード変換処理は、オブジェクトコードＤ０を生成する際に用いられた所定のコンパイル規則に従って、その逆変換を行うことによって実行することができ、これによって、ユーザが認識するべき管理用の論理アドレスコードと、オブジェクトコードＤ０上における各入力接点の実アドレスとが、それぞれ正しく対応する。
【００６９】
（本実施例２の効果１）
既存プログラム（オブジェクトコードＤ０）に何ら修正を加えることなく、このプログラムの複製（コピープログラム）を複数台のＰＬＣ間で、同時に使用することができ、これによって、既存プログラムの流用率、即ちオブジェクトプログラムの生産性が効果的に向上する。この様な、既存プログラムの流用は、例えば図２の局番「０２」にて実行されるラダープログラム（オブジェクトプログラム）をそのまま同図２の局番「０１」に適用しようとする際などに有効となる。また、同図２の局番「０１」や局番「０２」と同様のスレーブＰＬＣが多数並列に配備されるＰＬＣ分散制御システムにおいては、更に同様の作用・効果を多数回にわたって同様に受託することができる。
【００７０】
（本実施例２の効果２）
局番入力手段２２０（局番取得手段）からの入力情報（局番）に基づいて、オブジェクトコードＤ０上では区別がつかない同一形式の出力変数（Ｌ０００〜Ｌ０１Ｆ）に対して、そのアドレスの先頭に局番（ステーション・アドレス）を付与することができる。したがって、ラダーダイアグラムＤ２上においては、各ＰＬＣの出力変数を区別して正確に識別することができ、その識別も容易となる。
【００７１】
（本実施例２の効果３）
ラダーダイアグラムＤ２上におけるＰＬＣ＃０１の出力変数のアドレス表示において、該ＰＬＣの局番「０１」を含む形式の論理的なアドレスコード、即ち、図６のところでも言及したコーディング形式の論理アドレス（０１Ｌ００，ｙ1 ｙ2 Ｌｚ1 ｚ2 ）が用いられ、これによって、ラダーダイアグラムＤ２上に表示される出力変数のアドレス表記に対するＳＥやシステム運用管理者などの視覚的な認識性が向上するため、当該分散制御システムの運用管理が容易となる。
【００７２】
（実施例１、２の相乗効果）
したがって、このダイアグラム編集表示手段２００を実施例１のＰＬＣ分散制御システム１に適用すれば、以上の各実施例に示したそれぞれの作用・効果に係わる更なる相乗効果に基づいて、通信回線のテストなどに係わる運用効率を効果的に向上させることができると共に、信頼性の高い安全通信を実現することができ、更には、既存プログラムの再利用性を効果的に向上させると同時に、該ＰＬＣ分散制御システムを構成する各ＰＬＣが出力する個々の出力変数の識別を、該システムのＳＥや運用管理者に対して容易にすることができる。
【００７３】
〔その他の変形例〕
本発明の実施形態は、上記の形態に限定されるものではなく、その他にも以下に例示される様な変形を行っても良い。この様な変形や応用によっても、本発明の作用に基づいて本発明の効果を得ることができる。
（変形例１）
例えば、上記の実施例１では、安全通信のイニシャル動作処理において、対応関係にある各予定定義フレームを照合するために、出力予定定義フレームの方を相手方のＰＬＣに送信しているが、逆に、参照予定定義フレームの方を相手方の各ＰＬＣに送信して、同様の照合処理を行ってもよい。この様な送受信を行っても、同様の作用・効果を得ることができる。
【００７４】
（変形例２）
また、本発明のＰＬＣ分散制御システムを構成するために相互に接続するＰＬＣの台数は任意でよく、また、各ＰＬＣを構成するために接続するＩ／Ｏモジュールの接続台数も任意でよい。ＰＬＣ分散制御システムの通信ネットワークについては、リングバスの代わりに線形バスを用いてそれを構成してもよい。
【００７５】
（変形例３）
また、上記の実施例１においては、２重化されたリングバス１４の片方の通信配線を異常時のバックアップ用とし、平常時には用いない構成としたが、ネットワーク回線の２重化については、パケット通信に基づく論理的な通信回線レベルでの２重化形態に必ずしも限定する必要はなく、物理的な通信配線レベルで通信の２重化を図ってもよい。
【００７６】
（変形例４）
また、実施例２の図１１のラダーダイアグラムＤ２におけるダイヤグラムの表現形態については、テキスト形式の表示方式を採用してもよい。
また、実施例１の図４の出力予定定義形態についても、チェックボックス・マトリックスなどによるＧＵＩを用いる代わりに、テキスト形式の入力方式を採用してもよい。
【００７７】
（変形例５）
また、実施例２の図１１の局番入力手段２２０は、ユーザーに局番を入力させるための手段であったが、本発明の局番取得手段を構成するに当たっては、診断命令や問い合わせコマンドなどを用いて、自動的に局番が取得される様にしてもよい。
【産業上の利用可能性】
【００７８】
本発明は、安全ＰＬＣを用いたＰＬＣ分散制御システムを構成する際に、非常に有用なものであるが、本発明のＰＬＣ分散制御システムを構成する各ＰＬＣは、必ずしも安全ＰＬＣである必要はない。即ち、ラダー回路を模擬するシーケンスプログラムを有する任意のＰＬＣを用いて、本発明のＰＬＣ分散制御システムを構成することができる。
【図面の簡単な説明】
【００７９】
【図１】実施例１のＰＬＣ分散制御システム１のシステム構成図
【図２】ＰＬＣ分散制御システム１の制御形態を例示するラダーダイアグラム
【図３−Ａ】第１の記憶手段ＴＢＬ１のテーブル構造図
【図３−Ｂ】出力予定定義フレームＲＦ０１のフレーム構造図
【図４】出力予定定義画面ＷＤ００の表示形態を例示するレイアウト図
【図５−Ａ】第２の記憶手段ＴＢＬ２のテーブル構造図
【図５−Ｂ】参照予定定義フレームＳＦ０１のフレーム構造図
【図６】参照変数テーブル生成プログラムＰＧａの動作を説明する説明図
【図７】ＰＬＣ分散制御システム１のイニシャル動作を示すフローチャート
【図８】図７のイニシャル動作のステップＳ１の動作を説明する説明図
【図９】送受信パケットのデータ構造を例示するフレーム構造図
【図１０−Ａ】出力予定定義フレームの他の利用形態を例示するフローチャート
【図１０−Ｂ】参照予定定義フレームの他の利用形態を例示するフローチャート
【図１１】ダイアグラム編集表示手段２００の構造と動作を示すプログラム構造図
【符号の説明】
【００８０】
１  ：  ＰＬＣ分散制御システム
１０  ：  マスターＰＬＣ
１４  ：  リングバス
２０  ：  ＣＰＵモジュール
３０  ：  通信制御モジュール
４０  ：  Ｉ／Ｏモジュール
５０  ：  パソコン
ＥＳＢ０：  非常停止ボタン
ＲＦ０１：  出力予定定義フレーム
ＳＦ０１：  参照予定定義フレーム
ＴＢＬ１：  第１の記憶手段
ＴＢＬ２：  第２の記憶手段
ＷＤ００：  出力予定定義画面（定義情報入力手段）
２００  ：  ダイアグラム編集表示手段
２１０  ：  ダイアグラム編集プログラム
２１１  ：  表示アドレスコード編集手段
２２０  ：  局番入力手段（局番取得手段）
【図１】
2008152532.tif 000003
【図２】
2008152532.tif 000004
【図３−Ａ】
2008152532.tif 000005
【図３−Ｂ】
2008152532.tif 000006
【図４】
2008152532.tif 000007
【図５−Ａ】
2008152532.tif 000008
【図５−Ｂ】
2008152532.tif 000009
【図６】
2008152532.tif 000010
【図７】
2008152532.tif 000011
【図８】
2008152532.tif 000012
【図９】
2008152532.tif 000013
【図１０−Ａ】
2008152532.tif 000014
【図１０−Ｂ】
2008152532.tif 000015
【図１１】
2008152532.tif 000016