(57)【要約】  高速な応答を必要するアプリケーションに対して優先的に応答できるようにするために、アプリケーション毎のコネクションを介して上位装置からの要求の受信および上位装置への応答の送信を行うコネクション部２１と、コネクション部２１が受信した要求をコネクション毎に一時記憶する通信バッファ２５と、上位装置から要求されたデバイス値を入出力メモリ領域から読み出すシステム主要部（要求処理部）２３と、コネクション毎の優先度の設定を記憶する優先度記憶領域２６と、通信バッファ２５から要求を逐次取得してシステム主要部２３に転送し、システム主要部２３が読み出したデバイス値を応答としてコネクション部２１に転送する通信スケジューリング部２２と、を備え、通信スケジューリング部２２は、優先度記憶領域２６に設定されている優先度が高いコネクションほど高い頻度で要求を取得する。
2012056930.tif 000002
【特許請求の範囲】
【請求項１】
デバイス値を格納する入出力メモリ領域を備え、接続されている上位装置からデバイス値の要求を受信したとき、要求されたデバイス値を応答するプログラマブルコントローラであって、
前記上位装置で実行されているアプリケーション毎にコネクションを確立し、前記確立したアプリケーション毎のコネクションを介して前記上位装置からの要求の受信および前記上位装置への応答の送信を行うコネクション部と、
前記コネクション部が受信した要求をコネクション毎に一時記憶する通信バッファと、
前記上位装置から要求されたデバイス値を前記入出力メモリ領域から読み出すシステム主要部（要求処理部）と、
コネクション毎の優先度の設定を記憶する優先度記憶領域と、
前記通信バッファから要求を逐次取得して前記取得した要求を前記要求処理部に転送し、前記転送した要求に対応する前記要求処理部が読み出したデバイス値を応答として前記コネクション部に転送する通信スケジューリング部と、
を備え、
前記通信スケジューリング部は、前記優先度記憶領域に設定されている優先度が高いコネクションほど高い頻度で前記通信バッファから要求を取得する、
ことを特徴とするプログラマブルコントローラ。
【請求項２】
経過時間をカウントする計時部と、
間隔時間の設定を記憶する設定時間記憶領域と、
をさらに備え、
前記通信スケジューリング部は、前記計時部のカウント値を参照して前記設定時間記憶領域に設定されている間隔時間が経過したか否かを判定し、前記間隔時間が経過したとき、前記優先度記憶領域に特定の優先度が設定されているコネクションにかかる要求を前記通信バッファから取得する、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記コネクション部は、接続相手の上位装置のユーザにより指定されたポートと前記ユーザにより指定された自プログラマブルコントローラのポートとの間でアプリケーション毎のコネクションを確立する、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項４】
前記入出力メモリ領域は、前記上位装置への応答回数にかかる少なくとも優先度毎の状態情報が格納される応答回数デバイスを備え、
前記上位装置への応答回数を少なくとも優先度毎に記憶する応答回数記憶領域と、
前記応答回数記憶領域に記憶されている応答回数に基づいて状態情報を算出して、前記算出した状態情報を前記応答回数デバイスに格納する状態情報算出部と、
をさらに備える、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項５】
前記状態情報は、単位時間当たりの応答回数である、
ことを特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項６】
前記応答回数記憶領域は、前記上位装置への応答回数をコネクション毎に記憶し、
前記応答回数デバイスは、コネクション毎の状態情報が格納される、
ことを特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項７】
前記特定の優先度が設定されているコネクションに関してタイムアウトエラーが発生した場合、前記設定時間記憶領域が記憶している間隔時間の設定値をより小さい値に再設定する設定時間再設定部をさらに備える、
ことを特徴とする請求項２に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用機器を制御するプログラマブルコントローラ（ＰＬＣ）に関する。
【背景技術】
【０００２】
ＰＬＣには、ネットワークを介してパーソナルコンピュータ（以下、パソコン）やプログラマブル表示器など上位装置を接続できるものがある。ネットワークの通信方式としては、例えばイーサネット（登録商標）が用いられる。接続された上位装置は種々のアプリケーションを用いてＰＬＣにアクセスを行う。【０００３】
ここで、アプリケーションの種類によって必要とする応答速度が異なる。例えば、プログラミング表示器を構成するアプリケーションは、ＰＬＣのデバイス値をリアルタイムにモニタリングする性質上、高速な応答が必要となる。また、１dayなどある程度長いスパンの周期毎に生産データなどを収集する生産管理ソフトは、リアルタイムモニタリングを行うアプリケーションほどは高速な応答を必要としない。このように、ＰＬＣに接続するアプリケーションには、高速な応答を必要とするものやそうでないものがある。【０００４】
しかしながら、高速高精度の制御を行うことが求められるＰＬＣでは、上位装置との間の通信に割り当てられるＣＰＵ時間が限られている。したがって、ＰＬＣ側で高速な応答を要求するアプリケーションに対して優先的に応答できるようにする仕組みの実装が求められる。【０００５】
この要望に関連する技術として、例えば特許文献１には、通信装置の物理ポートに対して伝送優先度を設定できる技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１０９５６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の技術によれば、物理ポートに対して優先度を設けるようになっているので、例えば１つのコンピュータ上で動作する複数のアプリケーションが通信する場合、当該複数のアプリケーションは全て同一の優先度が適用されてしまうという問題があった。【０００８】
本発明は、上記に鑑みてなされたものであって、高速な応答を必要とするアプリケーションに対して優先的に応答できるプログラマブルコントローラを得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、デバイス値を格納する入出力メモリ領域を備え、接続されている上位装置からデバイス値の要求を受信したとき、要求されたデバイス値を応答するプログラマブルコントローラであって、前記上位装置で実行されているアプリケーション毎にコネクションを確立し、前記確立したアプリケーション毎のコネクションを介して前記上位装置からの要求の受信および前記上位装置への応答の送信を行うコネクション部と、前記コネクション部が受信した要求をコネクション毎に一時記憶する通信バッファと、前記上位装置から要求されたデバイス値を前記入出力メモリ領域から読み出す要求処理部と、コネクション毎の優先度の設定を記憶する優先度記憶領域と、前記通信バッファから要求を逐次取得して前記取得した要求を前記要求処理部に転送し、前記転送した要求に対応する前記要求処理部が読み出したデバイス値を応答として前記コネクション部に転送する通信スケジューリング部と、を備え、前記通信スケジューリング部は、前記優先度記憶領域に設定されている優先度が高いコネクションほど高い頻度で前記通信バッファから要求を取得する、ことを特徴とする。
【発明の効果】
【００１０】
本発明にかかるプログラマブルコントローラは、高い優先度が設定されたコネクションにかかる通信処理ほど高い頻度で実行するので、高速な応答を必要するアプリケーションに対して優先的に応答できるという効果を奏する。【００１１】
また、本発明にかかるプログラマブルコントローラは、高速な応答を要求するアプリケーションがある一方、低速な応答を許容するアプリケーションが存在する場合、サービス処理の実行時間を少なくしても、高速な応答を要求するアプリケーションとのコネクションに高い優先度を設定すれば、高速な応答を要求するアプリケーションに対して、高速に応答できるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１のＰＬＣの使用の様態を示す図である。
【図２】図２は、比較例にかかるＰＬＣにおける上位装置との間の通信処理の特徴を説明するフローチャートである。
【図３】図３は、実施の形態１のＰＬＣの通信処理の特徴を説明するフローチャートである。
【図４】図４は、実施の形態１のＰＬＣのハードウェア構成例を説明する図である。
【図５】図５は、実施の形態１のＰＬＣの機能構成を説明する図である。
【図６】図６は、優先度情報のデータ構造の一例を示す図である。
【図７】図７は、優先度情報の作成画面の一例を示す図である。
【図８】図８は、実施の形態１のＰＬＣの動作を説明するフローチャートである。
【図９】図９は、実施の形態２のＰＬＣの機能構成を説明する図である。
【図１０】図１０は、実施の形態２のＰＬＣの動作を説明するフローチャートである。
【図１１】図１１は、実施の形態３のＰＬＣの機能構成を説明する図である。
【図１２】図１２は、実施の形態３のＰＬＣの動作を説明するフローチャートである。
【図１３】図１３は、実施の形態３における通信処理のタイムラインを説明する図である。
【発明を実施するための形態】
【００１３】
以下に、本発明にかかるＰＬＣの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態１．
図１は、本発明にかかる実施の形態１のＰＬＣの使用の様態を示す図である。図示するように、ＰＬＣ１は、ネットワークハブ２を介してパソコンが複数（ここでは２台のパソコン３ａ、３ｂ）にネットワークを介して接続されている。ネットワークの通信方式には例えばイーサネット（登録商標）が採用される。そして、パソコン３ａではアプリケーションａとアプリケーションｂとが実行されており、パソコン３ｂではアプリケーションｃが実行されている。アプリケーションａ、ｂ、ｃは、ＰＬＣ１に対して要求を発行し、ＰＬＣ１は要求発行元に対して応答を返す。要求とは、デバイス値の読み出し要求であり、応答とは、自身が備える入出力メモリ領域から読み出した、読み出し要求されたデバイス値である。すなわち、パソコン３ａ、３ｂ（アプリケーションａ、ｂ、ｃ）はＰＬＣ１の上位装置として機能する。なお、ＰＬＣ１の上位装置として機能する装置には、パソコンのほかには、プログラマブル表示器などがある。
【００１５】
図２は、実施の形態１と比較されるＰＬＣにおける上位装置との間の通信処理の特徴を説明するフローチャートである。通信処理とは、より詳しくは、ＰＬＣの通信バッファに蓄積された上位装置からの要求を読み出して応答を返す動作をいう。なお、このフローチャートに示す例を比較例ということとする。
【００１６】
比較例によれば、ＰＬＣでは、ラダー実行処理、エンド処理、およびサービス処理により構成される１スキャンにかかる処理が、ステップＳ１〜Ｓ３、ステップＳ４〜Ｓ６、ステップＳ７〜Ｓ９のようにサイクリックに実行される。ステップＳ７〜Ｓ９のスキャンの次はステップＳ１〜Ｓ３のスキャンが実行される。ラダー実行処理（ステップＳ１、Ｓ４、Ｓ７）においてはユーザプログラムが実行され、エンド処理（ステップＳ２、Ｓ５、Ｓ８）においてはユーザプログラムの演算結果を入出力メモリ領域に反映させる処理が実行される。サービス処理（ステップＳ３、Ｓ６、Ｓ９）においては、上位装置との通信処理が実行される。
【００１７】
サービス処理に割り当てられているＣＰＵ時間は一定時間に限られている。したがって、ここでは、上位装置のアプリケーションとの間で１６個の接続（コネクション）がなされている場合、１回目のスキャンのサービス処理（ステップＳ３）で１６個のコネクションのうちの５つのコネクション（コネクションＮｏ．１〜５）にかかる通信処理がなされ、２回目のスキャンのサービス処理（ステップＳ６）で次の５つのコネクション（コネクションＮｏ．６〜１０）にかかる通信処理がなされ、３回目のサービス処理（ステップＳ９）において最後の６つのコネクション（コネクションＮｏ．１１〜１６）にかかる通信処理がなされる。このように、比較例によれば、複数スキャンによって全てのコネクションの通信処理が一通り完了する。また、各コネクションに対して同じ頻度で通信処理が実行される。
【００１８】
前述のように、ＰＬＣ１に接続されるアプリケーション毎に必要とする通信速度が異なる。しかしながら、図２の比較例では、どのアプリケーションに対しても３スキャンに１回の頻度で通信処理を行うので、全アプリケーションに対して同じ応答速度で通信を行うこととなってしまう。そこで、本発明の実施の形態１では、アプリケーション毎に設定された優先度に応じて通信処理を行う頻度を変化させ、結果として応答速度を変化させることができるようにした。
【００１９】
図３は、本発明の実施の形態１の通信処理の特徴を説明するフローチャートである。図示するように、本発明の実施の形態１によれば、比較例と同じく、各スキャンでラダー実行処理、エンド処理、およびサービス処理が実行される。そして、コネクション毎に３段階の優先度が設定される。ここでは、コネクションＮｏ．１および１６により接続されるアプリケーションに対しては優先度「高」、コネクションＮｏ．２および３により接続されるアプリケーションに対しては優先度「中」、コネクションＮｏ．６により接続されるアプリケーションに対しては優先度「低」が設定されている。そして、優先度「高」のコネクションにかかる通信処理は、３回のスキャンのうちの２回のスキャンにおけるサービス処理（ステップＳ１３、１６）で実行され、優先度「中」のコネクションにかかる通信処理は３回のスキャンのうちの１回のスキャンにおけるサービス処理（ステップＳ１９）で実行される。そして、優先度「低」のコネクションにかかる通信処理は、ユーザにより予め設定された時間間隔毎にサービス処理において実行される（ここではステップＳ１９のサービス処理で実行されている）。このように、実施の形態１では、接続機器上で動作しているアプリケーションとの間の通信処理が夫々予め設定された優先度に基づいた頻度で実行され、優先度が高く設定されたアプリケーションほど高速に応答を返すことができるようになっている。
【００２０】
図１の例では、ＰＬＣ１には、アプリケーションａ、ｂ、ｃに対する通信優先度として、高、低、中が夫々設定されている。ＰＬＣ１は、優先度高のアプリケーションａとの間で最高頻度で通信処理を行い、優先度中のアプリケーションｃとの間でアプリケーションａよりも低い頻度で通信処理を行う。また、ＰＬＣ１は、優先度低のアプリケーションｂとの間で、アプリケーションｃの通信処理の間隔よりも低い、予めユーザにより設定された時間の間隔（間隔時間）で通信処理を実行する。
【００２１】
図４は、実施の形態１のＰＬＣ１のハードウェア構成例を説明する図である。図示するように、ＰＬＣ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、および通信インタフェース（Ｉ／Ｆ）１４を備えた、通常のコンピュータと同様の構成を備えている。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３および通信Ｉ／Ｆ１４は夫々バスラインを介して接続されている。
【００２２】
ＲＯＭ１２は、ＰＬＣ１のシステムプログラム１５およびユーザが作成したユーザプログラム１６が格納されている。システムプログラム１５は、ＰＬＣ１のリソース管理の一環として、上述のサービス処理中の通信処理の優先度管理を実行する。ユーザプログラム１６は、ＣＰＵ１１によってラダー実行処理中に実行される。
【００２３】
ＲＡＭ１３は、プログラム展開領域、ワークエリア領域、入出力メモリ領域などが確保されている。
【００２４】
ＣＰＵ１１は、システムプログラム１５およびユーザプログラム１６を実行する。具体的には、システムプログラム１５およびユーザプログラム１６は、ＲＯＭ１２から読み出されてＲＡＭ１３に確保されたプログラム展開領域に展開される。ＣＰＵ１１は、ＲＡＭ１３に展開されたシステムプログラム１５を実行することによって、後述の機能を実現して、サービス処理において優先度に基づく通信処理を実行する。また、ラダー実行処理において、ＣＰＵ１１は、ＲＡＭ１３に展開されたユーザプログラム１６を実行する。ＣＰＵ１１は、エンド処理を実行することによって入出力メモリ領域に格納されたデバイス値の入出力を実行する。
【００２５】
通信Ｉ／Ｆ１４は、ＰＬＣ１がネットワークと接続するための接続インタフェースであって、ネットワークコントローラユニットや物理的なコネクタを総称したものである。
【００２６】
図５は、システムプログラム１５の実行により実現される本発明の実施の形態１のＰＬＣ１の機能構成を説明する図である。図示するように、ＰＬＣ１は、コネクション部２１、通信スケジューリング部２２、システム主要部（要求処理部）２３、計時部２４、優先度記憶領域２６および設定時間記憶領域２７を備えている。コネクション部２１、通信スケジューリング部２２、システム主要部２３、計時部２４、優先度記憶領域２６および設定時間記憶領域２７はＲＡＭ１３内に形成される。また、コネクション部２１は、通信バッファ２５を備えている。なお、通信Ｉ／Ｆ１４はメモリやレジスタなどの記憶装置を具備し、コネクション部２１は当該記憶装置を通信バッファ２５として使用するようにしてもよい。
【００２７】
システム主要部２３は、ＰＬＣ１のリソース管理を含む基本的な制御を実行する。ここでは特に、システム主要部２３は、コネクション部２１が受信した要求によって要求されたデバイス値をＲＡＭ１３内の入出力メモリ領域から読み出す。
【００２８】
通信バッファ２５は、上位装置との間の通信のためのバッファメモリである。上位装置からの要求は当該通信バッファ２５に一時記憶（バッファリング）される。
【００２９】
コネクション部２１は、接続される上位装置のインターネットプロトコル（ＩＰ）アドレスおよびポート番号と、自ＰＬＣ１のポート番号と、を対応づけてコネクションを確立するとともに、上位装置からの要求の通信バッファ２５へのバッファリングおよびシステム主要部２３が生成した上位装置への応答の送信をコネクション毎に実行する。コネクションの確立のための通信プロトコルには、ＢＳＤソケットなど一般的な通信プロトコルを採用することができるし、専用の通信プロトコルを作成して採用することもできる。また、今後開発されるどのような通信プロトコルでも採用することができる。
【００３０】
優先度記憶領域２６は、コネクション毎の優先度を定義した情報（優先度情報）が設定される。優先度情報は、ユーザによって例えばプログラミング装置などを用いて設定されるものである。図６は、優先度記憶領域２６に格納される優先度情報のデータ構造の一例を示す図である。図示するように、優先度情報２８は、コネクションの識別番号と優先度とがコネクション毎に対応づけたデータ構造を備えている。
【００３１】
図７は、プログラミング装置における優先度情報２８の作成画面の一例を示す図である。図示するように、作成画面例では、プロトコル、自局（自ＰＬＣ１）のポート番号、交信相手（接続される上位装置）のＩＰアドレス、交信相手のポート番号（上位装置上で実行されるアプリケーションが使用するポート番号）、および優先度を記入するフィールドを備えたテーブルが表示されている。ユーザは、本テーブルに所望の値の入力を行うことにより、１６個までのコネクションとコネクション毎の優先度とを設定することができる。ＰＬＣ１では、当該作成画面に入力された情報に基づいて優先度情報２８が登録され、コネクション部２１がコネクションを確立する。
【００３２】
設定時間記憶領域２７は、優先度「低」のコネクションにかかる通信処理を実行する間隔時間の設定を記憶する。当該間隔時間は、優先度などと同様にプログラミング装置などにより設定される。
【００３３】
計時部２４は、経過時間をカウントする。
【００３４】
通信スケジューリング部２２は、サービス処理において、優先度記憶領域２６が記憶する優先度情報２８を参照して、又は計時部２４のカウント値を参照して設定時間記憶領域２７に設定された間隔時間が経過したことを確認して、通信処理を実行するコネクションを選択する。そして、通信バッファ２５から前記選択したコネクションにかかる要求を取得し、取得した要求をシステム主要部２３へ転送する。また、通信スケジューリング部２２は、通信バッファ２５からのシステム主要部２３へ転送した要求に対応してシステム主要部２３が読み出したデバイス値を応答としてコネクション部２１へ転送する。
【００３５】
図８は、本発明の実施の形態１のＰＬＣ１の動作を説明するフローチャートである。図示するように、ＰＬＣ１がユーザプログラム１６にかかる動作（ＲＵＮ）を開始すると、まず、通信スケジューリング部２２は、優先度情報２８を参照して全コネクションの優先度を、設定時間記憶領域２７を参照して設定された間隔時間を、夫々取得する（ステップＳ２１）。なお、ＰＬＣ１のＲＵＮが開始されると、コネクション部２１が上位装置との間でコネクションを確立するが、ここではその動作の説明を省略している。また、ここでは設定時間記憶領域２７には間隔時間として１０ｓｅｃが設定されているものとする。
【００３６】
ステップＳ２２からステップＳ３２までのループ処理は、サービス処理において１つ以上のスキャンに分けて実行される。１スキャンの中で通信処理に割り当てられているＣＰＵ時間はユーザの所望の時間に限られているからである。ステップＳ２２において、通信スケジューリング部２２は、優先度「高」のコネクションにかかる要求を通信バッファ２５から１つ取得して（ステップＳ２２）、システム主要部２３へ渡す（ステップＳ２３）。通信スケジューリング部２２は、システム主要部２３から渡した要求に対応する応答を受け取ると、受信した応答をコネクション部２１へ転送し、コネクション部２１は転送されてきた応答を上位装置へ送信する（ステップＳ２４）。
【００３７】
そして、通信スケジューリング部２２は、優先度「高」のコネクションにかかる通信処理を全て実行したか否かを判定し（ステップＳ２５）、未実行の通信処理がある場合（ステップＳ２５、Ｎｏ）、ステップＳ２２へ移行する。
【００３８】
優先度「高」のコネクションにかかる通信処理を全て実行した場合（ステップＳ２５、Ｙｅｓ）、通信スケジューリング部２２は、優先度「高」のコネクションにかかる通信処理を全て２回ずつ実行したか否かを判定し（ステップＳ２６）、全て２回ずつの実行を完了していない場合（ステップＳ２６、Ｎｏ）、ステップＳ２２へ移行する。
【００３９】
優先度「高」のコネクションにかかる通信処理を全て２回ずつ実行した場合（ステップＳ２６、Ｙｅｓ）、通信スケジューリング部２２は、優先度「中」のコネクションにかかる要求を１つ取得する（ステップＳ２７）。そして、通信スケジューリング部２２は、取得した要求をシステム主要部２３へ渡す（ステップＳ２８）。通信スケジューリング部２２は、システム主要部２３から渡した要求に対応する応答を受け取ると、受信した応答をコネクション部２１へ転送し、コネクション部２１は転送されてきた応答を上位装置へ送信する（ステップＳ２９）。
【００４０】
そして、通信スケジューリング部２２は、優先度「中」のコネクションにかかる通信処理を全て実行したか否かを判定し（ステップＳ３０）、実行を完了していない場合（ステップＳ３０、Ｎｏ）、ステップＳ２７へ移行する。
【００４１】
優先度「中」のコネクションにかかる通信処理を全て実行した場合（ステップＳ３０、Ｙｅｓ）、通信スケジューリング部２２は、計時部２４のカウント値を参照して、優先度「低」のコネクションにかかる通信処理を最後に実行してから１０秒が経過したか否かを判断する（ステップＳ３１）。１０秒が経過していない場合（ステップＳ３１、Ｎｏ）、ステップＳ２２へ移行する。
【００４２】
優先度「低」のコネクションにかかる通信処理を最後に実行してから１０秒が経過した場合（ステップＳ３１、Ｙｅｓ）、通信スケジューリング部２２は、優先度「低」のコネクションにかかる要求を１つ取得する（ステップＳ３２）。そして、通信スケジューリング部２２は、取得した要求をシステム主要部２３へ渡す（ステップＳ３３）。通信スケジューリング部２２は、システム主要部２３から渡した要求に対応する応答を受け取ると、受け取った応答をコネクション部２１へ転送し、コネクション部２１は転送されてきた応答を上位装置へ送信する（ステップＳ３４）。
【００４３】
そして、通信スケジューリング部２２は、優先度「低」のコネクションにかかる通信処理を全て実行したか否かを判定し（ステップＳ３５）、実行を完了していない場合（ステップＳ３５、Ｎｏ）、ステップＳ３２へ移行する。優先度「低」のコネクションにかかる通信処理を全て実行した場合（ステップＳ３５、Ｙｅｓ）、ステップＳ２２へ移行する。
【００４４】
なお、以上の説明においては、優先度を「高」、「中」、「低」の３段階に設定できるものとして説明したが、３段階以外の複数段階の優先度を設定できるようにしても構わない。
【００４５】
また、優先度が「低」に設定されたコネクションにかかる通信処理の頻度は間隔時間の設定により規定されるようにしているが、「低」以外の他の優先度にかかるコネクションも同様に間隔時間の設定により頻度を規定できるようにしても構わない。
【００４６】
また、全ての優先度にかかるコネクションを間隔時間の設定ではなく以上に説明した優先度が「高」および「中」のコネクションと同様に通信処理の回数により頻度を規定するようにしても構わない。すなわち、例えば、優先度が「高」のコネクションにかかる通信処理を３回ずつ実行し、優先度が「中」のコネクションにかかる通信処理を２回ずつ実行し、優先度が「低」のコネクションにかかる通信処理を１回ずつ実行するようにする。
【００４７】
このように、本発明の実施の形態１によれば、アプリケーション毎のコネクションを介して上位装置からの要求の受信および上位装置への応答の送信を行うコネクション部２１と、コネクション部２１が受信した要求をコネクション毎に一時記憶する通信バッファ２５と、上位装置から要求されたデバイス値を入出力メモリ領域から読み出すシステム主要部（要求処理部）２３と、コネクション毎の優先度の設定を記憶する優先度記憶領域２６と、通信バッファから要求を逐次取得して要求処理部２３に転送し、システム主要部２３が読み出したデバイス値を応答としてコネクション部２１に転送する通信スケジューリング部２２と、を備え、通信スケジューリング部２２は、優先度記憶領域２６に設定されている優先度が高いコネクションほど高い頻度で通信バッファ２５から要求を取得する、ように構成したので、高い優先度が設定されたコネクションにかかる通信処理ほど高い頻度で実行するので、高速な応答を必要とするアプリケーションに対して優先的に応答できるようになる。
【００４８】
また、経過時間をカウントする計時部２４と、間隔時間の設定を記憶する設定時間記憶領域２７と、をさらに備え、通信スケジューリング部２２は、計時部２４のカウント値を参照して設定時間記憶領域２７に設定されている間隔時間が経過したか否かを判定し、間隔時間が経過したとき、優先度記憶領域２６に特定の優先度が設定されているコネクションにかかる要求を通信バッファ２５から取得する、ように構成したので、ユーザは、特定のアプリケーションに対して所望の時間間隔で通信処理を実行することができるようになる。
【００４９】
実施の形態２．
実施の形態２においては、各アプリケーションのコネクションにかかる通信処理状況を定量的に知ることができるように、ＰＬＣは、各優先度のコネクションにかかる通信要求に対する時間当たりの応答回数を入出力メモリ領域にデバイス値として記録する。ユーザは、プログラマブル表示器などを用いて当該デバイス値を参照することによって、着目したアプリケーションに関して所望の優先度による通信処理が行われていることを確認することができる。
【００５０】
図９は、実施の形態２のＰＬＣの機能構成を説明する図である。なお、実施の形態１と同じ構成要素には同一の符号を付し、重複する説明を省略する。
【００５１】
図９に示すように、実施の形態２のＰＬＣ４は、コネクション部４１、通信スケジューリング部４２、システム主要部（要求処理部）２３、計時部２４、優先度記憶領域２６、設定時間記憶領域２７、入出力メモリ領域４３を備えている。コネクション部４１は、通信バッファ２５および応答回数記憶領域４４を備えている。
【００５２】
応答回数記憶領域４５は、メモリやレジスタなどの記憶装置によって構成され、コネクション毎の応答回数を記憶する。なお、応答回数記憶領域４５が配置される位置は、通信バッファ２５と同様、特定の位置に限定されない。
【００５３】
入出力メモリ領域４３は、ＲＡＭ１３内に確保されており、応答回数にかかる状態情報が格納される応答回数デバイス４４が割り当てられている。応答回数デバイス４４には、コネクション毎に状態情報が格納される。状態情報とは、ここでは、各コネクションにかかる単位時間当たりの応答回数であるものとする。応答回数デバイス４４は、システム主要部２３によって更新される。なお、入出力メモリ領域４３には、応答回数デバイス４４のほかに、ユーザプログラム１６にかかるデバイス（前述のエンド処理によって更新されるデバイス）が割り当てられているが、ここでは図示を省略している。
【００５４】
コネクション部４１は、実施の形態1と同様の動作の他に、応答回数記憶領域４５の記憶値の管理を実行する。具体的には、コネクション部４１は、応答を上位装置に送信する毎に、応答回数記憶領域４５に記録されている応答先のコネクションにかかる応答回数をインクリメントする。
【００５５】
通信スケジューリング部４２は、実施の形態１と同様の動作の他に、応答回数記憶領域４５の記憶値に基づいて状態情報（ここでは単位時間当たりの応答回数）を算出し、当該算出した状態情報を応答回数デバイス４４に格納する状態情報算出部として機能する。ここでは、応答回数デバイス４４には、コネクション毎の状態情報が格納されるとしているので、通信スケジューリング部４２は、状態情報をコネクション毎に算出する。
【００５６】
図１０は、実施の形態２のＰＬＣ４の動作を説明するフローチャートである。なお、ここでは、優先度記憶領域２６に格納されている優先度情報および設定時間記憶領域２７に格納されている間隔時間の設定値は実施の形態１と同様とする。すなわち、優先度「高」にかかる通信処理は３回のスキャンのうちの２回のスキャンにおけるサービス処理で実行され、優先度「中」のコネクションにかかる通信処理は３回のスキャンのうちの１回のスキャンにおけるサービス処理で実行される。そして、優先度「低」のコネクションにかかる通信処理は１０ｓｅｃ毎に実行される。
【００５７】
通信スケジューリング部４２は、ＰＬＣ４がユーザプログラム１６にかかる動作（ＲＵＮ）を開始すると、まず、通信スケジューリング部４２は、優先度情報２８を参照して全コネクションの優先度を、設定時間記憶領域２７を参照して設定された間隔時間を、夫々取得する（ステップＳ４１）。そして、コネクション部４１に指示して、各コネクションにかかる通信要求に対する応答回数を記憶する応答回数記憶領域４５の初期化を実行させる（ステップＳ４２）。
【００５８】
次に、通信スケジューリング部４２は、優先度「高」のコネクションにかかる要求を通信バッファ２５から一つ取得し（ステップＳ４３）、取得した要求をシステム主要部２３に渡す（ステップＳ４４）。その後、通信スケジューリング部４２はシステム主要部２３から受信した要求の応答を、コネクション部４１を介して上位装置へ送信する（ステップＳ４５）。この時、コネクション部４１は、応答先のコネクションにかかる通信要求に対する応答回数記憶領域４５の記憶値に１を加算する（ステップＳ４６）。
【００５９】
そして、通信スケジューリング部４２は、優先度「高」のコネクションにかかる通信処理を全て実行したか否かを判定し（ステップＳ４７）、未実行の通信処理がある場合（ステップＳ４７、Ｎｏ）、ステップＳ４３に移行する。優先度「高」のコネクションにかかる通信処理を全て実行した場合（ステップＳ４７、Ｙｅｓ）、通信スケジューリング部４２は、優先度「高」のコネクションにかかる通信処理を全て２回ずつ実施したか否かを判断し（ステップＳ４８）、全て２回の実行を完了していない場合（ステップＳ４８、Ｎｏ）、ステップＳ４３へ移行する。
【００６０】
優先度「高」のコネクションにかかる通信処理を全て２回ずつ実行した場合（ステップＳ４８、Ｙｅｓ）、通信スケジューリング部４２は、優先度「中」のコネクションにかかる要求を１つ取得する（ステップＳ４９）。そして、通信スケジューリング部４２は、取得した要求をシステム主要部２３へ渡す（ステップＳ５０）。通信スケジューリング部４２は、システム主要部２３から前記渡した要求に対応する応答を受け取ると、受信した応答をコネクション部４１へ転送し、コネクション部４１は転送されてきた応答を上位装置へ送信する（ステップＳ５１）。この時、コネクション部４１は、応答先のコネクションにかかる通信要求に対する応答回数記憶領域４５の記憶値に１加算する（ステップＳ５２）。
【００６１】
そして、通信スケジューリング部４２は、優先度「中」のコネクションにかかる通信処理を全て実行したか否かを判定し（ステップＳ５３）、実行を完了していない場合（ステップＳ５３、Ｎｏ）、ステップＳ４９へ移行する。
【００６２】
優先度「中」のコネクションにかかる通信処理を全て実行した場合（ステップＳ５３、Ｙｅｓ）、通信スケジューリング部４２は、計時部２４のカウント値を参照して、優先度「低」のコネクションにかかる通信処理を最後に実行してから１０秒が経過したか否かを判定する（ステップＳ５４）。優先度「低」のコネクションにかかる最後の通信処理から１０秒が経過していない場合（ステップＳ５４、Ｎｏ）、ステップＳ４３へ移行する。
【００６３】
優先度「低」のコネクションにかかる通信処理を最後に実行してから１０秒が経過した場合（ステップＳ５４、Ｙｅｓ）、通信スケジューリング部４２は、優先度「低」のコネクションにかかる要求を１つ取得する（ステップＳ５５）。そして、通信スケジューリング部４２は、取得した要求をシステム主要部２３へ渡す（ステップＳ５６）。通信スケジューリング部４２は、システム主要部２３から前記渡した要求に対応する応答を受け取ると、受け取った応答をコネクション部４１へ転送し、コネクション部４１は転送されてきた応答を上位装置へ送信する（ステップＳ５７）。この時、コネクション部４１は、応答先のコネクションにかかる通信要求に対する応答回数記憶領域４５の記憶値に１加算する（ステップＳ５８）。
【００６４】
そして、通信スケジューリング部４２は、優先度「低」のコネクションにかかる通信処理を全て実行したか否かを判定し（ステップＳ５９）、実行を完了していない場合（ステップＳ５９、Ｎｏ）、ステップＳ５５へ移行する。
【００６５】
優先度「低」のコネクションにかかる通信処理を全て実行した場合（ステップＳ５９、Ｙｅｓ）、通信スケジューリング部４２は、計時部２４のカウント値を参照し、ステップＳ４２の処理を実行してからの経過時間、即ちコネクション毎に応答回数記憶領域４５に記録されている応答回数を最後に初期化してからの経過時間を算出する（ステップＳ６０）。そして、通信スケジューリング部４２は、コネクション部４１から、１つのコネクションにかかる通信要求に対する応答回数記憶領域４５の記憶値を取得し、取得したコネクションにかかる通信要求に対する応答回数記憶領域４５の記憶値をステップＳ６０の処理により算出した経過時間で除算して、当該コネクションにかかる通信処理にかかる単位時間当たりの応答回数を算出する（ステップＳ６１）。そして、通信スケジューリング部４２は、当該算出した単位時間当たりの応答回数を、システム主要部２３に渡し、システム主要部２３は受取った単位時間当たりの応答回数を、応答回数デバイス４４に格納する（ステップＳ６２）。
【００６６】
その後、通信スケジューリング部４２は、全てのコネクションにかかる単位時間当たりの応答回数を算出したか否かを判定し（ステップＳ６３）、単位時間当たりの応答回数を算出していないコネクションがある場合（ステップＳ６３、Ｎｏ）、ステップＳ６１に移行する。全コネクションにかかる単位時間当たりの応答回数の算出を完了した場合（ステップＳ６３、Ｙｅｓ）、ステップＳ４２に移行する。
【００６７】
このように、本発明の実施の形態２によれば、応答回数をコネクション毎に記憶する応答回数記憶領域４５を備え、通信スケジューリング部４２は、応答回数記憶領域４５の記憶値に基づいて応答回数にかかる状態情報をコネクション毎に算出し、算出したコネクション毎の状態情報を入出力メモリ領域４３内の所定のデバイス（応答回数デバイス４４）に格納する、ように構成したので、ユーザは、当該デバイスの値を参照することで、各アプリケーションのコネクションにかかる通信処理の状況を定量的に知ることができる。
【００６８】
なお、以上の説明においては、応答回数記憶領域４５は通信要求に対する応答回数をコネクション単位で記憶し、通信スケジューリング部４２は単位時間当たりの応答回数をコネクション単位で算出するものと説明したが、応答回数の記録および単位時間当たりの応答回数の算出をコネクション単位ではなく、コネクション単位よりも粒度が大きい単位である優先度単位で実行するようにしてもよい。即ち、応答回数記憶領域４５は、少なくとも優先度毎に応答回数を記憶し、応答回数デバイス４４は、少なくとも優先度毎に状態情報が格納され、通信スケジューリング部４２は、少なくとも優先度毎に状態情報を算出するようにしてよい。
【００６９】
また、単位時間当たりの応答回数の算出のタイミングは、優先度「低」のコネクションにかかる通信処理が全て実行された後のタイミングだけに限定されない。例えば、各コネクションの通信処理が終了した後のタイミングや、夫々の優先度について全コネクションにかかる通信処理が完了した後のタイミングで単位時間当たりの応答回数を算出するようにしてもよい。
【００７０】
また、応答回数デバイス４４に格納される状態情報は、単位時間当たりの応答回数であるとして説明したが、応答に関する状態を確認できる情報であればどのような値を採用するようにしてもよい。例えば、応答回数の積算値を採用することができる。
【００７１】
実施の形態３．
実施の形態１および実施の形態２においては、優先度が「低」にかかる通信処理は、設定時間記憶領域２７に間隔時間として１０ｓｅｃが設定されており、優先度が「低」にかかる通信処理は、１０ｓｅｃ毎に行われる。ここで、優先度「低」のアプリケーションcのタイムアウト値が９ｓｅｃに設定されているとする。優先度「低」のコネクションにかかる通信処理が行われた直後に優先度「低」のアプリケーションcの要求が通信バッファ２５に格納された場合、アプリケーションcの要求に対する応答の転送は、アプリケーションｃの要求が通信バッファ２５に格納されてから概ね１０ｓｅｃ後に実行される。しかしながら、当該要求が実行されたときには、アプリケーションcは既にタイムアウトしており、応答の転送はエラーとなる。タイムアウトエラーにより優先度が「低」の通信処理による通信が不能となる事態から脱却するために、実施の形態３によれば、優先度「低」のコネクションにかかる通信処理において、応答の転送がエラーとなった場合、設定時間記憶領域２７の設定時間がより小さい値に変更されるようにした。
【００７２】
図１１は、本発明の実施の形態３のＰＬＣの機能構成を説明する図である。なお、実施の形態１と同じ構成要素には同一の符号を付し、重複する説明を省略する。
【００７３】
図１１に示すように、実施の形態３のＰＬＣ５は、コネクション部２１、通信スケジューリング部５１、システム主要部（要求処理部）２３、計時部２４、優先度記憶領域２６、および設定時間記憶領域２７を備えている。コネクション部２１は、通信バッファ２５を備えている。
【００７４】
通信スケジューリング部５１は、実施の形態１と同じ動作を実行する他に、設定時間記憶領域２７に設定されている間隔時間毎に通信処理を実行するという優先度（即ち優先度「低」）が設定されているコネクションに関してタイムアウトエラーが発生した場合に設定時間記憶領域２７に設定されている間隔時間をより小さい値に再設定する設定時間再設定部として機能する。なお、通信スケジューリング部５１がタイムアウトエラーの発生を検知する手法は特に限定されない。ここでは、一例として、コネクション部２１は、タイムアウトエラー（以降、単にエラー）の発生を記憶しておき、通信スケジューリング部５１は、当該コネクション部２１に問い合わせることでタイムアウトエラーが発生しているか否かを認識するものとする。
【００７５】
図１２は、本実施の形態３のＰＬＣ５の動作を説明するフローチャートである。なお、ここでは、優先度記憶領域２６に格納されている優先度情報および設定時間記憶領域２７に格納されている間隔時間の設定値は実施の形態１と同様とする。すなわち、優先度「高」にかかる通信処理は３回のスキャンのうちの２回のスキャンにおけるサービス処理で実行され、優先度「中」のコネクションにかかる通信処理は３回のスキャンのうちの１回のスキャンにおけるサービス処理で実行される。そして、優先度「低」のコネクションにかかる通信処理は１０ｓｅｃ毎に実行される。また、通信スケジューリング部５１は、一例として、タイムアウトによるエラーが発生した際には、間隔時間の設定値を4秒だけ短縮した値で更新するものとする。
【００７６】
図示するように、実施の形態１におけるステップＳ２１〜ステップＳ３４と同等の処理がステップＳ７１〜ステップＳ８４において夫々実行される。
【００７７】
ステップＳ８４の処理の後、通信スケジューリング部５１は、優先度「低」のコネクションにかかる通信処理を全て実行したか否かを判定し（ステップＳ８５）、実行を完了していない場合（ステップＳ８５、Ｎｏ）、ステップＳ８２へ移行する。優先度「低」のコネクションにかかる通信処理を全て実行した場合（ステップＳ８５、Ｙｅｓ）、通信スケジューリング部５１は、コネクション部２１に、優先度「低」のコネクションにかかる通信処理に対して、応答の転送がエラーとなったものがあるか否かを問い合わせる（ステップＳ８６）。優先度「低」のコネクションにかかる通信要求に対する応答の転送がエラーとなったものがなかった場合（ステップＳ８６、Ｎｏ）、ステップＳ７２に移行する。優先度「低」のコネクションにかかる通信処理に対して、応答の転送がエラーとなったものがあった場合（ステップＳ８６、Ｙｅｓ）、通信スケジューリング部５１は、設定時間記憶領域２７が記憶する間隔時間の値を４秒減少させ（ステップＳ８７）、ステップＳ７１に移行する。
【００７８】
図１３は、本実施の形態３における通信処理のタイムラインを説明する図である。本図は、優先度が「低」に設定されているアプリケーションcからの要求が処理される様子を示している。縦軸は時間を示し、横軸は各優先度のコネクションにかかる通信処理状況を示している。白抜きの四角が各優先度のコネクションにかかる処理を全て実行していることを示している。
【００７９】
まず、アプリケーションcからの要求が通信バッファ２５に格納される（ステップＳ９１）。その間、優先度「高」のコネクションにかかる通信処理が全て２回実行される（ステップＳ９２、Ｓ９３）。そして、優先度「中」のコネクションにかかる通信処理が全て実行される（ステップＳ９４）。その後、優先度「低」のコネクションにかかる通信処理が最後に実行されてから１０秒が経過するまで、優先度「高」および優先度「中」のコネクションにかかる処理が実行される（ステップＳ９５〜Ｓ１０７）。
【００８０】
この間に、アプリケーションcが要求を送信してから９秒が経過し、アプリケーションcはタイムアウトする（ステップＳ１０６）。
【００８１】
そして、優先度「中」のコネクションにかかる通信処理が全て実行された後に、優先度「低」のコネクションにかかる通信処理が最後に実行されてから１０秒が経過したことを検出されると、優先度「低」のコネクションにかかる通信処理が実行される（ステップＳ１０８）。そして、アプリケーションcに要求に対する応答が転送されるが、アプリケーションcは既にタイムアウトしているので、応答は無視され、エラーとなる（ステップＳ１０９）。
【００８２】
通信スケジューリング部５１は、アプリケーションｃのコネクションにかかる通信要求に対する応答の転送がエラーとなったことを検出すると、設定時間記憶領域２７が記憶している優先度「低」のコネクションにかかる通信要求処理を実行する間隔時間を４秒減少させる。
【００８３】
その後の処理においては、優先度「低」のコネクションにかかる通信要求処理を実行する間隔時間は６秒となる。具体的には、優先度「低」のコネクションにかかる通信処理（ステップＳ１１０）が終了した直後に、アプリケーションcから再び要求が送信される（ステップＳ１１１）。それと同時に、優先度「高」のコネクションにかかる通信処理が開始され、優先度「低」のコネクションにかかる前回の通信処理（ここではステップＳ１１０の処理）から設定時間記憶領域２７が記憶する間隔時間（６秒）が経過するまで、優先度「高」のコネクションにかかる通信処理および優先度「中」のコネクションにかかる通信処理が実行される（ステップＳ１１２〜Ｓ１２０）。
【００８４】
優先度「中」のコネクションにかかる通信処理を全て実行した後に、ステップＳ１１０の処理から６秒が経過しているのが検出されると、優先度「低」のコネクションにかかる通信処理が実行される（ステップＳ１２１）。そして、アプリケーションcはタイムアウトする前に、即ちステップＳ１１１の処理において要求を送信してから９秒が経過する前に、要求の応答を受信する（ステップＳ１２２）。
【００８５】
このように、優先度「低」のコネクションにかかる通信要求に対する応答の転送がエラーとなった場合、通信スケジューリング部５１が優先度「低」のコネクションにかかる通信処理の間隔時間を減少させていくことで、タイムアウトによる通信不能を回避することができる。
【００８６】
なお、本実施の形態３においては、間隔時間の値が変更されるため、通信処理の頻度が変化し、優先度に基づいた通信処理が行われなくなる場合がある。これを防ぐために、間隔時間の値を短縮する処理を実行させるか否かをユーザが設定できるように構成してもよい。
【００８７】
また、以上の説明において、優先度「低」のコネクションにかかる通信要求に対する応答の転送がエラーとなったものがある場合、減少させる間隔時間を４秒としているが、減少幅は4秒に限定されない。間隔時間の減少幅をユーザが任意に設定できるように構成しても構わない。
【００８８】
このように、本発明の実施の形態３によれば、優先度「低」のコネクションに関してタイムアウトエラーが発生した場合に、通信スケジューリング部５１が優先度「低」のコネクションにかかる通信処理を実行する間隔時間を現在設定されている値よりも小さい値に再設定するように構成したので、連続してタイムアウトエラーが発生することを防止することができる。即ち、優先度「低」のコネクションに関してタイムアウトエラーによる通信不能を回避することができるようになる。
【産業上の利用可能性】
【００８９】
以上のように、本発明にかかるプログラマブルコントローラは、産業用機器を制御するプログラマブルコントローラに適用して好適である。
【符号の説明】
【００９０】
１、４、５  ＰＬＣ
２  ネットワークハブ
３ａ、３ｂ  パソコン
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  通信Ｉ／Ｆ
１５  システムプログラム
１６  ユーザプログラム
２１、４１  コネクション部
２２、４２、５１  通信スケジューリング部
２３  システム主要部
２４  計時部
２５  通信バッファ
２６  優先度記憶領域
２７  設定時間記憶領域
２８  優先度情報
４３  入出力メモリ領域
４４  応答回数デバイス
４５  応答回数記憶領域
【図１】
2012056930.tif 000003
【図２】
2012056930.tif 000004
【図３】
2012056930.tif 000005
【図４】
2012056930.tif 000006
【図５】
2012056930.tif 000007
【図６】
2012056930.tif 000008
【図７】
2012056930.tif 000009
【図８】
2012056930.tif 000010
【図９】
2012056930.tif 000011
【図１０】
2012056930.tif 000012
【図１１】
2012056930.tif 000013
【図１２】
2012056930.tif 000014
【図１３】
2012056930.tif 000015
【手続補正書】
【提出日】平成25年7月29日(2013.7.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、デバイス値を格納する入出力メモリ領域を備え、接続されている上位装置からデバイス値の要求を受信したとき、要求されたデバイス値を応答するプログラマブルコントローラであって、前記上位装置で実行されているアプリケーション毎にコネクションを確立し、前記確立したアプリケーション毎のコネクションを介して前記上位装置からの要求の受信および前記上位装置への応答の送信を行うコネクション部と、前記コネクション部が受信した要求をコネクション毎に一時記憶する通信バッファと、前記上位装置から要求されたデバイス値を前記入出力メモリ領域から読み出す要求処理部と、コネクション毎の優先度の設定を記憶する優先度記憶領域と、前記通信バッファから要求を逐次取得して前記取得した要求を前記要求処理部に転送し、前記転送した要求に対応する前記要求処理部が読み出したデバイス値を応答として前記コネクション部に転送する通信スケジューリング部と、を備え、前記通信スケジューリング部は、前記優先度記憶領域に設定されている優先度が高いコネクションほど高い頻度で、前記優先度が低いコネクションほど低い頻度で、前記通信バッファから要求を取得する、ことを特徴とする。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デバイス値を格納する入出力メモリ領域を備え、接続されている上位装置からデバイス値の要求を受信したとき、要求されたデバイス値を応答するプログラマブルコントローラであって、
前記上位装置で実行されているアプリケーション毎にコネクションを確立し、前記確立したアプリケーション毎のコネクションを介して前記上位装置からの要求の受信および前記上位装置への応答の送信を行うコネクション部と、
前記コネクション部が受信した要求をコネクション毎に一時記憶する通信バッファと、
前記上位装置から要求されたデバイス値を前記入出力メモリ領域から読み出すシステム主要部（要求処理部）と、
コネクション毎の優先度の設定を記憶する優先度記憶領域と、
前記通信バッファから要求を逐次取得して前記取得した要求を前記要求処理部に転送し、前記転送した要求に対応する前記要求処理部が読み出したデバイス値を応答として前記コネクション部に転送する通信スケジューリング部と、
を備え、
前記通信スケジューリング部は、前記優先度記憶領域に設定されている優先度が高いコネクションほど高い頻度で、前記優先度が低いコネクションほど低い頻度で、前記通信バッファから要求を取得する、
ことを特徴とするプログラマブルコントローラ。 
【請求項２】
経過時間をカウントする計時部と、
間隔時間の設定を記憶する設定時間記憶領域と、
をさらに備え、
前記通信スケジューリング部は、前記計時部のカウント値を参照して前記設定時間記憶領域に設定されている間隔時間が経過したか否かを判定し、前記間隔時間が経過したとき、前記優先度記憶領域に特定の優先度が設定されているコネクションにかかる要求を前記通信バッファから取得する、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。 
【請求項３】
前記コネクション部は、接続相手の上位装置のユーザにより指定されたポートと前記ユーザにより指定された自プログラマブルコントローラのポートとの間でアプリケーション毎のコネクションを確立する、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。 
【請求項４】
前記入出力メモリ領域は、前記上位装置への応答回数にかかる少なくとも優先度毎の状態情報が格納される応答回数デバイスを備え、
前記上位装置への応答回数を少なくとも優先度毎に記憶する応答回数記憶領域と、
前記応答回数記憶領域に記憶されている応答回数に基づいて状態情報を算出して、前記算出した状態情報を前記応答回数デバイスに格納する状態情報算出部と、
をさらに備える、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。 
【請求項５】
前記状態情報は、単位時間当たりの応答回数である、
ことを特徴とする請求項４に記載のプログラマブルコントローラ。 
【請求項６】
前記応答回数記憶領域は、前記上位装置への応答回数をコネクション毎に記憶し、
前記応答回数デバイスは、コネクション毎の状態情報が格納される、
ことを特徴とする請求項４に記載のプログラマブルコントローラ。 
【請求項７】
前記特定の優先度が設定されているコネクションに関してタイムアウトエラーが発生した場合、前記設定時間記憶領域が記憶している間隔時間の設定値をより小さい値に再設定する設定時間再設定部をさらに備える、
ことを特徴とする請求項２に記載のプログラマブルコントローラ。 
【手続補正書】
【提出日】平成25年9月25日(2013.9.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デバイス値を格納する入出力メモリ領域を備え、接続されている上位装置からデバイス値の要求を受信したとき、要求されたデバイス値を応答するプログラマブルコントローラであって、
前記上位装置で実行されているアプリケーション毎にコネクションを確立し、前記確立したアプリケーション毎のコネクションを介して前記上位装置からの要求の受信および前記上位装置への応答の送信を行うコネクション部と、
前記コネクション部が受信した要求をコネクション毎に一時記憶する通信バッファと、
前記上位装置から要求されたデバイス値を前記入出力メモリ領域から読み出す要求処理部と、
コネクション毎の優先度の設定を記憶する優先度記憶領域と、
前記通信バッファから要求を逐次取得して前記取得した要求を前記要求処理部に転送し、前記転送した要求に対応する前記要求処理部が読み出したデバイス値を応答として前記コネクション部に転送する通信スケジューリング部と、
を備え、
前記通信スケジューリング部は、前記優先度記憶領域に設定されている優先度が高いコネクションほど高い頻度で、前記優先度が低いコネクションほど低い頻度で、前記通信バッファから要求を取得する、
ことを特徴とするプログラマブルコントローラ。
【請求項２】
経過時間をカウントする計時部と、
間隔時間の設定を記憶する設定時間記憶領域と、
をさらに備え、
前記通信スケジューリング部は、前記計時部のカウント値を参照して前記設定時間記憶領域に設定されている間隔時間が経過したか否かを判定し、前記間隔時間が経過したとき、前記優先度記憶領域に特定の優先度が設定されているコネクションにかかる要求を前記通信バッファから取得する、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記コネクション部は、接続相手の上位装置のユーザにより指定されたポートと前記ユーザにより指定された自プログラマブルコントローラのポートとの間でアプリケーション毎のコネクションを確立する、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項４】
前記入出力メモリ領域は、前記上位装置への応答回数にかかる少なくとも優先度毎の状態情報が格納される応答回数デバイスを備え、
前記上位装置への応答回数を少なくとも優先度毎に記憶する応答回数記憶領域と、
前記応答回数記憶領域に記憶されている応答回数に基づいて状態情報を算出して、前記算出した状態情報を前記応答回数デバイスに格納する状態情報算出部と、
をさらに備える、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項５】
前記状態情報は、単位時間当たりの応答回数である、
ことを特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項６】
前記応答回数記憶領域は、前記上位装置への応答回数をコネクション毎に記憶し、
前記応答回数デバイスは、コネクション毎の状態情報が格納される、
ことを特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項７】
前記特定の優先度が設定されているコネクションに関してタイムアウトエラーが発生した場合、前記設定時間記憶領域が記憶している間隔時間の設定値をより小さい値に再設定する設定時間再設定部をさらに備える、
ことを特徴とする請求項２に記載のプログラマブルコントローラ。
【国際調査報告】
2012056930.tif 000016
2012056930.tif 000017