(57)【要約】  汎用演算部２と、制御演算部３と、汎用演算部２と制御演算部３との間でデータを送受信する際の経路となるリアルタイム通信経路４および非リアルタイム通信経路５と、リアルタイム通信経路４および非リアルタイム通信経路５の情報を保持する通信経路管理部６と、を備え、汎用演算部２は、汎用演算部２または制御演算部３のいずれかの演算部で実行される命令のデータである命令データを記憶する記憶部２１と、制御演算部３で実行される命令データの優先度を計算する優先度計算部２３と、優先度計算部２３で計算された優先度の情報、通信経路管理部６で保持するリアルタイム通信経路４および非リアルタイム通信経路５の情報に基づいて、リアルタイム通信経路４および非リアルタイム通信経路５から、制御演算部３へ命令データを送信する際に使用する通信経路を選択する通信経路選択部２４と、を備える。
2016189709.tif 000002
【特許請求の範囲】
【請求項１】
第１の演算部と、
第２の演算部と、
前記第１の演算部と前記第２の演算部との間でデータを送受信する際の経路となる複数の通信経路と、
前記複数の通信経路の情報を保持する通信経路管理部と、
を備え、
前記第１の演算部は、
前記第１の演算部または前記第２の演算部のいずれかの演算部で実行される命令のデータである命令データを記憶する記憶部と、
前記第２の演算部で実行される命令データの優先度を計算する優先度計算部と、
前記優先度計算部で計算された優先度の情報、および前記通信経路管理部で保持する前記複数の通信経路の情報に基づいて、前記複数の通信経路から、前記第２の演算部へ命令データを送信する際に使用する通信経路を選択する通信経路選択部と、
を備えることを特徴とするコントローラ。
【請求項２】
前記優先度計算部は、複数の指標に基づいて、前記第２の演算部で実行される命令データの優先度を計算する、
ことを特徴とする請求項１に記載のコントローラ。
【請求項３】
前記第１の演算部は、
前記優先度計算部で使用する各指標の重みを設定する設定部、
を備え、
前記優先度計算部は、前記設定部で設定された各指標の重みの情報を用いて、前記第２の演算部で実行される命令データの優先度を計算する、
ことを特徴とする請求項２に記載のコントローラ。
【請求項４】
前記コントローラは、前記優先度計算部で使用する各指標の重みを設定する設定部を有する計算機と接続し、
前記優先度計算部は、前記設定部で設定された各指標の重みの情報を用いて、前記第２の演算部で実行される命令データの優先度を計算する、
ことを特徴とする請求項２に記載のコントローラ。
【請求項５】
前記コントローラは、前記優先度計算部で使用する各指標の重みが記憶された外部記憶媒体と接続し、
前記優先度計算部は、前記外部記憶媒体に記憶されている各指標の重みの情報を用いて、前記第２の演算部で実行される命令データの優先度を計算する、
ことを特徴とする請求項２に記載のコントローラ。
【請求項６】
前記通信経路管理部は、各通信経路について、通信経路の性能を示す情報、許容する優先度、および専有状況の情報を保持する、
ことを特徴とする請求項１から５のいずれか１つに記載のコントローラ。
【請求項７】
前記第２の演算部は、
前記命令データを実行し、前記命令データを実行した結果である応答データを生成する命令実行部と、
前記複数の通信経路から前記命令データを受信して前記命令実行部へ出力し、前記命令実行部で生成された前記応答データを、前記命令データを受信した通信経路から前記第１の演算部へ送信するデータ送受信部と、
を備えることを特徴とする請求項１から６のいずれか１つに記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファクトリーオートメーションのコントローラに関する。
【背景技術】
【０００２】
制御処理および情報処理を統合したプログラマブルコントローラ（以下、コントローラとする）には、制御処理用バスおよび情報処理用バスから入出力装置の情報を格納したＩ／Ｏ（Input／Output）メモリへアクセスする際、競合回路において、各バスからのアクセスに優先度を設定し、各バスからのアクセスの競合を調停しているものがある。このような技術が、下記特許文献１において開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３１２００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
産業機器などを制御するＦＡ（Factory  Automation）制御システムのコントローラには、各演算部が異なるＯＳ（Operating  System）によって命令を実行する複数の演算部を有するものがある。複数の演算部を有するコントローラでは、演算部間で、命令のデータおよび命令を実行した結果のデータを送受信する。各演算部で実行される命令には、駆動機器の動きを制御するリアルタイム性のもの、駆動機器の稼働状態の情報を収集する非リアルタイム性のものなどがある。演算部では、リアルタイム性の命令のデータを非リアルタイム性の命令のデータよりも優先して送信する必要がある。【０００５】
上記特許文献１では、制御系の時間的制約を重視して制御処理用バスの優先度を情報処理用バスの優先度よりも高くしているが、バス単位で優先度を設定している。演算部間でリアルタイム性の命令のデータを優先的に送信することについて、上記特許文献１には記載されていない。【０００６】
本発明は、上記に鑑みてなされたものであって、複数の演算部を備える場合に、命令のデータを保持する演算部から他の演算部へリアルタイム性のある命令のデータを優先的に送信可能なコントローラを得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明のコントローラは、第１の演算部と、第２の演算部と、第１の演算部と第２の演算部との間でデータを送受信する際の経路となる複数の通信経路と、複数の通信経路の情報を保持する通信経路管理部と、を備える。第１の演算部は、第１の演算部または第２の演算部のいずれかの演算部で実行される命令のデータである命令データを記憶する記憶部と、第２の演算部で実行される命令データの優先度を計算する優先度計算部と、優先度計算部で計算された優先度の情報、および通信経路管理部で保持する複数の通信経路の情報に基づいて、複数の通信経路から、第２の演算部へ命令データを送信する際に使用する通信経路を選択する通信経路選択部とを備える。
【発明の効果】
【０００８】
本発明にかかるコントローラは、複数の演算部を備える場合に、命令のデータを保持する演算部から他の演算部へリアルタイム性のある命令のデータを優先的に送信できる、という効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】ＦＡコントローラの構成例を示すブロック図
【図２】ＦＡコントローラにおいて汎用演算部が制御命令データの優先度に基づいて制御演算部へ制御命令データを送信する動作を示すフローチャート
【図３】端末装置から優先度計算に使用する各指標の重みを設定する際に表示部に表示される情報の例を示す図
【図４】優先度計算部における制御命令データの優先度を計算する処理を示すフローチャート
【図５】通信経路管理部が保持する通信経路の情報の例を示す図
【図６】汎用演算部の通信経路選択部および制御演算部のデータ送受信部との間でデータを送受信する処理を示すフローチャート
【図７】ＦＡコントローラのハードウェア構成の例を示す図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかるコントローラを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態．
図１は、本発明の実施の形態にかかるＦＡコントローラ１の構成例を示すブロック図である。ＦＡ制御システムにおいて、ＦＡコントローラ１は、産業機器などの制御対象機器１５を、通信バス１３およびモジュール１４を介して制御するコントローラである。図１において、実線はＦＡコントローラ１内における命令のデータのやり取りを示し、点線は命令のデータ以外の情報のやり取りを示す。なお、図１では、ＦＡコントローラ１は通信バス１３経由で１つのモジュール１４および１つの制御対象機器１５と接続しているが、一例であり、複数のモジュール１４および複数の制御対象機器１５と接続し、複数の制御対象機器１５を制御することが可能である。
【００１２】
ＦＡコントローラ１は、汎用的な命令のデータである汎用命令データを実行するため汎用ＯＳを使用して演算を行う汎用演算部２と、産業機器などの制御対象機器１５の動作を制御する制御命令のデータである制御命令データを実行するため専用の制御ＯＳを使用して演算を行う制御演算部３と、を備える。汎用ＯＳは、一般的なパーソナルコンピュータなどの計算機で使用されるＯＳであり、広範囲の用途に適用可能である。制御ＯＳは、産業機器などの制御対象機器１５の動作を制御するＯＳであり、用途は限定されるが、汎用ＯＳより制御対象機器１５を高速かつ高精度で制御できる。ＦＡコントローラ１において、汎用演算部２は第１の演算部であり、制御演算部３は第２の演算部である。
【００１３】
また、ＦＡコントローラ１は、汎用演算部２と制御演算部３との間でリアルタイム性のデータ、すなわち優先度の高いデータを送受信する際の通信経路であるリアルタイム通信経路４と、汎用演算部２と制御演算部３との間で非リアルタイム性のデータ、すなわち前述の優先度の高いデータよりも優先度の低いデータを送受信する際の通信経路である非リアルタイム通信経路５と、リアルタイム通信経路４および非リアルタイム通信経路５の各通信経路の情報を保持する通信経路管理部６と、を備える。ここでは、制御命令データにおいて、リアルタイム性のデータを優先度の高いデータとし、非リアルタイム性のデータを優先度の低いデータとする。汎用演算部２および制御演算部３は、リアルタイム通信経路４および非リアルタイム通信経路５、すなわち複数の通信経路を用いてデータを送受信する。ＦＡコントローラ１では、汎用演算部２は、汎用演算部２で実行できない制御命令データを制御演算部３へ送信し、制御演算部３は、汎用演算部２から受信した制御命令データを実行する。また、汎用演算部２は、制御命令データのうち、リアルタイム性の優先度の高いデータをリアルタイム通信経路４経由で制御演算部３へ送信し、非リアルタイム性の優先度の低いデータを非リアルタイム通信経路５経由で制御演算部３へ送信する。なお、リアルタイム通信経路４および非リアルタイム通信経路５を区別しない場合、両者をまとめて通信経路と称することがある。
【００１４】
図１では、ＦＡコントローラ１は、リアルタイム通信経路４および非リアルタイム通信経路５を各１つ備えているが、実際には、リアルタイム通信経路４および非リアルタイム通信経路５を各々複数備えているものとする。また、図１では、ＦＡコントローラ１は、２種類の通信経路を備えているが、一例であり、３種類以上の通信経路を備えてもよい。
【００１５】
表示部９は、ＦＡコントローラ１と接続し、ＦＡコントローラ１で汎用命令データが実行された結果または制御命令データが実行された結果に基づく応答データ、後述する制御命令データの優先度を計算する際に使用する指標の情報などを表示するディスプレイである。入力部１０は、後述する設定部２５に対して指標の重みを入力する操作などを行うキーボード、マウスなどの入力インタフェースである。端末装置１１は、パーソナルコンピュータなどの計算機であり、設定部１１１は設定部２５、入力部１１２は入力部１０、表示部１１３は表示部９と同様の構成である。外部記憶媒体１２は、ＵＳＢ（Universal  Serial  Bus）メモリなどの記憶媒体である。通信バス１３は、制御演算部３の制御命令実行部３２とモジュール１４とを繋ぐ高速大容量のデータ通信線である。なお、通信バス１３は、汎用演算部２からアクセスできるようにしてもよいが、この場合、ＦＡ制御に求められる時間的制約を保証できないおそれがある。そのため、ＦＡ制御にかかる制御命令データに基づく制御は、制御命令実行部３２から行う。モジュール１４は、制御命令実行部３２からの制御に従って産業機器などの制御対象機器１５を駆動する。
【００１６】
図１では、ＦＡコントローラ１は、表示部９、入力部１０、端末装置１１および外部記憶媒体１２と直接接続している例を示しているが、有線または無線によるＬＡＮ（Local  Area  Network）部７を介してネットワーク８と接続し、ネットワーク８経由で表示部９、入力部１０、端末装置１１および外部記憶媒体１２と接続してもよい。また、ＦＡコントローラ１は、通信バス１３を介してモジュール１４と接続しているが、ＬＡＮ部７を介してネットワーク８と接続し、ネットワーク８経由でモジュール１４と接続してもよい。
【００１７】
つぎに、汎用演算部２および制御演算部３の構成について説明する。
【００１８】
汎用演算部２は、汎用演算部２または制御演算部３のいずれかの演算部で実行される命令のデータである命令データを記憶する記憶部２１と、記憶部２１で記憶されている命令データのうち、汎用演算部２で実行される汎用命令データを実行する汎用命令実行部２２と、記憶部２１で記憶されている命令データのうち、制御演算部３で実行される制御命令データの優先度を計算する優先度計算部２３と、優先度計算部２３で計算された制御命令データの優先度、および通信経路管理部６で保持している通信経路の情報に基づいて、複数の通信経路から、制御命令データを制御演算部３へ送信する際に使用する通信経路を選択し、選択した通信経路から制御演算部３へ制御命令データを送信する通信経路選択部２４と、優先度計算部２３で制御命令データの優先度を計算する際に使用する複数の指標について、各指標の重みを設定する設定部２５と、を備える。汎用演算部２では、ＦＡコントローラ１が端末装置１１と接続し、端末装置１１から優先度計算部２３に各指標の重みを設定可能な場合、設定部２５を備えない構成にしてもよい。
【００１９】
制御演算部３は、汎用演算部２との間でデータの送受信を行うデータ送受信部３１と、データ送受信部３１で受信された制御命令データを実行し、制御命令データを実行した結果得られた応答のデータである応答データを生成し、応答データをデータ送受信部３１へ出力する制御命令実行部３２と、を備える。なお、図１では、ＦＡコントローラ１において、汎用演算部２の汎用命令実行部２２および設定部２５が表示部９と接続する構成になっているが、一例であり、制御演算部３の制御命令実行部３２が表示部９と接続してもよい。
【００２０】
汎用演算部２の記憶部２１で記憶している命令データ、汎用演算部２の汎用命令実行部２２が汎用命令データを実行する動作、制御演算部３の制御命令実行部３２が制御命令データを実行する動作について説明する。
【００２１】
汎用演算部２において、記憶部２１は、汎用演算部２の汎用命令実行部２２で実行されるすべてのアプリケーション、プログラムなどの汎用命令データを記憶している。また、記憶部２１は、制御演算部３の制御命令実行部３２で実行されるアプリケーション、プログラムなどの制御命令データを記憶している。記憶部２１では、汎用演算部２および制御演算部３が連係する処理についての命令データを、汎用命令データおよび制御命令データとして記憶することができる。
【００２２】
汎用演算部２および制御演算部３が連係する処理には、例えば、汎用演算部２では、汎用命令データに従って画像を取り込む動作を行い、画像の一定領域が変化した場合に、制御演算部３に対して制御対象機器１５の出力を変化させる制御命令データを送信するものがある。また、汎用演算部２および制御演算部３が連係する処理には、汎用演算部２では、制御対象機器１５の動作情報を取得するための制御命令データを制御演算部３へ送信し、制御対象機器１５から応答データとして制御対象機器１５の動作情報を受信し、汎用命令データに従って受信した制御対象機器１５の動作情報を分析し、制御対象機器１５に異常がないかなどの情報を表示部９に表示するものがある。
【００２３】
汎用命令実行部２２は、記憶部２１に記憶されている汎用命令データについて、許容される数の汎用命令データを同時に実行することができる命令実行部である。汎用命令実行部２２は、汎用ＯＳを用いて汎用命令データを実行する。汎用命令実行部２２において汎用命令データを実行するタイミングは、例えば、汎用命令実行部２２または汎用演算部２で備えるタイマに従って一定時間毎に、または、直接またはネットワーク８を介して接続される外部機器からの操作をトリガとして、または、制御演算部３からの割込み通知などをトリガとすることができるが、これらに限定されるものではない。
【００２４】
汎用命令実行部２２は、記憶部２１に記憶されている命令データのうち、汎用命令実行部２２で実行できない制御命令データを優先度計算部２３に入力させる。優先度計算部２３に制御命令データを入力させる方法については、汎用命令実行部２２が記憶部２１から読み出して優先度計算部２３へ出力してもよいし、汎用命令実行部２２が優先度計算部２３に対して記憶部２１から読み出すことを指示してもよい。
【００２５】
また、汎用命令実行部２２は、制御演算部３からの応答データを待つかどうかを指定する応答待ち指定の情報を優先度計算部２３へ出力する。汎用命令実行部２２は、応答待ち指定が有効の場合、制御演算部３から応答データを受信するまでは、汎用命令データにかかる次の処理を実行しない。汎用命令実行部２２は、応答待ち指定が無効の場合、制御演算部３へ制御命令データを送信する処理が終了すると、すぐに次の汎用命令データを実行する。汎用命令実行部２２は、応答データが次の処理で必要な場合は応答待ち指定を有効にし、応答データが次の処理に影響を与えない場合は応答待ち指定を無効とする。これにより、汎用命令実行部２２では、汎用命令データの実行時間を短縮することができる。
【００２６】
制御演算部３では、データ送受信部３１は、汎用演算部２の通信経路選択部２４から送信された制御命令データをリアルタイム通信経路４または非リアルタイム通信経路５を介して受信し、受信した制御命令データを制御命令実行部３２へ出力する。制御命令実行部３２は、データ送受信部３１から取得した制御命令データを実行する命令実行部である。制御命令実行部３２は、制御ＯＳを用いて制御命令データを実行する。制御命令実行部３２が実行する制御命令データによって制御される内容は、通信バス１３を介したモジュール１４へのデータの入出力、通信バス１３およびモジュール１４を介した制御対象機器１５の駆動、制御命令実行部３２の動作情報の取得、制御命令データを実行する際の制御ＯＳの動作変更などである。制御命令実行部３２は、制御命令データを実行した結果である応答データを生成し、応答データをデータ送受信部３１へ出力する。データ送受信部３１は、制御命令実行部３２から入力された応答データを、制御命令データを受信した際の通信経路と同じ通信経路から、汎用演算部２の通信経路選択部２４へ送信する。
【００２７】
つづいて、ＦＡコントローラ１において、汎用演算部２が、制御命令データの優先度に基づいて、制御演算部３へ制御命令データを送信する動作について説明する。図２は、本実施の形態にかかるＦＡコントローラ１において汎用演算部２が制御命令データの優先度に基づいて制御演算部３へ制御命令データを送信する動作を示すフローチャートである。
【００２８】
まず、ＦＡコントローラ１では、優先度計算部２３に対して制御命令データの優先度計算に使用する各指標の重みを設定する（ステップＳ１）。優先度計算部２３に各指標の重みを設定する方法には、汎用演算部２内部の設定部２５から設定する方法、ＦＡコントローラ１と接続する端末装置１１から設定する方法、ＦＡコントローラ１と接続する外部記憶媒体１２を用いる方法があるが、一例として、端末装置１１から設定する方法について詳細に説明する。
【００２９】
図３は、本実施の形態にかかる端末装置１１から優先度計算に使用する各指標の重みを設定する際に表示部１１３に表示される情報の例を示す図である。優先度計算に使用する指標として、具体的に、命令名、アクセス先、および許容遅延時間の３つの指標を使用する場合について説明する。端末装置１１では、ＦＡ制御システムの管理者などから優先度の重みを設定する操作を入力部１１２で受け付けると、設定部１１１が、表示部１１３に図３に示す情報の例として優先度指標設定ツール２０１の画面を表示する。
【００３０】
優先度指標設定ツール２０１には、制御命令データの種別を示す命令種別２０２、優先度計算に使用する指標である制御命令データの命令名２０３、優先度計算に使用する指標である制御命令データのアクセス先２０４、優先度計算に使用する指標である制御命令データの許容遅延時間２０５、設定された各指標の重みの情報の内容をＦＡコントローラ１の優先度計算部２３へ反映、すなわち出力させる設定出力インタフェース２０６、設定された各指標の重みの情報の内容を外部記憶媒体１２へ反映、すなわち出力させる設定出力インタフェース２０７、が表示される。
【００３１】
指標１となる命令名２０３について、制御命令データ毎に重みを設定する。一般に、制御命令データの内容が駆動機器である制御対象機器１５を駆動する場合の制御など、特に即時応答性または定時性が求められる制御命令データを優先度の高い重みとする。モジュール１４の情報を取得する、ＬＥＤを点灯させるといった内容の制御命令データは、駆動機器を対象とする制御命令データよりも時間的制約は厳しくないため、優先度の低い重みとする。なお、優先度が高いほど重みの値を小さくし、優先度が低いほど重みの値を大きくする。以降についても同様とする。
【００３２】
指標２となるアクセス先２０４について、制御命令データが対象とするモジュール１４の種別によって重みを設定する。例えば、制御命令データの対象ユニットが上位監視装置にデータを送信するモジュールなどのベストエフォート型のモジュールの場合、多少の遅れは許容されるため優先度の低い重みとする。制御命令データの対象ユニットが駆動機器の制御に関わる外部機器のＩ／Ｏモジュールなどの場合、優先度の高い重みとする。
【００３３】
指標３となる許容遅延時間２０５について、ＦＡコントローラ１が制御するシステムにおいて、制御命令データを実行する際の最小処理時間に対して許容できる遅延時間を重みとして設定する。例えば、制御命令データの最小処理時間に対して、大きな遅延が許容できない場合は優先度の高い重みとし、大きな遅延が許容できる場合は優先度の低い重みとする。図３の例では、最小処理時間が１０ｍｓのため、対象の制御命令データを実行する際の許容処理時間が１４ｍｓの場合、許容遅延時間、すなわち設定する重みを「１４−１０＝４」とする。
【００３４】
管理者は、表示部１１３に表示される優先度指標設定ツール２０１を参照し、制御命令データについて、入力部１１２を介して設定部１１１に各指標の重みを設定する。設定部１１１では、表示部１１３に表示される優先度指標設定ツール２０１において、管理者から入力部１１２を介して設定出力インタフェース２０６の「実行」が操作されると、管理者によって設定された各指標の重みの情報を、ＦＡコントローラ１の優先度計算部２３へ出力する。優先度計算部２３では、設定部１１１から受け付けた各指標の重みの情報を内蔵する記憶部に記憶する。
【００３５】
なお、端末装置１１からＦＡコントローラ１の優先度計算部２３へ、直接各制御命令データについての重みの情報を出力する場合について説明したが、外部記憶媒体１２経由で行うことも可能である。設定部１１１では、表示部１１３に表示される優先度指標設定ツール２０１において、管理者から入力部１１２を介して設定出力インタフェース２０７の「実行」が操作されると、管理者によって設定された各指標の重みの情報を、外部記憶媒体１２へ出力する。そして、管理者が、各制御命令データについての重みの情報が記憶された外部記憶媒体１２をＦＡコントローラ１へ接続すると、優先度計算部２３は、外部記憶媒体１２から各指標の重みの情報を読み出し、内蔵する記憶部に記憶する。
【００３６】
また、ＦＡコントローラ１では、管理者から直接各制御命令データについて各指標の重みの設定を受け付けることができる。この場合、端末装置１１を用いた説明において、設定部１１１を設定部２５に、入力部１１２を入力部１０に、表示部１１３を表示部９に置き換えることで対応可能である。この場合、図３に示す優先度指標設定ツール２０１の画面において、下部の設定出力インタフェース２０６，２０７の表示は無くてよい。
【００３７】
管理者は、各指標の重みについて、使用するＦＡ制御システム毎に最適化するための設定を行うことができる。例えば、制御対象機器１５のモニタリングが最重要なＦＡ制御システムについて、管理者は、制御対象機器１５の状態を読み出す制御命令データを優先度の高い重みとし、その他の制御命令データを優先度の低い重みとして遅れを許容することで、主目的の処理を遅延させることのないＦＡ制御システムを実現できる。管理者は、優先的に処理したい制御命令データの優先度を高くするように指標の重みを設定する。
【００３８】
設定部１１１は、図３に示す例では、制御命令データの各指標について重みを設定していたが、さらに、各指標の重みを加算して制御命令データの優先度を計算し、計算した優先度の情報もあわせてＦＡコントローラ１の優先度計算部２３へ出力してもよい。具体的に、設定部１１１は、「指標１の重み＋指標２の重み＋指標３の重み」すなわち「５＋２０＋４＝２９」によって制御命令データの優先度を計算する。この場合、ＦＡコントローラ１の優先度計算部２３では、内蔵する記憶部に記憶する情報量が増えるため容量の大きな記憶部が必要となるが、優先度を計算する際の演算量を減らすことができる。
【００３９】
図３に示す例では、３つの指標を用いた場合について説明したが、一例であり、４つ以上の指標を用いてもよいし、特定の指標のみを使用してもよい。また、すべての制御命令データについて、各指標の重みを同じにすることで、ＦＡコントローラ１において制御命令データを指示した順番通りに処理させることも可能である。
【００４０】
図２のフローチャートに戻って、つぎに、ＦＡコントローラ１では、優先度計算部２３は、複数の指標に基づいて、詳細には設定部１１１または設定部２５で設定された複数の指標の重みの情報を用いて、または設定部２５で設定され外部記憶媒体１２を介して取得した複数の指標の重みの情報を用いて、制御命令データの優先度を計算する（ステップＳ２）。優先度計算部２３における優先度計算の処理について詳細に説明する。図４は、本実施の形態にかかる優先度計算部２３における制御命令データの優先度を計算する処理を示すフローチャートである。
【００４１】
まず、優先度計算部２３では、対象の制御命令データを取得する（ステップＳ１１）。優先度計算部２３で対象の制御命令データを取得する方法は、前述のように、記憶部２１から汎用命令実行部２２経由で取得してもよいし、汎用命令実行部２２からの指示に基づいて、優先度計算部２３が記憶部２１から読み出してもよい。なお、優先度計算部２３は、汎用命令実行部２２から、制御命令データについての応答待ち指定の情報を取得する。
【００４２】
優先度計算部２３は、取得した制御命令データについて、設定部１１１などから取得して内蔵する記憶部に記憶されている各指標の重みを読み出す（ステップＳ１２）。具体的に、優先度計算部２３は、取得した制御命令データの内容から、対応する命令名、アクセス先、許容遅延時間の各指標についての重みを読み出す。
【００４３】
優先度計算部２３は、読み出した各指標の重みを加算して、取得した制御命令データの優先度を計算する（ステップＳ１３）。例えば、取得した制御命令データについての各指標の重みが図３に示すものであった場合、優先度計算部２３は、取得した制御命令データの優先度を「指標１の重み＋指標２の重み＋指標３の重み」によって、具体的には「５＋２０＋４＝２９」として求める。
【００４４】
優先度計算部２３は、制御命令データ、計算した制御命令データの優先度の情報、および、汎用命令実行部２２から取得した応答待ち指定の情報を通信経路選択部２４へ出力する（ステップＳ１４）。
【００４５】
図２のフローチャートに戻って、つぎに、ＦＡコントローラ１では、通信経路選択部２４は、優先度計算部２３から取得した制御命令データの優先度の情報と、通信経路管理部６が保持する通信経路の情報を用いて、制御命令データを送信する通信経路を選択する（ステップＳ３）。
【００４６】
ここで、通信経路管理部６が保持する通信経路の情報について説明する。図５は、本実施の形態にかかる通信経路管理部６が保持する通信経路の情報の例を示す図である。通信経路管理部６は、各通信経路について、伝送時間３０１、通信可能サイズ３０２、許容する優先度３０３、専有状況３０４、専有中の処理３０５の情報を保持する記憶部である。図５に示す通信経路管理部６が保持する通信経路の情報は、汎用演算部２の通信経路選択部２４および制御演算部３のデータ送受信部３１の双方から書き込みおよび読み出しが可能である。
【００４７】
伝送時間３０１は、通信経路選択部２４とデータ送受信部３１との間で最小単位のデータ送受信に掛かる時間である。この値が小さいほど高速にデータの送受信が可能であるため、伝送時間が短い通信経路の使用を許容する優先度３０３を高く、図５の例では許容する優先度３０３の値を小さく設定する。
【００４８】
通信可能サイズ３０２は、通信経路選択部２４とデータ送受信部３１との間で送受信可能なデータの最大サイズである。なお、ＦＡコントローラ１において複数の通信経路が物理的には１つの通信経路である場合には、送受信される制御命令データのサイズに基づいた通信経路のサイズで通信経路を分割し、分割された通信経路を使用するよう許容する優先度３０３を設定することで、演算部間の通信を効率良く行うことができる。
【００４９】
許容する優先度３０３は、優先度計算部２３で計算された制御命令データの優先度が許容する優先度３０３で示される優先度よりも高い場合に、対応する通信経路での通信を許容することを示す各通信経路における優先度の閾値である。例えば、通信経路選択部２４では、図５に示す通信経路の情報の例に前述のステップＳ２で計算された優先度が２９の制御命令データを適用すると、優先度が２９の制御命令データは許容する優先度３０３が「２０」よりも優先度が低いため、優先度が２９の制御命令データには許容する優先度３０３が「５０」の通信経路を割り当てる。なお、通信経路選択部２４は、優先度が５０より低い制御命令データについては、許容する優先度３０３が「−」の通信経路を割り当てる。
【００５０】
専有状況３０４は、各通信経路の使用状況を示す。使用されていない通信経路は「０：制御命令データ／応答データなし」とする。通信経路選択部２４から制御データが書き込まれた状態の通信経路は「１：制御命令データセット完了」とする。データ送受信部３１から応答データが書き込まれた通信経路は「２：応答データセット完了」とする。通信経路選択部２４およびデータ送受信部３１が、専有状況３０４の値を更新する。
【００５１】
専有中の処理３０５は、対応する通信経路が使用中の場合に、制御命令データまたは応答データの内容を示す。通信経路選択部２４およびデータ送受信部３１が、専有状況３０４の値を更新する際に、専有中の処理３０５の内容も更新する。
【００５２】
通信経路管理部６において、伝送時間３０１および通信可能サイズ３０２は、ＦＡコントローラ１で使用されているリアルタイム通信経路４および非リアルタイム通信経路５の性能を示す情報であり、各通信経路の性能によって決まる値である。許容する優先度３０３は、管理者が伝送時間３０１および通信可能サイズ３０２に基づいて設定可能な値である。専有状況３０４および専有中の処理３０５は、通信経路選択部２４およびデータ送受信部３１が書き込みを行う。
【００５３】
なお、図５に示す許容する優先度３０３と、リアルタイム通信経路４および非リアルタイム通信経路５との関係については、例えば、許容する優先度３０３が「３」と「２０」に該当する通信経路をリアルタイム通信経路４、許容する優先度３０３が「５０」と「−」に該当する通信経路を非リアルタイム通信経路５としてもよい。また、図５に示す許容する優先度３０３の種類に合わせて、ＦＡコントローラ１内の通信経路の種類を４種類にしてもよい。
【００５４】
また、通信経路管理部６では、図５に示すように、各通信経路について、５つの項目の情報を保持しているが、一例であり、これに限定するものではない。通信経路管理部６では、例えば、通信経路の性能を示す情報である伝送時間３０１および通信可能サイズ３０２のうちいずれか一方の情報、許容する優先度３０３、および専有状況３０４の情報を保持する。この場合でも、通信経路選択部２４は通信経路を選択することができる。
【００５５】
通信経路管理部６では、リアルタイム通信経路４および非リアルタイム通信経路５の通信経路について、通信経路の物理的な実装、通信手段によらず一元的に情報を管理する。汎用演算部２は、リアルタイム通信経路４および非リアルタイム通信経路５について、伝送時間３０１、通信可能サイズ３０２が異なる通信経路として認識し、通信経路の数だけ汎用演算部２から制御演算部３に対して制御命令データを同時に送信することができる。
【００５６】
通信経路選択部２４は、優先度計算部２３から取得した優先度が２９の制御命令データについて、前述のように許容する優先度３０３が「５０」の通信経路を選択する。このとき、通信経路選択部２４は、専有状況３０４が「１」または「２」の通信経路は使用中であることから、通信経路管理部６の専有状況３０４が「０」の通信経路を選択する。なお、通信経路選択部２４では、先に通信経路管理部６の専有状況３０４を確認し、専有状況３０４が「０」の通信経路があることを確認してから、許容する優先度３０３を確認してもよい。また、通信経路選択部２４では、許容する優先度３０３に該当する通信経路が全て使用中、すなわち、許容する優先度３０３に該当する通信経路について専有状況３０４が「１」または「２」の場合、許容する優先度３０３で使用が許容される優先度よりも低い優先度の通信経路を選択してもよい。
【００５７】
通信経路選択部２４は、選択した通信経路を用いて、制御命令データを制御演算部３へ送信する（ステップＳ４）。なお、通信経路選択部２４は、優先度計算部２３から取得した応答待ち指定の情報について、制御命令データに格納して制御演算部３へ送信してもよいし、制御命令データとは別々の状態で制御命令データとともに制御演算部３へ送信してもよい。ここでは、通信経路選択部２４は、応答待ち指定の情報を制御命令データに格納して制御演算部３へ送信する。以降についても同様とする。通信経路選択部２４は、選択した通信経路について、通信経路管理部６の専有状況３０４の欄を「１」に更新し、専有中の処理３０５に制御命令データの内容を書き込む。
【００５８】
なお、汎用演算部２と制御演算部３との間のリアルタイム通信経路４および非リアルタイム通信経路５は、実際にはデータを書き込み可能なメモリである。詳細には、通信経路選択部２４は、選択した通信経路に制御命令データを書き込む。制御演算部３では、データ送受信部３１が、通信経路管理部６の専有状況３０４を確認することで、「１」に更新された通信経路に新たに制御命令データが書き込まれていると判断できる。データ送受信部３１は、通信経路管理部６の専有状況３０４が「１」に更新された通信経路から制御命令データを読み出すことで、汎用演算部２から制御命令データを受信する。
【００５９】
そして、通信経路選択部２４は、制御演算部３へ送信した応答待ち指定の情報について、応答待ち指定が有効の場合（ステップＳ５：Ｙｅｓ）、制御演算部３から応答データを取得して処理を終了する（ステップＳ６）。一方、応答待ち指定が無効の場合（ステップＳ５：Ｎｏ）、通信経路選択部２４は処理を終了する。図２に示すフローチャートにおいて、汎用演算部２から継続的に制御演算部３へ制御命令データを送信する場合、優先度計算部２３では、既に優先度計算に使用する各指標の重みが設定済みの場合はステップＳ１の動作を省略してもよい。
【００６０】
図２に示すステップＳ３〜Ｓ６までの通信経路選択部２４が関係する処理について、制御演算部３のデータ送受信部３１の処理とともに詳細に説明する。図６は、本実施の形態にかかる汎用演算部２の通信経路選択部２４および制御演算部３のデータ送受信部３１との間でデータを送受信する処理を示すフローチャートである。
【００６１】
まず、通信経路選択部２４は、制御命令データを制御演算部３へ送信する通信経路について、使用されていない通信経路があるかどうか確認する（ステップＳ２１）。具体的に、通信経路選択部２４は、通信経路管理部６の専有状況３０４に「０」の通信経路があるかどうかを確認する。使用されていない通信経路がない場合（ステップＳ２１：Ｎｏ）、通信経路選択部２４は、いずれかの通信経路の使用が終わるまで待機する。
【００６２】
使用されていない通信経路がある場合（ステップＳ２１：Ｙｅｓ）、通信経路選択部２４は、使用可能な通信経路について、制御命令データの優先度が許容する優先度３０３以上かどうかを確認する（ステップＳ２２）。具体的に、通信経路選択部２４は、通信経路管理部６の専有状況３０４が「０」の通信経路についての許容する優先度３０３を確認する。制御命令データの優先度が許容する優先度３０３より小さい場合（ステップＳ２２：Ｎｏ）、通信経路選択部２４は、制御命令データの優先度が許容する優先度３０３以上となる通信経路の使用が終わるまで待機する。
【００６３】
制御命令データの優先度が許容する優先度３０３以上の場合（ステップＳ２２：Ｙｅｓ）、通信経路選択部２４は、制御命令データに優先度計算部２３から取得した応答待ち指定の情報を格納し、該当する通信経路に制御命令データを書き込む（ステップＳ２３）。通信経路選択部２４は、書き込みを行った通信経路について、通信経路管理部６の専有状況３０４を「１」に更新する（ステップＳ２４）。
【００６４】
制御演算部３では、データ送受信部３１は、通信経路に制御命令データが書き込まれているかどうかを確認する（ステップＳ３１）。具体的には、データ送受信部３１は、通信経路管理部６の専有状況３０４が「１」に更新された通信経路を確認する。通信経路に制御命令データが書き込まれていない場合（ステップＳ３１：Ｎｏ）、データ送受信部３１は、通信経路に制御命令データの書き込みがあるまで待機する。通信経路に制御命令データが書き込まれていた場合（ステップＳ３１：Ｙｅｓ）、データ送受信部３１は、該当する通信経路から制御命令データを読み出す（ステップＳ３２）。データ送受信部３１は、読み出した制御命令データから応答待ち指定の情報を抽出し、応答待ち指定の情報について、応答待ち指定が有効かどうかを確認する（ステップＳ３３）。
【００６５】
応答待ち指定が有効の場合（ステップＳ３３：Ｙｅｓ）、データ送受信部３１は、制御命令実行部３２へ制御命令データを出力する（ステップＳ３４）。データ送受信部３１は、制御命令実行部３２から、制御命令実行部３２において制御命令データを実行して得られた応答データを取得する（ステップＳ３５）。データ送受信部３１は、通信経路に制御命令実行部３２から取得した応答データを書き込む（ステップＳ３６）。このとき、データ送受信部３１は、制御命令データが書き込まれていた通信経路と同じ通信経路に応答データを書き込む。データ送受信部３１は、通信経路管理部６の専有状況３０４を「２」に更新して（ステップＳ３７）処理を終了する。
【００６６】
一方、応答待ち指定が無効の場合（ステップＳ３３：Ｎｏ）、データ送受信部３１は、通信経路管理部６の専有状況３０４を「０」に更新する（ステップＳ３８）。データ送受信部３１は、制御命令実行部３２へ制御命令データを出力して（ステップＳ３９）処理を終了する。
【００６７】
汎用演算部２の通信経路選択部２４の動作の説明に戻る。通信経路選択部２４は、優先度計算部２３から取得した応答待ち指定の情報について、応答待ち指定が有効かどうかを確認する（ステップＳ２５）。応答待ち指定が有効の場合（ステップＳ２５：Ｙｅｓ）、通信経路選択部２４は、通信経路に応答データが書き込まれているかどうかを確認する（ステップＳ２６）。具体的には、通信経路選択部２４は、制御命令データを書き込んだ通信経路について、通信経路管理部６の専有状況３０４が「２」に更新されているかどうかを確認する。通信経路に応答データが書き込まれていない場合（ステップＳ２６：Ｎｏ）、通信経路選択部２４は、通信経路に応答データが書き込まれるまで待機する。
【００６８】
通信経路に応答データが書き込まれている場合（ステップＳ２６：Ｙｅｓ）、すなわち、制御命令データを書き込んだ通信経路について、通信経路管理部６の専有状況３０４が「２」に更新されている場合、通信経路選択部２４は、該当する通信経路から応答データを読み出す（ステップＳ２７）。通信経路選択部２４は、優先度計算部２３を経由して汎用命令実行部２２へ、読み出した応答データを出力する（ステップＳ２８）。そして、通信経路選択部２４は、応答データを読み出した通信経路について、通信経路管理部６の専有状況３０４を「０」に更新して（ステップＳ２９）処理を終了する。
【００６９】
一方、応答待ち指定が無効の場合（ステップＳ２５：Ｎｏ）、通信経路選択部２４は処理を終了する。
【００７０】
図１に示すＦＡコントローラ１の各構成を実現するハードウェア構成について説明する。図７は、本実施の形態にかかるＦＡコントローラ１のハードウェア構成の例を示す図である。汎用演算部２において、記憶部２１は、メモリ９２によって実現される。汎用命令実行部２２、優先度計算部２３、通信経路選択部２４、および設定部２５は、プロセッサ９１が、メモリ９２に記憶された各構成用のプログラムを実行することにより実現される。制御演算部３において、データ送受信部３１および制御命令実行部３２は、プロセッサ９１が、メモリ９２に記憶された各構成用のプログラムを実行することにより実現される。リアルタイム通信経路４、非リアルタイム通信経路５、および通信経路管理部６は、メモリ９２によって実現される。ＬＡＮ部７は、送信器９３および受信器９４によって実現される。プロセッサ９１、メモリ９２、送信器９３および受信器９４は、システムバス９５により接続されている。複数のプロセッサ９１および複数のメモリ９２が連携して各構成の機能を実行してもよい。また、汎用演算部２および制御演算部３は、メモリに格納されるプログラムを実行するＣＰＵ（Central  Processing  Unit）によって実現される。
【００７１】
以上説明したように、本実施の形態によれば、異なるＯＳで命令を実行する複数の演算部が複数の通信経路で接続されているＦＡコントローラ１において、汎用演算部２では、優先度計算部２３が、制御演算部３へ送信する制御命令データの優先度を計算し、通信経路選択部２４が、優先度の高いリアルタイム性の制御命令データを、高速だがリソースに限りのあるリアルタイム通信経路４に優先して割り当てて制御演算部３へ送信する。また、通信経路選択部２４は、即時応答性が必要ない制御命令データを低速な非リアルタイム通信経路５にのみ割り当てることとした。これにより、ＦＡコントローラ１では、最適な通信経路を選択し、即時応答性または定時性が必要な制御命令データを遅延なく実行することができる。ＦＡコントローラ１では、複数の制御命令データを送信する場合に、時間的制約や重要度の高い制御命令データを優先的に処理することで、制御命令データの処理時間を最適化することができる。
【００７２】
また、ＦＡコントローラ１では、制御命令データの優先度計算において複数の指標を用い、各指標の重みをＧＵＩ（Graphical  User  Interface）ツールによる端末装置１１または外部記憶媒体１２などから設定可能とする。これにより、ＦＡ制御システムごとに異なる通信経路の性能や経路数に合わせて優先する制御命令データを変更し、ＦＡコントローラ１の性能の最適化を図ることができる。
【００７３】
また、ＦＡコントローラ１では、制御演算部３で実行する制御命令データを汎用演算部２の記憶部２１に組み込むことができる。そのため、ＦＡ制御システムの管理者ではない一般のユーザは、ＦＡコントローラ１の内部でどのように命令データが処理されるかを知らなくとも、複雑な計算、モーションやＩ／Ｏのデバイス制御、画像処理、画面出力、監視装置など、また上位通信などを統合した高度なＦＡ制御システムを構築できる。
【００７４】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００７５】
１  ＦＡコントローラ、２  汎用演算部、３  制御演算部、４  リアルタイム通信経路、５  非リアルタイム通信経路、６  通信経路管理部、７  ＬＡＮ部、８  ネットワーク、９，１１３  表示部、１０，１１２  入力部、１１  端末装置、１２  外部記憶媒体、１３  通信バス、１４  モジュール、１５  制御対象機器、２１  記憶部、２２  汎用命令実行部、２３  優先度計算部、２４  通信経路選択部、２５，１１１  設定部、３１  データ送受信部、３２  制御命令実行部。
【図１】
2016189709.tif 000003
【図２】
2016189709.tif 000004
【図３】
2016189709.tif 000005
【図４】
2016189709.tif 000006
【図５】
2016189709.tif 000007
【図６】
2016189709.tif 000008
【図７】
2016189709.tif 000009
【手続補正書】
【提出日】平成28年12月21日(2016.12.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の演算部と、
第２の演算部と、
前記第１の演算部と前記第２の演算部との間でデータを送受信する際の経路となる複数の通信経路と、
前記複数の通信経路の情報を保持する通信経路管理部と、
を備え、
前記第１の演算部は、
前記第１の演算部または前記第２の演算部のいずれかの演算部で実行される命令のデータである命令データを記憶する記憶部と、
前記第２の演算部で実行される命令データの優先度を計算する優先度計算部と、
前記優先度計算部で計算された優先度の情報、および前記通信経路管理部で保持する前記複数の通信経路の情報に基づいて、前記複数の通信経路から、前記第２の演算部へ命令データを送信する際に使用する通信経路を選択する通信経路選択部と、
を備え、
前記複数の通信経路には、送信速度が低速な非リアルタイム通信経路および前記非リアルタイム通信経路よりも送信速度が高速なリアルタイム通信経路があり、
前記通信経路選択部は、非リアルタイム性の命令データよりも優先度の高い命令データであるリアルタイム性の命令データを前記リアルタイム通信経路に優先的に割り当てる、
ことを特徴とするコントローラ。
【請求項２】
前記優先度計算部は、複数の指標に基づいて、前記第２の演算部で実行される命令データの優先度を計算する、
ことを特徴とする請求項１に記載のコントローラ。
【請求項３】
前記第１の演算部は、
前記優先度計算部で使用する各指標の重みを設定する設定部、
を備え、
前記優先度計算部は、前記設定部で設定された各指標の重みの情報を用いて、前記第２の演算部で実行される命令データの優先度を計算する、
ことを特徴とする請求項２に記載のコントローラ。
【請求項４】
前記コントローラは、前記優先度計算部で使用する各指標の重みを設定する設定部を有する計算機と接続し、
前記優先度計算部は、前記設定部で設定された各指標の重みの情報を用いて、前記第２の演算部で実行される命令データの優先度を計算する、
ことを特徴とする請求項２に記載のコントローラ。
【請求項５】
前記コントローラは、前記優先度計算部で使用する各指標の重みが記憶された外部記憶媒体と接続し、
前記優先度計算部は、前記外部記憶媒体に記憶されている各指標の重みの情報を用いて、前記第２の演算部で実行される命令データの優先度を計算する、
ことを特徴とする請求項２に記載のコントローラ。
【請求項６】
前記通信経路管理部は、各通信経路について、通信経路の性能を示す情報、許容する優先度、および専有状況の情報を保持する、
ことを特徴とする請求項１から５のいずれか１つに記載のコントローラ。
【請求項７】
前記第２の演算部は、
前記命令データを実行し、前記命令データを実行した結果である応答データを生成する命令実行部と、
前記複数の通信経路から前記命令データを受信して前記命令実行部へ出力し、前記命令実行部で生成された前記応答データを、前記命令データを受信した通信経路から前記第１の演算部へ送信するデータ送受信部と、
を備えることを特徴とする請求項１から６のいずれか１つに記載のコントローラ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上述した課題を解決し、目的を達成するために、本発明のコントローラは、第１の演算部と、第２の演算部と、第１の演算部と第２の演算部との間でデータを送受信する際の経路となる複数の通信経路と、複数の通信経路の情報を保持する通信経路管理部と、を備える。第１の演算部は、第１の演算部または第２の演算部のいずれかの演算部で実行される命令のデータである命令データを記憶する記憶部と、第２の演算部で実行される命令データの優先度を計算する優先度計算部と、優先度計算部で計算された優先度の情報、および通信経路管理部で保持する複数の通信経路の情報に基づいて、複数の通信経路から、第２の演算部へ命令データを送信する際に使用する通信経路を選択する通信経路選択部とを備え、複数の通信経路には、送信速度が低速な非リアルタイム通信経路および非リアルタイム通信経路よりも送信速度が高速なリアルタイム通信経路があり、通信経路選択部は、非リアルタイム性の命令データよりも優先度の高い命令データであるリアルタイム性の命令データをリアルタイム通信経路に優先的に割り当てる。
【国際調査報告】
2016189709.tif 000010
2016189709.tif 000011