(57)【要約】【課題】遠隔から工場内、家庭内、及びオフィス内の制御対象機器を監視・制御するために、汎用性、リアルタイム性、高信頼性、安全性のあるシステムを提供する。【解決手段】複数のプロセッサを備え、主として通信処理を行うプロセッサと、制御対象機器の制御を行うプロセッサとを独立させる。そして、通信処理を行うプロセッサの空き能力を利用して、制御対象機器の制御も行わせる。このとき、同じ制御を行わせることで、信頼性を高め、異なる制御を行わせることで、処理能力を高める。また、複数のプロセッサにおいて、通信処理に関し、受信処理と送信処理とを独立したプロセッサに行わせることで、安全性を高める。【選択図】　図１
2004094473.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを有し、ネットワークを介して受け付けた指示に従い制御対象機器を制御する計算機システムであって、
前記ネットワークとの通信処理を行う通信処理手段と、
前記制御対象機器の制御処理を行う制御処理手段と、
前記複数のプロセッサのうち少なくとも１つに前記制御処理手段を割り当てる処理分配手段と、
前記複数のプロセッサのうち、前記通信処理手段が予め割り当てられたプロセッサ（以後、通信プロセッサと呼ぶ）の負荷を監視する監視処理手段とを備え、
前記処理分配手段は、
前記監視処理手段での監視結果に応じて、前記制御処理手段の前記通信プロセッサへの割り当てを制御することを特徴とする計算機システム。
【請求項２】
請求項１記載の計算機システムであって、
比較検証手段をさらに備え、
前記処理分配手段は、
それぞれが前記制御処理に関して同じ処理をするように、前記制御処理手段を少なくとも２つのプロセッサへ割り当て、
前記比較検証手段は、
前記制御処理手段が割り当てられたプロセッサ各々での前記制御処理に関する処理結果を比較検証することを特徴とする計算機システム。
【請求項３】
請求項１記載の計算機システムであって、
処理結果統合手段をさらに備え、
前記処理分配手段は、
それぞれが前記制御処理に関して異なる処理をするように、前記制御処理手段を少なくとも２つのプロセッサへ割り当て、
前記処理分配手段は、
前記制御処理手段が割り当てられたプロセッサ各々での前記制御処理に関する処理結果を統合することを特徴とする計算機システム。
【請求項４】
複数のプロセッサを有し、ネットワークを介して受け付けた指示に従い制御対象機器を制御する計算機システムであって、
ネットワークよりの受信処理を行う第１の通信手段と、
ネットワークへの送信処理を行う第２の通信手段と、
前記制御対象機器の制御に必要な指示を前記第１の通信手段を介して受け付ける指示受付手段と、
前記制御対象機器の制御に必要なデータを当該制御対象機器から取得するデータ取得手段と、
前記指示受付手段と前記データ取得手段とで得た指示およびデータとを保存する第１の記憶手段と、
第１の記憶手段から指示およびデータを読み出し、当該読み出した指示およびデータを検証する検証手段と、
前記検証手段で異常が発見されなかった場合、前記読み出した指示およびデータを用いて前記制御対象機器の制御を実行する機器制御手段と
前記機器制御手段で得られた処理結果を、前記制御対象機器に出力するとともに、前記第２の通信手段を用いてネットワークに出力する処理結果出力手段とを備え、
前記第１の通信手段と前記指示受付手段と前記データ取得手段とは、前記複数のプロセッサのうちの１のプロセッサ（以後、第１のプロセッサと呼ぶ）に割り当てられ、
前記検証手段と前記機器制御手段と第２の通信手段と処理結果出力手段とは、前記複数のプロセッサのうち前記第１のプロセッサ以外のプロセッサに割り当てられることを特徴とする計算機システム。
【請求項５】
複数のプロセッサを有し、ネットワークを介して受け付けた指示に従い制御対象機器を制御する計算機システムの制御方法であって、
前記複数のプロセッサのうち、前記ネットワークとの通信処理を行うプロセッサ（以後、通信プロセッサと呼ぶ）の負荷を監視するステップと、
前記ステップでの監視結果に応じて、前記複数プロセッサのうち少なくとも１つに前記制御対象機器の制御処理を割り当てるステップとを備えることを特徴とする制御方法。
【請求項６】
複数のプロセッサを有し、ネットワークを介して受け付けた指示に従い制御対象機器を制御する計算機システムの制御方法であって、
前記複数のプロセッサのうち１のプロセッサ（以後、第１のプロセッサと呼ぶ）が、前記ネットワークを介して受け付けた指示を取得するとともに、前記制御対象機器から制御に必要なデータを取得するステップと、
前記第１のプロセッサが、前記取得した指示およびデータを検証するステップと、
前記ステップでの検証により前記取得した指示およびデータに異常が発見されなかった場合、前記複数のプロセッサのうち、前記第１のプロセッサ以外の少なくとも１のプロセッサ（以後、第２のプロセッサと呼ぶ）が、前記取得した指示およびデータに基づいて前記制御対象機器の制御を実行するステップと、
前記第２のプロセッサが、前記制御により得られた結果を前記ネットワークに向け送出するとともに、前記制御対象機器に送出するステップとを備えたことを特徴とする制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチプロセッサアーキテクチャで通信と制御を両立させる技術に関する。
【０００２】
【従来の技術】
一般に、ＦＡシステムにおいては、各種機器のシーケンス制御をＰＬＣ（プログラマブルコントローラ）を用いて行っている。最近では、インターネットやイントラネットなどのネットワークを介して、任意の場所からこのＰＬＣにアクセスし、工場内の制御機器を監視・制御する技術が紹介されている。
【０００３】
例えば、ネットワークに送出可能なデータと、ＰＬＣで処理可能なデータ間の変換を行うコントローラを介在させたり、ＰＬＣそのものにＷｅｂ接続手段と監視・制御手段とを搭載するなどの手段を用い、実現している。
【０００４】
ところが、上記のように、コントローラを介在させる場合、ＰＬＣとコントローラとを互いに接続するための手段も必要となり、システムが複雑で規模の大きなものになる。また、ＰＬＣそのものに、Ｗｅｂ接続手段を搭載した場合、システムの規模はシンプルでコンパクトになるが、ＰＬＣ内のプロセッサの処理能力を通信処理に費やす分、制御機能の低下は免れない。
【０００５】
さらに、通信に関わる処理は、割込み処理が多く、極端に負荷が高まることがあり、その際、Ｗｅｂ接続手段がダウンすることがある。ＰＬＣ内のＷｅｂ接続手段がダウンすると、その影響はシステム全体に及び、ＰＬＣが行う機器の自動制御のように処理の継続性が求められるシステムにとっては問題である。
【０００６】
通信に関する処理によるシステムダウンを防止するための対策として、システム自体の処理能力を上げることが考えられる。その一手法として、例えば、デュアルプロセッサシステムをはじめとするマルチプロセッサシステムを採用するなどが考えられる。即ち、一方のプロセッサにおいて、専ら通信の処理を行わせ、他方でその他の処理を行わせるといったものである。
【０００７】
【発明が解決しようとする課題】
ところが、従来のマルチプロセッサシステムでは、ＰＬＣ特有の制御対象機器の制御処理と通信とを両立させるために生じる様々な問題は考慮されていない。
【０００８】
例えば、各プロセッサの負荷のバランスの悪さが考慮されていない。ＰＬＣで行われる機器のシーケンス制御処理は、予め定められた手順に従って、自動的に機器の制御動作を進めていく制御である。このような制御処理は、プロセッサへの負荷の大きさの予想外の変動は少ないが、処理の速さ、高い信頼性が求められる。一方、通信に関する処理は、割込みが多く、プロセッサへの一時的な負荷は高い。
【０００９】
このように、ＰＬＣにおいては、通信に係わる処理と、機器制御に係わる処理とは、負荷の大きさも性質も異なる。このため、プロセッサの能力を有効に活用するためには、これらの処理のバランスを考慮する必要がある。
【００１０】
また、近年ネットワークを介して他人のシステムに不正に侵入する行為や、コンピューターウィルスによるシステムの破壊行為が日常化している。通信機能を備えると、外部とのデータのやり取りが発生し、このような行為の影響を受ける可能性も高まる。しかしながら、従来技術では、この様なネット犯罪から制御対象機器を防衛するための考慮は十分ではない。
【００１１】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、本発明の目的は、ネットワークを介して任意の場所からＰＬＣにより機器を制御するにあたって、簡易な構成で通信と制御とを両立させることにある。また、本発明の目的の一つは、ＰＬＣに備えられたプロセッサの負荷をバランスよく分散させることにあり、また、別の目的の一つは、ＰＬＣにより機器を制御するにあたって、安全性を高めることにある。
【００１２】
【課題を解決するための手段】
本発明は、マルチプロセッサアーキテクチャで通信と制御を両立させたものである。
【００１３】
具体的には、複数のプロセッサを有し、ネットワークを介して受け付けた指示に従い制御対象機器を制御する計算機システムであって、
前記ネットワークとの通信処理を行う通信処理手段と、
前記制御対象機器の制御処理を行う制御処理手段と、
前記複数のプロセッサのうち少なくとも１つに前記制御処理手段を割り当てる処理分配手段と、
前記複数のプロセッサのうち、前記通信処理手段が予め割り当てられたプロセッサ（以後、通信プロセッサと呼ぶ）の負荷を監視する監視処理手段とを備え、
前記処理分配手段は、
前記監視処理手段での監視結果に応じて、前記制御処理手段の前記通信プロセッサへの割り当てを制御することを特徴とする計算機システムを提供する。
【００１４】
【発明の実施の形態】
以下、デュアルプロセッサアーキテクチャで、機器の制御と通信とを両立させた、本発明を適用したＰＬＣの第１の実施形態を、図面を参照しながら説明する。
【００１５】
図１は、本発明を適用したＰＬＣを用いたネットワークシステムの基本構成を説明するためのブロック図である。
【００１６】
本図において、ＰＬＣ１００は、制御対象機器２００とダイレクトに接続する。また、ＰＬＣ１００は、インターネットやイントラネットなどのネットワーク３００を介して、制御対象機器２００の監視および制御を行う操作機器４００と接続し、制御対象機器２００の状態を示す情報や制御に関する情報のやりとりができるようになっている。
【００１７】
操作者は、操作機器４００からＰＬＣ１００に制御に関する指示を与えたり、操作機器４００に表示される制御対象機器２００の状態の情報を見ることで、制御対象機器２００を監視することができる。
ここで、以下に説明する各実施形態では、ＰＬＣ１００と操作機器４００との情報のやり取りは、Ｗｅｂページを介して行うものを例として説明する。従って、ネットワーク３００としてＩＰ通信が可能なインターネットを例にとり説明するが、接続するネットワークは、これに限られない。
また、制御対象機器２００としては、工場内設備、公共設備、ビル内設備、オフィス内設備、家電製品などが考えられる。
そして、操作機器４００は、Ｗｅｂブラウザ機能を備え、ネットワーク３００を介して本発明のＰＬＣ１００にアクセスし、制御対象機器２００を操作機器４００から監視または制御するものである。操作機器４００として、例えば、ＰＣ（パーソナルコンピュータ）、携帯電話、ＰＨＳ、ＰＤＡ（情報形態端末）など、ネットワーク３００に接続可能であり、かつ、ＨＴＭＬ形式またはＸＭＬ形式によるデータの入出力機能を備えた機器などが考えられる。
以下、図１を用いてＰＬＣ１００の機能構成について説明する。本実施形態のＰＬＣ１００は、一方のプロセッサで機器制御を行い、他方のプロセッサで、通信処理を行うとともに、その空き能力を利用し、機器の制御を行うものである。
【００１８】
本図において、ＰＬＣ１００は、制御処理部１１０と、通信兼制御処理部１２０と、データ同期部１３０と、割込処理部１４０と、入出力インタフェース部１５０と、ネットワークインタフェース部１６０とを備える。
【００１９】
本実施形態においては、通信兼制御処理部１２０の通信処理の空き能力を利用し、制御処理部１１０で行う制御対象機器２００の制御処理と同じ処理を行わせ、処理の信頼性を高めるものである。
機器制御に用いる制御対象機器２００から取得する入力は、同じセンサから取得したものであってもいいし、異なるセンサから取得したものであってもよい。
入出力インタフェース部１５０は、ＰＬＣ１００と制御対象機器２００とが接続するためのインタフェースであり、制御機器２００が付属のセンサで受け付けた情報を受信し、制御処理部１１０および通信兼制御処理部１２０にて得られた処理結果を、制御対象機器２００に向けて出力するものである。
ネットワークインタフェース１６０は、ＰＬＣ１００とネットワーク３００とを接続するためのインタフェースである。
【００２０】
制御処理部１１０は、機器制御部１１１と、処理分配部１１２と、機器制御部１１１の処理結果を格納する記憶部１１３とを備える。
【００２１】
機器制御部１１１は、制御処理部１１０専用のプロセッサにより処理される専用のＯＳ上で実行される制御アプリケーションにより、予め定められたシーケンスに従って、制御対象機器２００を制御するものである。
【００２２】
処理分配部１１２は、比較検証部１１６を備え、後述する負荷監視部１２４からの情報を基に、機器制御部１１１と、後述する通信兼制御処理部１２０内の機器制御部１２２とに、制御対象機器２００を制御する処理を振り分け、また、記憶部１１３および１２３に格納された各々の処理結果から、最終処理結果を得るものである。
【００２３】
本実施形態においては、処理分配部１１２は、機器制御部１１１と機器制御部１２２に同じ処理を行うよう指示する。
【００２４】
比較検証部１１６は、データ同期部１３０の指示するタイミングで、各々機器制御部１１１と機器制御部１２２とが処理した結果を比較し、その結果に応じて後述する処理を行う。
【００２５】
通信兼制御処理部１２０は、サーバ部１２１と、機器制御部１２２と、機器制御部１２２の処理結果を格納する記憶部１２３と、負荷監視部１２４とを備え、通信兼制御処理部専用のプロセッサにより処理を行う。
【００２６】
機器制御部１２２は、基本的に機器制御部１１１と同様の機能を有するものである。
【００２７】
サーバ部１２１は、ネットワーク３００を介しての外部の機器との通信処理を行うもので、Ｗｅｂサーバ機能を備え、ネットワークインタフェース部１６０を介してネットワーク３００に接続された操作機器４００とＨＴＭＬ形式、または、ＸＭＬ形式のＷｅｂページによりデータの送受信を行うものである。
【００２８】
サーバ部１２１は、処理分配部１１２から得た最終処理結果をＨＴＭＬ形式、または、ＸＭＬ形式に変換し、これらのインタフェースで構成されるＷｅｂページをネットワーク３００に公開する。
【００２９】
これらのＷｅｂページを介して、サーバ部１２１は、ＰＬＣ１００の処理結果を操作機器４００に提示する。操作機器４００のユーザは、操作機器４００のブラウザを介してサーバ部１２１が公開した情報を取得、閲覧できる。なお、処理結果の提示は、定期的に、または、操作機器４００からの指示に従って行う。
【００３０】
例えば、機器制御部１１１および１２２において行われる機器制御処理が、制御対象機器２００のセンサから得た情報から、現在の位置、速度、進行方向などの制御対象機器２００の現在の状態を算出するものである場合、この情報を閲覧することにより、制御対象機器２００を監視することができる。
【００３１】
また、サーバ部１２１は、操作機器４００からデータの入力を受け付けるためのＷｅｂページも同様にネットワーク３００に公開する。ユーザは、操作機器４００のブラウザを介して操作機器４００からＰＬＣ１００への情報を入力する。本実施形態においては、例えば、制御開始および終了の指示や、制御処理に必要なパラメータなどである。
【００３２】
サーバ部１２１は、受け付けたＨＴＭＬ形式またはＸＭＬ形式の情報を、機器制御部１１１および機器制御部１２２が処理可能なデータ形式に変換し、処理分配部１１２の指示に従って、機器制御部１１１および機器制御部１２２に受け渡す。
【００３３】
このように、機器制御部１１１および１２２は、制御対象機器２００の制御処理に必要な情報のうち、操作機器４００から取得する情報は、サーバ部１２１を介して入手する。また、処理結果は、サーバ部１２１を介して操作機器４００に提示される。
【００３４】
一方、機器制御部１１１および１２２は、処理分配部１１２の指示に従って、制御対象機器２００の制御処理に必要な情報のうち、制御対象機器２００のセンサにより取得した情報を、入出力インタフェース部１５０を介して制御対象機器２００から直接受け取り、また、制御対象機器２００に与える指示となる処理結果を、同じく入出力インタフェース部１５０を介して、直接制御対象機器２００に与える。
【００３５】
なお、ユーザからの入力は、機器の制御指示に限られない。例えば、比較検証部１１６においてデュアルプロセッサでの処理結果を比較するが、この比較のタイミングであったり、比較にあたっての許容誤差の範囲であったり、比較結果が不一致の場合の対処法なども考えられる。
【００３６】
負荷監視部１２４は、通信兼制御処理部１２０のプロセッサの負荷を監視し、その結果を処理分配部１１２に通知するものである。本実施形態においては、通信兼制御処理部１２０は、通信処理を優先的に行うよう構成されている。負荷監視部１２４は、通信兼制御処理部１２０のプロセッサの負荷を監視し、機器制御処理を行うのに十分ではないと判断した場合、それを処理分配部１１２に通知する。そして、その通知を受けた処理分配部１１２は、十分であるとの通知を負荷監視部１２４から受けるまでの間、処理を機器制御部１２２に振り分けない。
【００３７】
データ同期部１３０は、処理分配部１１２に、機器制御部１１１および機器制御部１２２による処理結果を整理統合するタイミングを指示するものである。
【００３８】
また、割込処理部１４０は、予め定められた優先度に従って、各処理部に対応するプロセッサからのメモリアクセス、入出力インタフェース部１５０を介しての制御対象機器２００へのアクセス、ネットワークインタフェース１６０を介してのネットワーク３００へのアクセスなどの割込みを処理するものである。
【００３９】
割込み処理の優先度が明確に定義されているため、上述のアクセスが同時に発生した場合のようなワーストケースの場合でも、パフォーマンスが低下することを防止できる。
次に、上述の比較検証部１１６における比較結果に応じた処理を以下に説明する。
例えば、処理結果を比較した結果、誤差が全くないか、許容範囲内であった場合は、比較検証部１１６は、その処理結果を最終的な結果とする。
また、両者の処理結果を比較した結果、誤差が許容範囲以上と判断した場合は、比較検証部１１６は、システムを最も安全な状態に移行できるように制御対象機器２００への指示を調整するフェイルセーフ処理を行うことを最終的な処理結果とする。
なお、誤差の許容範囲およびフェイルセーフ処理は、予め定められていてもいいし、また、ユーザが操作機器４００から入力したものを用いる構成としてもよい。
なお、機器制御部１１１と機器制御部１２２との処理結果の比較は、必ずしも全処理ごとに行う必要はない。一定時間、または、一定の処理回数ごとに、比較検証部１１６により検証するようにしてもよい。但し、この場合は、機器制御部１１１と機器制御部１２２との処理結果のうち、どちらを優先的に制御対象機器への指示として採用するか予め定めておく必要がある。
例えば、本実施の形態においては、通信兼制御処理部１２０側では、サーバ部１２１により通信に関わる処理を行い、負荷の変動が激しいため、負荷の安定している制御処理部１１０側の機器制御部１１１の処理結果を優先的に採用するよう定めておく。
なお、サーバ部１２１の処理の負荷が大きい場合、機器制御部１２２の処理は行われないことがある。このような場合も、比較検証部１１６では、フェイルセーフ処理として、自動的に機器制御部１１１の処理結果を採用するよう設定しておく。
以上の機能を備えたＰＬＣ１００は、２つ以上のプロセッサと、メモリと、各種バスなどを備えた専用のハードウエア、または、汎用のパーソナルコンピュータやワークステーションなどで構成される。
次に本実施形態のハードウエア構成の一例を図２に示す。
本図に示すように、ＰＬＣ１００は、機器制御プロセッサ用記憶装置Ａ２（以後、記憶装置Ａ２と呼ぶ）、機器制御兼通信プロセッサ用記憶装置Ｂ３（以後、記憶装置Ｂ３と呼ぶ）、機器制御用プロセッサＡ４（以後、プロセッサＡ４と呼ぶ）、機器制御兼通信用プロセッサＢ５（以後、プロセッサＢ５と呼ぶ）、メモリ制御装置６、データ同期装置７、メモリバス８、プロセッサバス９、１０、拡張バス１１、入出力制御装置１２とネットワークインタフェース１３とを備える。
【００４０】
記憶装置Ａ２および記憶装置Ｂ３は、メモリバス８を介してメモリ制御装置６に接続され、プロセッサＡ４、プロセッサＢ５、入出力制御装置１２、および、ネットワークインタフェース１３は、それぞれ、プロセッサバス９、１０、拡張バス１１を介してメモリ制御装置６と接続されている。
記憶装置Ａ２および記憶装置Ｂ３は、それぞれ、制御処理部１１０および通信兼制御処理部１２０を実現する、プログラム、オペレーティングシステム（以後ＯＳと呼ぶ）、データなどを格納し、プロセッサＡ４およびプロセッサＢ５は、それぞれ、記憶装置Ａ２および記憶装置Ｂ３に格納されている逐次命令やデータを読み出して処理を実行する。
【００４１】
プロセッサＡ４は、機器制御の処理を行うプロセッサで、記憶装置Ａ２に記憶されたＯＳ−Ａ２１を実行する。ＯＳ−Ａ２１上では、機器を制御する制御アプリケーションＡ２２（以後、制御アプリＡ２２と呼ぶ）が実行され、機器制御部１１１が実現される。また、同じくＯＳ−Ａ２１上では、制御アプリＡ２２と後述する制御アプリケーションＢ３２とに処理を分配する処理分配アプリケーション２３（以後、処理分配アプリ２３と呼ぶ）が実行され、これにより、処理分配部１１２が実現される。
【００４２】
プロセッサＢ５は、通信処理と、その空き能力を利用して機器制御処理も行うプロセッサで、記憶装置Ｂ３に記憶されたＯＳ−Ｂ３１とを実行する。ＯＳ−Ｂ３１上では制御アプリケーションＢ３２（以後、制御アプリＢ３２と呼ぶ）とサーバプリケーション３３（以後、サーバ３３と呼ぶ）とが実行される。ＯＳ−Ｂ３１上では、サーバ３３が優先的に実行され、プロセッサの負荷が過剰と判断された場合は、制御アプリＢ３２の処理を中断させる。ここで、サーバ部１２１と、機器制御部１２２とが実現される。
【００４３】
なお、制御アプリＡ２２とＢ３２とは、予め定められた手順に従って、または、ネットワークインタフェース１３を介して受け付けたユーザからの指示に従って、入出力制御装置１２を介して制御対象機器２００を制御するために必要な処理を行うプログラムである。　また、サーバ３３は、Ｗｅｂサーバ機能を備えたプログラムである。
【００４４】
データ同期装置７は、制御アプリＡ２２と制御アプリＢ３２との処理結果の扱いのタイミングを制御するものであり、データ同期部１３０を実現する。
入出力制御装置１２は、入出力インタフェース１５０を実現し、ネットワークインタフェース１３は、ネットワークインタフェース部１６０を実現するものである。
【００４５】
メモリ制御装置６は、割込処理部１４０を実現するものである。メモリ制御装置６は、図３に示すように、プロセッサＡ、Ｂがそれぞれ、プロセッサバスＡ、Ｂを介してメモリ制御装置６内に２つ備えられたプロセッサバス制御ユニットＡとＢとに接続している。
【００４６】
ここで、２つのプロセッサバスを使用することにより、割込み要因によってプロセッサごとに割込みを振り分けるなどの処理が可能となり、どの割込みを優先的に処理すればよいか判定しやすくなる。すなわち、このような構成にすることにより、割込みの優先度を明確に定義できる。また、マルチプロセッサに対応していないプロセッサでも使用することができるというメリットも得られる。
なお、ここで、機能上、記憶装置が２つに分かれているが、１つの記憶装置内、または、３つ以上の記憶装置内それぞれに、複数プロセッサのＯＳやアプリケーションが搭載されていても良い。
次に、本実施形態におけるＰＬＣ１００を用いた制御処理の手順を、図４を用いて以下に説明する。
ユーザは、操作機器４００から、実行したい制御内容と制御開始との指示をＰＬＣ１００に送信する。サーバ部１２１は、ネットワーク３００を介して操作機器４００から制御内容の指示と処理開始の指示とを受け付け（ステップ４０１）、処理分配部１１２に受け渡す。
処理分配部１１２は、負荷監視部１２４からの情報に基づき、機器制御部１２２において、機器制御処理が可能かどうか判断する（ステップ４０２）。
可能と判断した場合、処理分配部１１２は、機器制御部１１１および機器制御部１２２の両者に、ステップ４０１で受け取った制御内容の指示と、制御対象機器２００のセンサからの情報とを渡し、同じ処理をさせる（ステップ４０３）。それ以外の場合は、機器制御部１１１にのみ処理をさせ（ステップ４１１）、後述のステップ４０５に進み、処理結果を出力する（ステップ４０５）。
比較検証部１１６は、データ同期部１３０の指示するタイミングで、記憶部１１３および記憶部１２３に格納された両者の処理結果を比較する（ステップ４０４）。
比較検証部１１６は、一致と判断した場合、記憶部１１３に記憶された処理結果を最終結果として制御対象機器２００に出力するとともに、サーバ部１２１に通知する（ステップ４０５）。不一致と判断した場合、フェイルセーフ処理を最終結果として制御対象機器２００に出力するとともに、サーバ部１２１に通知する（ステップ４２１）。
サーバ部１２１を介して、操作機器４００から、処理を終了する指示をうけつける（ステップ４０６）まで、ステップ４０２からの処理を繰り返す。
以下に、本実施形態の機器制御処理を、図５に示すような、障害物５０１を回避しながら移動する移動物体５００を制御対象機器２００とした場合を例にあげ、具体的に説明する。
【００４７】
移動物体５００は、障害物５０１までの距離を検出するための複数のセンサＡ１〜Ａｎ（ｎは自然数）、センサＢ１〜Ｂｎ、および、複数のモータを装備する。ここで、センサ、モータなどは図示しない。ただし、センサＡ１（Ａｎ）とセンサＢ１（Ｂｎ）はそれぞれ同じ方向の障害物を検出するものとする。
各モータには駆動回路が取り付けられており、ＰＬＣ１００の入出力インタフェース部１５０を介しての制御指示によって、モータの回転方向と速度と移動距離とをそれぞれ制御することができる。
センサＡ１〜Ａｎの情報と、センサＢ１〜Ｂｎの情報とは、それぞれ独立にＰＬＣ１００に伝達され、制御処理部１１０は、センサＡ１〜Ａｎからの入力情報に従って、移動物体５００の移動方向と速度と移動距離とを決定する。同様に、通信兼制御処理部１２０はセンサＢ１〜Ｂｎからの入力情報に従って、移動物体５００の移動方向と速度と移動距離とを決定する。
ここで、データ同期部１３０は、機器制御部１１１および機器制御部１２２の処理結果を、１回ごと、一定時間経過ごと、または、移動物体６００が一定距離進むごとに、比較検証するよう比較検証部１１６に指示する。
そして、比較検証部１１６は、データ同期部１３０の指示に基づいて、制御結果の比較を行う。比較検証部１１６は、比較の結果が、誤差の範囲で一致すればその結果を入出力インタフェース部１５０を介して移動物体５００に指示する。
許容範囲ではあるが、誤差の範囲を越えた場合は、予め定められた指示を、移動物体５００に与える。
例えば、移動距離に許容範囲以内の誤差がある場合には、短い方の距離、両者の平均距離、および、中間点の距離のいずれか１つを最終の出力結果として採用することを予め定めておく。
また、速度に許容範囲以内の誤差がある場合には、遅い方の速度、両者の平均速度、および、中間点の速度のいずれか１つを採用するよう定めておく。
そして、移動方向に許容範囲以内の誤差がある場合には、どちらかの移動方向、および、両者の中間のいずれかを採用するよう定めておく。
なお、誤差が許容範囲以上の場合には、フェイルセーフ処理として、機器制御処理部１１１の処理結果を採用するか、安全のためその場で停止させるか、または、制御処理をやり直すなど、予め定めておき、その処理を行う。
比較検証部１１６による検証対象として、速度ベクトルや移動ベクトルを用いる方法も考えられる。
移動物体５００の速度と方向とを制御する場合、機器制御部１１１はセンサＡ１〜Ａｎからの情報をもとに、移動物体５００の速度ベクトルを算出する。同様に、機器制御部１２２はセンサＢ１〜Ｂｎからの情報をもとに、移動物体５００の速度ベクトルを算出する。
次に、比較検証部１１６は、機器制御部１１１と機器制御部１２２とが算出した二つの速度ベクトルを比較し、二つのベクトルが成す角度が許容範囲以内であれば、二つのベクトルの平均ベクトルを最終的な処理結果とする。二つのベクトルが成す角度が許容範囲よりも大きい場合には、安全のためその場で停止、または、機器制御部１１１と１１２とに、制御処理をやり直させる。
このようにして得られた移動物体５００の現時点での移動方向、速度、移動距離、および、センサ情報をＷｅｂページにて公開する。ユーザは、このＷｅｂページを閲覧し、適切な移動方向、速度、移動方向などを操作機器４００から入力する。それを受け付けたサーバ部１２１は、そのパラメータを機器制御部１１１および１２２に渡し、処理を続行させる。
なお、移動物体５００の距離と方向を制御する場合には、速度ベクトルの代わりに移動ベクトルを求めて利用することもできる。
また、本実施形態において、操作機器４００を介してユーザから受け付ける指示として、制御対象機器２００に対する制御命令をあげて説明したが、指示はこれに限られない。例えば、比較検証部１１６が機器制御部１１１および機器制御部１２２の処理結果を比較するタイミングや、比較検証部１１６が許容する誤差範囲、フェイルセーフの処理内容などが考えられる。
また、サーバ部１２１がＷｅｂページを介して公開する情報として、移動物体５００が障害物５０１に衝突するなどの非常事態の発生などが考えられる。その場合、ユーザから、発生した事態への対処の指示を受け付けるよう構成することもできる。
以上説明したように、本実施形態においては、ネットワークインタフェース部１６０を介して外部ネットワーク３００との情報のやりとりは、通信兼制御処理部１２０にて処理され、制御対象機器を制御する処理は、主として、制御処理部１１０にて処理される。さらに、通信兼制御処理部１２０側の余力を利用して、検証用の制御処理も行っている。
本実施形態においては、通信処理を行う機能部と、主として機器制御処理を行う機能部とは、各々独立したプロセッサにより、独立したＯＳ上で実行されている。このため、機器制御処理は、通信処理によるプロセッサにかかる負荷の影響を直接うけにくく、安定した機器制御処理が実行される。
また、本実施形態においては、機器制御処理と通信処理との、負荷の大きさの差および時間的な差により発生する、通信処理を担う側のプロセッサの空き能力を、バックアップ的に機器制御処理に利用している。このため、安定性とともに、信頼性も高いシステムを得ることができる。
【００４８】
次に、デュアルプロセッサアーキテクチュアで、通信と制御を、バランスよく両立する第２の実施形態を以下に示す。
【００４９】
第２の実施形態のＰＬＣ７００は、通信兼制御処理部１２０の通信処理の空き能力を利用し、制御対象機器２００の制御処理を機器制御部１１１と分担して行い、処理の高速化、効率化を図るものである。
【００５０】
本発明を適用した第２の実施形態を、以下に図を用いて説明する。図６は、本実施形態のＰＬＣ７００の機能ブロック図である。
【００５１】
本図に示すように、本実施形態のＰＬＣ７００は、基本的には上述の第１実施形態における機能構成と同様である。ただし、処理分配部１１２内において、比較検証部１１６に代わり、処理結果統合部１１７を備えるものである。以下、第１の実施形態と異なる機能のみ抽出して説明する。
【００５２】
本実施形態において、処理分配部１１２は、予め定められたシーケンスに従って機器制御処理を行う場合、定期的、あるいは、所定の時期に、その後の処理が分散処理可能かどうか判断する。また、機器制御に関する外部からの指示に従って、機器制御を行う場合はその都度、その後の所定の処理が分散処理可能かどうか判断する。
【００５３】
処理分配部１１２は、分散処理が不可能と判断した場合、処理を機器制御部１１１に行わせ、分散処理が可能と判断した場合、処理を機器制御部１１１および機器制御部１２２に分散して行わせる。
【００５４】
処理結果統合部１１７は、処理を機器制御部１１１および機器制御部１２２に分散して処理を行わせた場合、データ同期部１３０の指示するタイミングで、それぞれ記憶部１１３および記憶部１２３に格納されている機器制御部１１１および機器制御部１２２の処理結果を統合する。
【００５５】
処理分配部１１２は、処理結果統合部１１７が統合した結果を最終処理結果として、入出力インタフェース部１５０を介して、その処理結果を制御対象機器２００に返すとともに、サーバ部１２１に通知する。
【００５６】
なお、本実施形態の機能を実現するハードウエア構成は、基本的に第１の実施形態と同じであるため、ここでは説明しない。第１の実施形態同様、処理分配アプリ２３により、本実施形態の処理分配部１１２が実現される。
【００５７】
次に、本実施形態におけるＰＬＣ７００を用いた制御処理の手順を、図７を用いて以下に説明する。
ユーザは、操作機器４００から、実行したい制御内容と制御開始との指示をＰＬＣ７００に送信する。サーバ部１２１は、ネットワーク３００を介して操作機器４００から制御内容の指示と処理開始の指示とを受け付け（ステップ７０１）、処理分配部１１２に受け渡す。
処理分配部１１２は、負荷監視部１２４からの情報に基づき、機器制御部１２２において、機器制御処理が可能かどうか判断する（ステップ７０２）。
可能ではないと判断した場合、処理を機器制御部１１１に実行させ（ステップ７１１）、ステップ７０６に進む。
可能と判断した場合、処理分配部１１２は、受け付けた制御内容に関する処理が分散可能かどうか、判断する（ステップ７０３）。
分散が不可能と判断した場合、処理分配部１１２は、処理を機器制御部１１１に実行させ（ステップ７１１）、ステップ７０６に進む。
分散可能ならば、処理分配部１１２は、ステップ７０１で受け取った制御内容に従って、機器制御処理部１１１と機器制御処理部１１２に処理を分配し、制御対象機器２００のセンサからの情報を、適宜所定の処理部に渡し、両者に分散処理をせる（ステップ７０４）。
処理結果統合部１１７は、データ同期部１３０の指示するタイミングで、記憶部１１３および記憶部１２３に格納された両者の処理結果を統合する（ステップ７０５）。
処理分配部１１２は、処理結果統合部１１７で統合された処理結果を最終結果として制御対象機器２００に出力するとともに、サーバ部１２１に通知する（ステップ７０６）。
サーバ部１２１を介して、操作機器４００から、処理を終了する指示を受け付ける（ステップ７０７）まで、ステップ７０２からの処理を繰り返す。
以下に、本実施形態の機器制御処理を、図８に示すようなロボットアーム８００を制御対象機器２００とした場合を例にあげ、具体的に説明する。
ロボットアーム８００はｘ軸方向の座標を決定するアーム８０１と、ｙ軸方向の座標を決定するアーム８０２と、ｚ軸方向の座標を決定するアーム８０３と、把持対象物８０５を把持するためのハンド８０４とを備える。
このロボットアーム８００の各アームとハンドとはそれぞれモータを搭載し、各モータの速度と位置とは、駆動回路と本発明のＰＬＣ７００からの制御指示の出力とによって制御される。また、ロボットアーム８００は把持対象物の位置とアームの現在位置を検出するための複数のセンサを搭載し、センサからの情報は本実施形態のＰＬＣ７００に、入出力インタフェース部１５０を介して入力される。
図８において、ロボットアームは３自由度としたが、この自由度は問わない。また、アームの構成も３次元内の位置座標が特定できればどのような形態でも良い。例えば、図８（Ｂ）のようなものであってもよい。また、ロボットアームの動力も、モータに限られない。例えば、油圧や空気圧や内燃機関などを用いても良い。
このようなロボットアーム８００をネットワーク３００を介して操作機器４００から監視または制御する方法について、以下に説明する。
まず、サーバ部１２１は、センサからの入力により得られた把持対象物８０５の位置情報やロボットアーム８００の駆動状態をＨＴＭＬ形式もしくはＸＭＬ形式に変換し、Ｗｅｂページ上に公開する。ユーザは、操作機器４００のブラウザ機能を用いて、サーバ部１２１が公開しているＷｅｂページにアクセスができる。そして、ユーザは、このブラウザ機能を用いて、例えば、センサが検出した把持対象物８０５を特定の位置に移動させるなどの命令を入力することができる。
ネットワークインタフェース部１６０は、操作機器４００を介してロボットアーム８００に対するユーザからの命令を受け付け、サーバ部１２１に送信する。
次に、サーバ部１２１は、受信したＨＴＭＬ形式またはＸＭＬ形式の命令を機器制御部１１１および機器制御部１２２とが使用可能なデータ形式に変換した後、処理分配部１１２に受け渡す。受け取った処理分配部１１２は、受け取った命令が分担処理可能なものであるか否かを判断する。
【００５８】
ロボットアーム８００を制御する場合、必要な制御処理としては、ｘ軸方向、ｙ軸方向、ｚ軸方向それぞれの位置制御と速度制御、ハンドの把持と開放動作の制御などが挙げられる。ここで、位置制御と速度制御とに関しては、ｘ軸方向、ｙ軸方向、ｚ軸方向とそれぞれ独立して同時に実行可能な制御であるため、処理分配部１１２は、本制御処理を分担して行うことが可能と判断する。
【００５９】
そして、例えば、機器制御部１１１にｘ軸方向とｙ軸方向の位置制御及び速度制御とを処理させ、機器制御部１２２にｚ軸方向の位置制御と速度制御を処理させるなどのように、処理分配部１１２は、処理を振り分ける。
【００６０】
また、把持動作の制御、目的位置に移動するための位置制御、および、速度制御は、同時に並行して処理できないため、処理分配部１１２は、分担処理できないと判断する。この場合、例えば、処理分配部１１２は、処理統合部１１７にデータ同期部７の指示するタイミングで３方向全ての位置制御と速度制御との処理を統合させた後、機器制御部１１１に同時並行して処理できないと判断した処理を実行させる。そして、目的位置に到達した時点で、機器制御部１１１に、対象物を開放する制御処理を行わせる。
ここで、操作機器４００を介してユーザから与える命令が、アームの位置をリアルタイムに制御するものであってもよい。この場合、操作機器４００を介して受け付けたユーザの指示に従って、機器制御部１１１および機器制御部１２２は、処理分配部１１２の制御に従って、ｘ軸方向、ｙ軸方向、ｚ軸方向の位置制御と速度制御とを、分担して処理する。
この場合、サーバ部１２１は、機器制御部１１１および機器制御部１２２との処理により更新されるアームの位置を、Ｗｅｂページにて公開する。ユーザは、操作機器４００のブラウザを介し、随時更新されるアームの状況を遠隔地から参照することができる。また、同時に、ユーザは、操作機器４００のブラウザから、Ｗｅｂページに入力することで、ネットワーク３００を介し、アーム操作に関する指示を入力することができる。
以上説明したように、本実施形態においては、ネットワークインタフェース部１６０を介して外部ネットワーク３００との情報のやりとりは、通信兼制御処理部１２０にて処理され、制御対象機器２００を制御する処理は、主として、制御処理部１１０で処理される。さらに、通信兼制御処理部１２０側に余力がある場合には、制御対象機器２００を制御する処理のうち、分散処理可能な処理を、通信兼制御処理部１２０にても行わせる。
【００６１】
本実施形態においては、通信処理を行う機能部と、主として機器制御処理を行う機能部とは、各々独立したプロセッサにより、独立したＯＳ上で実行されている。このため、機器制御処理は、通信処理によるプロセッサにかかる負荷の影響を直接受けにくく、安定した機器制御処理が実行される。
【００６２】
また、本実施形態においては、機器制御処理と通信処理との、負荷の大きさの差および時間的な差により発生する、通信処理を担う側のプロセッサの空き能力を利用して、機器制御処理の中で、分散して処理が可能なものを処理させる。このため、安定性とともに、処理速度、処理効率の高いシステムを得ることができる。これにより、ネットワーク３００を介したデータの送受信を行いながら、制御対象機器２００に対してリアルタイム性の高い制御処理を行うことが可能となる。
次に、本発明を適用したＰＬＣの第３の実施形態を図面を参照しながら説明する。本実施形態のＰＬＣ９００は、一方のプロセッサで、外部ネットワークからのデータの入力や受信の処理を行い、他方のプロセッサで、外部へのデータ出力や送信の処理、および、機器制御処理を行うことで、デュアルプロセッサアーキテクチュアで、通信と制御を両立させるものである。本実施形態は、このような処理分担により、システムの安全性を高めたものである。
図９は、本実施形態のＰＬＣ９００の機能ブロック図である。本図に示すように、ＰＬＣ９００は、前述した第１の実施形態の構成に加え、共有記憶部１７０および記憶部１８０を備え、また、制御処理部１１０に処理分配部１１２の代わりに、サーバ部１１５を備え、通信兼制御処理部１２０に、負荷監視部１２４のかわりに、データ検証部１２５を備えるものである。以下、第１の実施形態と異なる機能のみ抽出して説明する。
サーバ部１１５の機能は、基本的にサーバ部１２１と同様であり、Ｗｅｂサーバ機能を備え、ネットワーク３００を介して外部の機器と通信処理を行うものである。ただし、本実施形態においては、サーバ部１１５の有する機能は、外部からのデータの入力を受け付けるのみである。
データ検証部１２５は、外部の機器から入力された制御命令やデータが正常なものであるか検証するものである。
共有記憶部１７０は、制御処理部１１０の処理結果を保存するものである。制御処理部１１０は、共有記憶部１７０への書き込みおよび共有記憶部１７０からの読みだしともに許可されているが、通信兼制御処理部１２０は、共有記憶部１７０からデータを読み出すことのみ許可されている。
記憶部１８０は、通信兼制御処理部１２０の処理結果を保存するものである。通信兼制御処理部１２０はアクセスが許可されているが、制御処理部１１０は、アクセスが許可されていない。
また、本実施形態では、データ同期部１３０は、制御処理部１１０によって、データが共有記憶部１７０に格納されたことを、通信兼制御処理部１２０に通知する機能を有する。
本機能を実現するハードウエア構成の一例を図１０に示す。基本的には、上述の実施形態１および２におけるハードウエア構成と同じである。即ち、プロセッサＡ４と記憶装置Ａ２により、制御処理部１１０の機能を実現し、それらとは独立したプロセッサＢ５と記憶装置Ｂ３により、通信兼制御処理部１２０の機能を実現している。
それに加え、本実施形態では、それぞれ共有記憶部１７０および記憶部１８０を実現する共有記憶装置Ａ１４および記憶装置Ｂ１５を備える。これらの記憶装置は、バス８を介して、メモリ制御装置６と接続する。
また、共有記憶装置Ａ１４は、プロセッサＡ４からのデータ読み出し命令とデータ書き込み命令を受け付けることができ、プロセッサＢ５からはデータ読み出し命令だけを受け付けることができるよう構成される。記憶装置Ｂ１５は、プロセッサＢ５からのアクセスだけを受け付けることができ、プロセッサＡ４からのアクセスを受け付けることはできないよう構成されている。
このようなハードウエア構成で実現される本実施形態において、機器制御部１１１は、入出力インタフェース部１５０を介して、制御機器２００から入力されたデータの処理を行い、機器制御部１２２は入出力インタフェース部１５０を介して制御機器２００へ出力するデータの処理を行う。
サーバ部１１５は、ネットワークインタフェース部１６０を介してネットワーク３００から受信したデータの処理を行い、サーバ部１２１はネットワークインタフェース部１６０を介してネットワーク３００へ送信するデータの処理を行う。また、サーバ部１１５は、ネットワーク３００に対してデータの送受信を共に許可するが、サーバ部１２１は、ネットワーク３００へのデータの送信だけを許可し、操作機器４００のアドレスや認証情報などの、操作機器４００へデータを送信する際に通信を確立するために必要な最低限の情報を除き、一切のデータ受信やデータ入力を許可しない。
以下に、本実施形態におけるＰＬＣ９００を用いた制御処理の手順を説明する。図１１は、本実施形態において、操作機器４００から制御対象機器２００を監視または制御するための処理の流れを説明するための図である。
機器制御部１１１は、制御対象機器４００から入出力インタフェース部１５０を介して得たデータ（１１０１）を、共有記憶部１７０に格納する（ステップ１１０２）。ここで、機器制御部１１１は、共有記憶部１７０に格納した制御対象機器４００から得たデータを、時系列的に管理し、機器制御部１２２およびサーバ部１２１が逐次読み出して参照できる状態にしておく。
サーバ部１１５は、制御対象機器２００に対する制御命令などを受け付けるＷｅｂページを操作機器４００のブラウザ画面に表示させ、操作機器４００を介して制御対象機器２００に対する制御命令やデータの入力を受け付け（ステップ１１１１）、受け付けた制御命令やデータを共有記憶部１７０に書き込む（ステップ１１０２）。
ここで、サーバ部１１５は、受信したデータがＨＴＭＬ形式またはＸＭＬ形式であれば機器制御部１１１および機器制御部１２２が処理できる形式に変換し、受け取ったデータに圧縮や暗号化が施されていたならば、解凍や復号化を行い、共有記憶部１７０に格納する。
一方、通信兼制御処理部１２０では、データ同期部１３０から前記ステップ１１０２が完了したことを受け、データ同期部１３０の指示するタイミングで、データ検証部１２５は、共有記憶部１７０から必要なデータを読み出す（ステップ１１２１）。そして、データ検証部１２５は、共有記憶部１７０から取り込んだ制御命令やデータが正常なものであるかを検証する（ステップ１１２２）。
検証の結果、問題がなければ、データ検証部１２５は、それを、機器制御部１２２に通知する。機器制御部１２２は、そのデータを用いて制御処理を実行し（ステップ１１２３）、処理結果を記憶部１８０に格納するとともに、入出力インタフェース部１５０を介して制御対象機器２００へ出力する（ステップ１１２４）とともに、サーバ部１２１に通知する（ステップ１１２５）。通知を受けたサーバ部１２１は、Ｗｅｂページにその処理結果を掲載することで、ネットワーク３００を介して接続された操作機器４００に対して通知する。
共有記憶部１７０から読み出した制御命令やデータの内容に異常が発見された場合は、データ検証１２５は、サーバ部１２１にそのことを通知する（ステップ１１２５）。そして、サーバ部１２１は、Ｗｅｂページに異常に関する情報を掲載することで、ネットワーク３００を介して接続された操作機器４００に対して、異常を通知する。
また、上記の手順以外にも、サーバ部１２１は、ステップ１１２４で記憶部１８０に格納された制御対象機器２００の状態や機器制御部１２２の処理結果等の情報を随時読みだし、ＨＴＭＬ形式またはＸＭＬ形式に変換し、随時Ｗｅｂページに掲載するよう構成してもよい。
以下に、操作機器４００からＰＬＣ９００を介してモータなどの動力を監視または制御する場合を例にとり、説明する。ここで、動力は駆動回路と接続され、ＰＬＣ９００から出力される制御指示によって制御される。
また、例えば温度センサにより動力の発熱状況を取得するなど、ＰＬＣ９００は、各種センサにより動力の状態を随時、入出力インタフェース部１５０を介して取得する。
ユーザは、ネットワーク３００を介して接続された操作機器４００を介して、ＰＬＣ９００にアクセスできる。
機器制御部１１１は、入出力インタフェース部１５０を介して受け付けた制御命令や制御に必要なパラメータを、共有記憶部１７０に保存する。
次に、データ同期部１３０は、共有記憶部１７０にデータが保存されたことをデータ検証部１２５に通知する。
この通知を受け、データ検証部１２５は共有記憶部１７０から制御処理に必要なデータ取得し、そのデータが正常なものであるか否かを判断する。
取得したデータに異常が発見されなければ、データ検証部１２５は、そのことを機器制御部１２２に通知する。通知を受けた機器制御部１２２は、データ検証部１２５が取得し、検証済みのデータを用いて制御処理を実行し、処理結果を入出力インタフェース部１５０を介して制御対象機器２００に送信するとともに、記憶部１８０に格納する。
その後、サーバ部１２１は、制御処理が正常に実行されたことおよび／またはその実行結果を、ネットワーク３００を介して操作機器４００に対して送信する。
【００６３】
もし、データに異常な点が発見された場合には、データ検証部１２５は、その旨をサーバ部１２１に通知する。サーバ部１２１は、それを受けて、異常が生じた事を操作機器４００に対して通知する。
【００６４】
ここで、異常なデータとは、例えば、制御命令の内容が動力の規格に逸脱した出力を要求した場合なども含まれる。この場合、どのような出力が要求されたかなど、異常に関する情報をサーバ部１２１により、操作機器４００に提示する。以上説明したように、本実施の形態においては、主に外部からのデータの入力や受信を処理する制御処理部１１０と、主に外部へのデータ出力や送信を処理する通信兼制御処理部１２０とを、機能的にだけでなく、ハードウエア的にも独立させている。すなわち、これらの機能部は、各々独立したプロセッサにより、独立したＯＳ上で実行されている。
このため、外部からの不正なアクセスやウイルスなどにより制御処理部１１０側に異常が発生した場合でも、その影響は通信兼制御処理部１２０や制御対象機器２００まで及ぶ危険性は少ない。また、仮に制御処理部１１０側で異常が発生した場合には、通信兼制御処理部１２０が制御処理部１１０で発生した異常に関する情報を操作機器４００に対して直ちに送信することができる。このため、異常の早期発見が可能である。
このように、本実施形態においては、安全性の高いシステムの提供が可能となる。
なお、以上の各実施形態において、操作機器４００からＰＬＣ９００へのアクセス方法として、ｈｔｔｐサーバによるＷｅｂページを介してのアクセス方法を例にあげて説明したが、それ以外にも、ｔｅｌｎｅｔによりＰＬＣ９００の制御処理部１１０側のＯＳにリモートログインし、制御命令を入力する方法や、ｆｔｐによりＰＬＣ９００の制御処理部１１０側のＯＳに対して制御用のデータファイルなどを転送する方法などでもよい。
【００６５】
以上、各実施形態において、信頼性の高いシステム、処理速度の速く効率のよいシステム、安全性の高いシステム、などを各々独立して説明したが、プロセッサなど必要なハードウエアを付加することにより、それぞれの構成は組み合わせることが可能である。
【００６６】
以上説明したように、本発明によれば、複数のプロセッサが処理する複数のＯＳ上で制御アプリケーションと通信に係わる処理を実行するサーバプリケーションとが実行される計算機システムにおいて、インターネットやイントラネットなどのネットワークを介して接続された操作機器から制御対象機器を安定的に制御することが可能なシステムを提供することができる。
【００６７】
なお、ＯＳ上に搭載するアプリケーションの組み合わせを変更することにより、操作機器と制御対象機器とのネットワークによる通信を確立しながら、信頼性を高めたり、処理の高速化を図ったり、安全性を高めることができる。
【００６８】
また、以上の各実施形態においては、ＦＡ機器のシーケンス制御を行うＰＬＣを例にあげ説明したが、本発明の適用はこのような工場内設備に限られない。例えば、屋外に設置された社会インフラ設備、または、家電製品など、通信と制御を両立する必要のある一般的な用途に適用できる。
【００６９】
【発明の効果】
簡易な構成で通信と制御を両立させ、かつ、十分な処理能力を持ち、信頼性、安全性の高いＰＬＣを提供することができる。
【図面の簡単な説明】
【図１】図１は第１の実施形態におけるＰＬＣの機能ブロック図である
【図２】図２は第１の実施形態におけるハードウエア構成の一例を示す図である。
【図３】図３はメモリ制御装置のハードウエア構成の一例を示す図である。
【図４】図４は第１の実施形態の処理手順を示す図である。
【図５】図５は第１の実施形態の制御対象機器の具体例を示す図である。
【図６】図６は第２の実施形態におけるＰＬＣの機能ブロック図である。
【図７】図７は第２の実施形態の処理手順を示す図である。
【図８】図８は第２の実施形態の制御対象機器の具体例を示す図である。
【図９】図９は第３の実施形態におけるＰＬＣの機能ブロック図である。
【図１０】図１０は第３の実施形態におけるハードウエア構成の一例を示す図である。
【図１１】図１１は第３の実施形態の処理の流れを示す図である。
【符号の説明】
１００・・・ＰＬＣ，　１１０・・・制御処理部、１２０・・・通信兼制御処理部、１１１、１２２・・・機器制御部、１１２・・・処理分配部、１１３、１２３・・・記憶部、１２１・・・サーバ部、１２４・・・負荷監視部、１３０・・・データ同期部、１４０・・・割込処理部、１５０・・・入出力インタフェース部、１６０・・・ネットワークインタフェース部、２００・・・制御対象機器、３００・・・ネットワーク、４００・・・操作機器
【図１】
2004094473.tif 000003
【図２】
2004094473.tif 000004
【図３】
2004094473.tif 000005
【図４】
2004094473.tif 000006
【図５】
2004094473.tif 000007
【図６】
2004094473.tif 000008
【図７】
2004094473.tif 000009
【図８】
2004094473.tif 000010
【図９】
2004094473.tif 000011
【図１０】
2004094473.tif 000012
【図１１】
2004094473.tif 000013