(57)【特許請求の範囲】
【請求項１】
機器を制御するためのシーケンス処理プログラムの実行と、ネットワーク通信処理を含むサービス処理の実行とを排他的に行うプログラマブルコントローラであり、
前記サービス処理の実行要求を受け付ける受け付け部と、
前記受け付け部で前記サービス処理の実行要求を受け付けた時に前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行が行われている場合、前記サービス処理の実行要求を受け付けた時からの経過時間があらかじめ定められた第１しきい値を超えた時点で、前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行から切り換えて前記実行要求に対応する前記サービス処理の実行を行わせる制御部とを備える、
プログラマブルコントローラ。
【請求項２】
前記制御部は、前記シーケンス処理プログラムの実行から切り換えて前記サービス処理の実行が行われた時間があらかじめ定められた第２しきい値を超えた時点で、前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行を行わせる、
請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記第２しきい値は、前記サービス処理の実行に切り換える前の前記シーケンス処理プログラムの実行が行われた時間に、あらかじめ定められた所定値を乗算した値である、
請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記プログラマブルコントローラにおいて、サービス処理の実行をシーケンス処理プログラムの実行よりも優先させる度合いを示す優先度値を外部から変更可能に設定する優先度値設定部をさらに備え、
前記第１しきい値および前記所定値のうちの少なくとも一方は、前記優先度値に基づいてあらかじめ定められる、
請求項３に記載のプログラマブルコントローラ。
【請求項５】
前記シーケンス処理プログラムの実行と、前記シーケンス処理プログラムの実行が行われた時間の計測とを行うシーケンス処理部と、
前記サービス処理の実行と、前記サービス処理の実行が行われた時間の計測とを行うサービス処理部と、
前記サービス処理の実行要求を受け付けた時からの経過時間が前記第１しきい値を超えたことを検出する待ち時間超過検出部と、
前記サービス処理の実行が行われた時間が前記第２しきい値を超えたことを検出するサービス処理超過検出部とをさらに備え、
前記受け付け部は、前記サービス処理の実行要求を受け付けた時からの前記経過時間を計測し、
前記制御部は、前記受け付け部で前記サービス処理の実行要求を受け付けた時に前記シーケンス処理部において前記シーケンス処理プログラムの実行が行われている場合、待ち時間超過検出部における検出情報およびサービス処理超過検出部における検出情報に基づいて、前記シーケンス処理プログラムの実行から切り換えて前記サービス処理部において前記実行要求に対応する前記サービス処理の実行を行わせる、
請求項２から請求項４のうちのいずれか１項に記載のプログラマブルコントローラ。
【請求項６】
機器を制御するためのシーケンス処理プログラムの実行と、ネットワーク通信処理を含むサービス処理の実行とを排他的に行うプログラマブルコントローラにおいて、
前記サービス処理の実行要求を受け付け、
前記サービス処理の実行要求を受け付けた時に前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行が行われている場合、前記サービス処理の前記実行要求を受け付けた時からの経過時間があらかじめ定められた第１しきい値を超えた時点で、前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行から切り換えて前記実行要求に対応する前記サービス処理の実行を行わせる、
プログラマブルコントローラの制御方法。
【請求項７】
前記サービス処理の実行要求を受け付けた時に前記プログラマブルコントローラにおいて前記サービス処理の実行が行われている場合、前記実行要求に対応する前記サービス処理の実行を行わせる、
請求項６に記載のプログラマブルコントローラの制御方法。
【請求項８】
前記サービス処理の実行要求を複数受け付け、
前記サービス処理の実行要求を受け付けた時に前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行が行われている場合、各前記サービス処理の実行要求を受け付けた時からの経過時間を合算した時間が前記第１しきい値を超えた時点で、前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行から切り換えて前記実行要求に対応する前記サービス処理の実行を行わせる、
請求項６または請求項７に記載のプログラマブルコントローラの制御方法。
【請求項９】
前記シーケンス処理プログラムの実行から切り換えて前記サービス処理の実行が行われた時間があらかじめ定められた第２しきい値を超えた時点で、前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行を行わせる、
請求項６または請求項７に記載のプログラマブルコントローラの制御方法。
【請求項１０】
前記第２しきい値は、前記サービス処理の実行に切り換える前の前記シーケンス処理プログラムの実行が行われた時間に、あらかじめ定められた所定値を乗算した値である、
請求項９に記載のプログラマブルコントローラの制御方法。
【請求項１１】
前記プログラマブルコントローラにおいて、前記サービス処理の実行を前記シーケンス処理プログラムの実行よりも優先させる度合いを示す優先度値に基づいて、前記第１しきい値および前記所定値のうちの少なくとも一方があらかじめ定められる、
請求項１０に記載のプログラマブルコントローラの制御方法。
【請求項１２】
前記優先度値に基づいて、前記第１しきい値および前記所定値を同時に定められる、
請求項１１に記載のプログラマブルコントローラの制御方法。
【請求項１３】
前記第１しきい値および前記所定値が、前記優先度値に比例する、
請求項１１に記載のプログラマブルコントローラの制御方法。
【請求項１４】
前記第１しきい値は、前記優先度値が大きくなるにしたがって小さくなり、
前記所定値は、前記優先度値が大きくなるにしたがって大きくなる、
請求項１１に記載のプログラマブルコントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、プログラマブルコントローラおよびプログラマブルコントローラの制御方法に関し、特に、機器を制御するためのシーケンス処理プログラムの実行と、ネットワーク通信処理を含むサービス処理の実行とを排他的に行うプログラマブルコントローラおよびプログラマブルコントローラの制御方法に関するものである。
【背景技術】
【０００２】
プログラマブルコントローラは、工場などに設置されている多様な機械設備またはプラント設備などを制御するための汎用制御装置として広く用いられる。【０００３】
近年のプログラマブルコントローラは、多機能化が進んでおり、主用途である機械設備または機械システムなどの制御を行うシーケンス処理プログラムの実行機能に加えて、ネットワーク通信機能またはファイルアクセス機能などのサービス処理の実行機能を搭載した製品が存在する。【０００４】
ネットワーク通信機能は、外部コンピュータからプログラマブルコントローラの稼働状況をモニタリングする場合などに使用される。ファイルアクセス機能は、プログラマブルコントローラの稼働データまたはユーザープログラムの実行情報を、内蔵メモリ領域または取り外し可能な外部メモリ領域にファイルとして出力する場合などに使用される。【０００５】
複数の機能の同時実行を行う方式としては、処理を時分割で切り換えて実行する方式が知られる。この方式では、シーケンス処理プログラムの実行と、サービス処理の実行とを一定時間ごとに切り換えることによって、複数の機能の実行を同時に行う。【０００６】
特許文献１では、シーケンス処理プログラムと、通信処理とを同時に実行するプログラマブルコントローラが開示される。特許文献１では、通信処理の応答時間を改善するために、通信処理に割り当てる時間を、発生した通信処理の種別に応じて動的に変更する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１３４１９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載されたプログラマブルコントローラが用いられる場合、シーケンス処理プログラムの実行中に通信要求が発生すると、あらかじめ設定されたシーケンス処理プログラムの実行のための割り当て時間が経過した後に、通信要求に対する応答が行われる。よって、たとえば、当該通信要求がシーケンス処理プログラムの実行開始直後に発生した場合には、通信要求に対する応答が行われるまでに長い時間がかかってしまう。その結果として、通信要求に対する応答時間が悪化する。【０００９】
本技術は、上記のような問題を解決するためのものであり、通信要求に対する応答時間の悪化を抑制することができるプログラマブルコントローラおよびプログラマブルコントローラの制御方法に関するものである。
【課題を解決するための手段】
【００１０】
本技術の一態様に関するプログラマブルコントローラは、機器を制御するためのシーケンス処理プログラムの実行と、ネットワーク通信処理を含むサービス処理の実行とを排他的に行うプログラマブルコントローラであり、前記サービス処理の実行要求を受け付ける受け付け部と、前記受け付け部で前記サービス処理の実行要求を受け付けた時に前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行が行われている場合、前記サービス処理の実行要求を受け付けた時からの経過時間があらかじめ定められた第１しきい値を超えた時点で、前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行から切り換えて前記実行要求に対応する前記サービス処理の実行を行わせる制御部とを備える。【００１１】
本技術の一態様に関するプログラマブルコントローラの制御方法は、機器を制御するためのシーケンス処理プログラムの実行と、ネットワーク通信処理を含むサービス処理の実行とを排他的に行うプログラマブルコントローラにおいて、前記サービス処理の実行要求を受け付け、前記サービス処理の実行要求を受け付けた時に前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行が行われている場合、前記サービス処理の前記実行要求を受け付けた時からの経過時間があらかじめ定められた第１しきい値を超えた時点で、前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行から切り換えて前記実行要求に対応する前記サービス処理の実行を行わせる。
【発明の効果】
【００１２】
本技術の一態様に関するプログラマブルコントローラは、機器を制御するためのシーケンス処理プログラムの実行と、ネットワーク通信処理を含むサービス処理の実行とを排他的に行うプログラマブルコントローラであり、前記サービス処理の実行要求を受け付ける受け付け部と、前記受け付け部で前記サービス処理の実行要求を受け付けた時に前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行が行われている場合、前記サービス処理の実行要求を受け付けた時からの経過時間があらかじめ定められた第１しきい値を超えた時点で、前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行から切り換えて前記実行要求に対応する前記サービス処理の実行を行わせる制御部とを備える。【００１３】
このような構成によれば、サービス処理の実行要求が第１しきい値の時間よりも待たされることがなくなり、通信要求に対する応答時間が改善される。【００１４】
本技術の一態様に関するプログラマブルコントローラの制御方法は、機器を制御するためのシーケンス処理プログラムの実行と、ネットワーク通信処理を含むサービス処理の実行とを排他的に行うプログラマブルコントローラにおいて、前記サービス処理の実行要求を受け付け、前記サービス処理の実行要求を受け付けた時に前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行が行われている場合、前記サービス処理の前記実行要求を受け付けた時からの経過時間があらかじめ定められた第１しきい値を超えた時点で、前記プログラマブルコントローラにおいて前記シーケンス処理プログラムの実行から切り換えて前記実行要求に対応する前記サービス処理の実行を行わせる。【００１５】
このような構成によれば、サービス処理の実行要求が第１しきい値の時間よりも待たされることがなくなり、通信要求に対する応答時間が改善される。【００１６】
本技術に関する目的と、特徴と、局面と、利点とは、以下に示される詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に関する、プログラマブルコントローラの構成およびその他の構成を概念的に示す図である。
【図２】実施形態に関する、図１に示された処理実行部の構成をさらに詳細に示す図である。
【図３】実施形態に関する、図１および図２に例示されるプログラマブルコントローラを実際に運用する場合のハードウェア構成を概略的に示す図である。
【図４】実施形態に関する、図１および図２に例示されるプログラマブルコントローラを実際に運用する場合のハードウェア構成を概略的に示す図である。
【図５】実施形態に関する、シーケンス処理プログラムの実行開始から９ｍｓ後に通信要求が発生した場合の、処理実行部における処理切り換えの実施状況を例示する図である。
【図６】実施形態に関する、図５に例示される場合の、処理実行部の動作を例示するフローチャートである。
【図７】実施形態に関する、シーケンス処理プログラムの実行開始から９ｍｓ後に第１通信要求が発生し、さらにシーケンス処理プログラムの実行開始から１２ｍｓ後に第２通信要求が発生した場合の、処理実行部における処理切り換えの実施状況を例示する図である。
【図８】実施形態に関する、図７に例示される場合の、処理実行部の動作を例示するフローチャートである。
【図９】実施形態に関する、優先度値、待ち時間上限値（ｔｈｒｅｓ）および比率値（ｒａｔｉｏ）の対応関係を例示する図である。
【図１０】実施形態に関する、通信要求が発生した場合の処理実行部における処理切り換えの実施状況（ｐｒｉ＝３）を例示する図である。
【図１１】実施形態に関する、通信要求が発生した場合の処理実行部における処理切り換えの実施状況（ｐｒｉ＝５）を例示する図である。
【図１２】実施形態に関する、シーケンス処理プログラムの実行開始から９ｍｓ後に通信要求が発生した場合の、処理実行部における処理切り換えの実施状況（ｐｒｉ＝０）を例示する図である。
【図１３】実施形態に関する、シーケンス処理プログラムの実行開始から９ｍｓ後に通信要求が発生した場合の、処理実行部における処理切り換えの実施状況（ｐｒｉ＝４）を例示する図である。
【発明を実施するための形態】
【００１８】
以下、添付される図面を参照しながら実施形態について説明する。なお、図面は模式的に示されるものであり、異なる図面にそれぞれ示されている画像の大きさと位置との相互関係は、必ずしも正確に記載されるものではなく、適宜変更され得るものである。また、以下に示される説明では、同様の構成要素には同じ符号を付して図示し、それらの名称と機能とについても同様のものとする。よって、それらについての詳細な説明を省略する場合がある。
【００１９】
＜第１実施形態＞
＜構成＞
以下、本実施形態に関する、機器を制御するためのシーケンス処理プログラムの実行と、ネットワーク通信処理を含むサービス処理の実行とを排他的に行うプログラマブルコントローラについて説明する。
【００２０】
図１は、本実施形態に関するプログラマブルコントローラの構成およびその他の構成を概念的に示す図である。
【００２１】
図１に例示されるように、プログラマブルコントローラ１は、処理実行部２と、待ち時間上限値４、比率値５および優先度値６を記憶する書き換え可能な記憶装置であるデータ保持部３と、優先度設定部７と、コンピュータ装置９と接続するための周辺器インターフェイス８とを備えている。
【００２２】
処理実行部２は、シーケンス処理プログラムの実行、サービス処理の実行、および、シーケンス処理とサービス処理との間の切り換え制御などを行う。
【００２３】
処理実行部２が利用するデータとしては、待ち時間上限値４、比率値５および優先度値６が例示される。待ち時間上限値４は、サービス処理要求の待ち時間を規定するデータである。比率値５は、シーケンス処理プログラムの実行時間とサービス処理の実行時間との比率を規定するデータである。優先度値６は、シーケンス処理プログラムの実行とサービス処理の実行とのいずれの処理を、どの程度優先するかを規定するデータである。
【００２４】
優先度設定部７は、優先度値６を外部から変更可能に設定するための機能部である。また、図１に例示されるコンピュータ装置９は、プログラマブルコントローラ１の外部に配置される。
【００２５】
以下、本実施形態に関するシーケンス処理とサービス処理との双方の処理を、時分割で実行する場合について説明する。
【００２６】
図２は、図１に示された処理実行部２の構成をさらに詳細に示す図である。
【００２７】
図２に例示されるように、処理実行部２は、シーケンス処理部１０と、サービス処理部１１と、受け付けおよび計測部１３と、待ち時間超過検出部１４と、サービス処理超過検出部１５と、切り換え制御部１２とを備える。
【００２８】
シーケンス処理部１０は、シーケンス処理プログラムの実行を行うとともに、シーケンス処理プログラムの実行時間を計測する。サービス処理部１１は、サービス処理の実行を行うとともに、サービス処理の実行時間を計測する。
【００２９】
受け付けおよび計測部１３は、サービス処理の実行要求を受け付ける。また、受け付けおよび計測部１３は、実行要求の発生時点からの経過時間を計測する。
【００３０】
待ち時間超過検出部１４は、受け付けおよび計測部１３がサービス処理の実行要求を受け付けた時点からの経過時間が、規定された待ち時間上限値４を超えたか否かを検出する。
【００３１】
サービス処理超過検出部１５は、サービス処理の実行が行われた時間がサービス処理の上限値を超えたか否かを検出する。
【００３２】
切り換え制御部１２は、待ち時間超過検出部１４からの情報および受け付けおよび計測部１３からの情報に基づいて、実行中のシーケンス処理または実行中のサービス処理の処理切り換えを行う。
【００３３】
図３および図４は、図１および図２に例示されるプログラマブルコントローラを実際に運用する場合のハードウェア構成を概略的に示す図である。
【００３４】
図３では、図１および図２に例示されるプログラマブルコントローラを実現するハードウェア構成として、演算を行う処理回路１０２ａと、情報を記憶することができる記憶装置１０３と、情報を入力および出力することができる、入力および出力装置１０４とが示される。これらの構成は、後述する他の実施形態においても同様である。
【００３５】
図４では、図１および図２に例示されるプログラマブルコントローラを実現するハードウェア構成として、演算を行う処理回路１０２ｂと、情報を入力および出力することができる、入力および出力装置１０４とが示される。これらの構成は、後述する他の実施形態においても同様である。
【００３６】
データ保持部３は、記憶装置１０３によって実現される。記憶装置１０３は、たとえば、ハードディスク（Ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ、すなわちＨＤＤ）、ランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、すなわちＲＡＭ）、リードオンリーメモリ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ、すなわちＲＯＭ）、フラッシュメモリ、ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ（ＥＰＲＯＭ）およびｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ（ＥＥＰＲＯＭ）などの、揮発性または不揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスクまたはＤＶＤなどを含むメモリ（記憶媒体）などによって構成されるなどを含むメモリ（記憶媒体）などによって構成される。
【００３７】
処理回路１０２ａは、記憶装置１０３に格納されたプログラムを実行するものであってもよい。すなわち、たとえば、中央演算処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、すなわちＣＰＵ）、マイクロプロセッサ、マイクロコンピュータ、デジタルシグナルプロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｏｃｅｓｓｏｒ、すなわちＤＳＰ）であってもよい。
【００３８】
処理回路１０２ａが記憶装置１０３に格納されたプログラムを実行するものである場合、処理実行部２と、優先度設定部７とは、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせにより実現される。なお、これらの機能は、たとえば、複数の処理回路が連携することによって実現されてもよい。
【００３９】
ソフトウェアおよびファームウェアはプログラムとして記述され、記憶装置１０３に記憶される。処理回路１０２ａは、記憶装置１０３に格納されたプログラムを読み出して実行することにより、上記の機能を実現する。すなわち、記憶装置１０３は、処理回路１０２ａに実行されることにより、上記の機能が結果的に実現されるプログラムを記憶する。
【００４０】
また、処理回路１０２ｂは、専用のハードウェアであってもよい。すなわち、たとえば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、集積回路（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、すなわちＡＳＩＣ）、ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ（ＦＰＧＡ）またはこれらを組み合わせた回路であってもよい。
【００４１】
処理回路１０２ｂが専用のハードウェアである場合、処理実行部２と、優先度設定部７とは、処理回路１０２ｂが動作することにより実現される。なお、これらの機能は、別々の回路で実現されてもよいし、単一の回路で実現されてもよい。
【００４２】
なお、上記の処理実行部２および優先度設定部７の機能は、一部が記憶装置１０３に格納されたプログラムを実行するものである処理回路１０２ａにおいて実現され、一部が専用のハードウェアである処理回路１０２ｂにおいて実現されてもよい。
【００４３】
また、周辺器インターフェイス８は、入力および出力装置１０４によって実現される。
【００４４】
＜作用＞
次に、処理実行部２の動作について、図５および図６を参照しつつ説明する。以下では、記述を簡単化するため、待ち時間上限値４をｔｈｒｅｓ、比率値５をｒａｔｉｏとする。
【００４５】
図５は、シーケンス処理プログラムの実行開始から９ｍｓ後に通信要求が発生した場合の、処理実行部２における処理切り換えの実施状況を例示する図である。図５においては、縦軸がサービス処理の待ち時間の長さを示し、横軸がシーケンス処理またはサービス処理の時間経過を示す。
【００４６】
また、図６は、図５に例示される場合の、処理実行部２の動作を例示するフローチャートである。
【００４７】
ここでは、たとえば、
【数１】
0005866082.tif 000002
【数２】
0005866082.tif 000003
として説明する。
【００４８】
まず、シーケンス処理プログラムの実行中に通信要求が発生する状況を想定する。ここで、通信要求とは、少なくともサービス処理による応答が必要となる要求である。
【００４９】
次に、切り換え制御部１２は、通信要求が発生したか否かを判断する（図６におけるステップＳＴ１を参照）。具体的には、受け付けおよび計測部１３が通信要求を受け付けたか否かを判断する。そして、切り換え制御部１２は、通信要求が発生したと判断される場合、図６におけるステップＳＴ２へ進む。一方で、通信要求が発生していないと判断される場合、図６におけるステップＳＴ１へ戻る。
【００５０】
次に、切り換え制御部１２は、当該通信要求が発生した時点からの待ち時間が、ｔｈｒｅｓで与えられる時間（上記の設定では３ｍｓ）を超えたか否かを判断する（図６におけるステップＳＴ２を参照）。具体的には、待ち時間超過検出部１４が、サービス処理の実行要求を受け付けた時からの経過時間がｔｈｒｅｓで与えられる時間を超えたことを検出したか否かを判断する。なお、サービス処理の実行要求を受け付けた時からの経過時間は、受け付けおよび計測部１３において計測される。そして、当該通信要求が発生した時点からの待ち時間がｔｈｒｅｓで与えられる時間を超えた場合、切り換え制御部１２は、シーケンス処理からサービス処理への処理切り換えを行う（図６におけるステップＳＴ３を参照）。一方で、当該通信要求が発生した時点からの待ち時間がｔｈｒｅｓで与えられる時間を超えない場合、図６におけるステップＳＴ２へ戻る。
【００５１】
なお、通信要求が発生した時点とは、プログラマブルコントローラにおいて通信要求を受け付けた時点をいうものとする。
【００５２】
図５に例示される例では、シーケンス処理プログラムの実行開始から１２ｍｓ後に、切り換え制御部１２は、シーケンス処理からサービス処理への処理切り換えを行う（図６におけるステップＳＴ３を参照）。
【００５３】
当該処理切り換えの後の、サービス処理の実行時間は、処理切り換えを行うまでに実行されたシーケンス処理プログラムの実行時間と、ｒａｔｉｏ（本例では１／３）とを掛け合わせることで算出される。上記にしたがうと、図５に例示される例では、１２ｍｓ×ｒａｔｉｏ（すなわち１／３）＝４ｍｓだけサービス処理が実行される。
【００５４】
次に、切り換え制御部１２は、サービス処理の実行時間が、処理切り換えを行うまでに実行されたシーケンス処理プログラムの実行時間と、ｒａｔｉｏとを掛け合わせた時間を超えたか否かを判断する（図６におけるステップＳＴ４を参照）。具体的には、サービス処理超過検出部１５が、サービス処理の実行が行われた時間が、処理切り換えを行うまでに実行されたシーケンス処理プログラムの実行時間と、ｒａｔｉｏとを掛け合わせた時間を超えたことを検出したか否かを判断する。そして、当該時間を超えた場合、切り換え制御部１２は、サービス処理からシーケンス処理への処理切り換えを行う（図６におけるステップＳＴ５を参照）。一方で、当該時間を超えない場合、図６におけるステップＳＴ４へ戻る。
【００５５】
その後は、発生した通信要求に対する待ち時間がｔｈｒｅｓで与えられる時間を超えるまでシーケンス処理プログラムを実行する。すなわち、図６におけるステップＳＴ１に戻る。
【００５６】
図５に例示される例では、シーケンス処理プログラムの実行中に発生した通信要求が１つである。しかし、シーケンス処理プログラムの実行中に発生する通信要求が複数である場合にも、同様の処理方式に基づいて対応することが可能である。
【００５７】
また、複数の通信要求が発生した場合に、上記とは別の方式を用いて処理切り換えを行うこともできる。たとえば、各通信要求に対する待ち時間を合算した値がｔｈｒｅｓを超えた時点で、切り換え制御部１２が処理切り換えを実施してもよい。
【００５８】
次に、複数の通信要求が発生した場合の処理実行部２の動作について、図７および図８を参照しつつ説明する。以下では、記述を簡単化するため、待ち時間上限値４をｔｈｒｅｓ、比率値５をｒａｔｉｏとする。
【００５９】
図７は、シーケンス処理プログラムの実行開始から９ｍｓ後に第１通信要求が発生し、さらにシーケンス処理プログラムの実行開始から１２ｍｓ後に第２通信要求が発生した場合の、処理実行部２における処理切り換えの実施状況を例示する図である。図７においては、縦軸がサービス処理の待ち時間の長さを示し、横軸がシーケンス処理またはサービス処理の時間経過を示す。
【００６０】
また、図８は、図７に例示される場合の、処理実行部２の動作を例示するフローチャートである。
【００６１】
ここでは、
【数３】
0005866082.tif 000004
【数４】
0005866082.tif 000005
として説明する。
【００６２】
まず、シーケンス処理プログラムの実行中に第１通信要求が発生し、さらに、第１通信要求が発生してから３ｍｓ後に、第２通信要求が発生する状況を想定する。
【００６３】
次に、切り換え制御部１２は、通信要求が発生したか否かを判断する（図８におけるステップＳＴ１１を参照）。具体的には、受け付けおよび計測部１３が通信要求を受け付けたか否かを判断する。そして、切り換え制御部１２は、そして、通信要求が発生したと判断される場合、図８におけるステップＳＴ１２へ進む。一方で、通信要求が発生していないと判断される場合、図８におけるステップＳＴ１１へ戻る。
【００６４】
次に、切り換え制御部１２は、現時点で発生したすべての通信要求について、通信要求が発生した時点からの待ち時間がｔｈｒｅｓで与えられる時間（上記の設定では７ｍｓ）を超えたか否かを判断する（図８におけるステップＳＴ１２を参照）。具体的には、待ち時間超過検出部１４が、サービス処理の実行要求を受け付けた時からの経過時間がｔｈｒｅｓで与えられる時間を超えたことを検出したか否かを判断する。なお、サービス処理の実行要求を受け付けた時からの経過時間は、受け付けおよび計測部１３において計測される。ここで、現時点で複数の通信要求（図７においては第１通信要求および第２通信要求）が発生している場合、複数の通信要求の待ち時間を合算した時間を、ｔｈｒｅｓで与えられる時間と比較する待ち時間とする。
【００６５】
図７における、第１通信要求の発生から３ｍｓが経過した時点では、未だｔｈｒｅｓで与えられる時間（＝７ｍｓ）を超えないため、切り換え制御部１２は、シーケンス処理を続行させる。すなわち、切り換え制御部１２は、第１通信要求に対する応答および第２通信要求に対する応答を一時的に保留して、処理切り換えを行わない。
【００６６】
そして、当該通信要求が発生した時点からの待ち時間がｔｈｒｅｓで与えられる時間を超えた場合、切り換え制御部１２は、シーケンス処理からサービス処理への処理切り換えを行う（図８におけるステップＳＴ１３を参照）。一方で、当該通信要求が発生した時点からの待ち時間がｔｈｒｅｓで与えられる時間を超えない場合、図８におけるステップＳＴ１２へ戻る。
【００６７】
図７における、第２通信要求の発生から２ｍｓが経過した時点では、第１通信要求の待ち時間は５ｍｓとなり、第２通信要求の待ち時間は２ｍｓとなる。よって、第１通信要求の待ち時間と第２通信要求の待ち時間とを合算した値がｔｈｒｅｓ（＝７ｍｓ）を超えるため、切り換え制御部１２は、シーケンス処理からサービス処理への処理切り換えを行う。
【００６８】
当該処理切り換えの後の、サービス処理の実行時間は、処理切り換えを行うまでに実行されたシーケンス処理プログラムの実行時間と、ｒａｔｉｏ（本例では１／３）とを掛け合わせることで算出される。上記にしたがうと、図７に例示される例では、１６ｍｓ×ｒａｔｉｏ（すなわち１／４）＝４ｍｓだけサービス処理が実行される。
【００６９】
サービス処理の実行に際しては、まず、先に発生した要求である第１通信要求に対して応答（図７における第１通信応答）が行われる。その後、第２通信要求に対して応答（図７における第２通信応答）が行われる。
【００７０】
なお、本実施形態では、要求が発生した順に応答を行うものとして説明されたが、たとえばサービス処理種別ごとに優先度を設けて、優先度の高いサービス処理から応答を行うなど、サービス処理の実行順序を決定するために他の方法が用いられてもよい。
【００７１】
次に、切り換え制御部１２は、サービス処理の実行時間が、処理切り換えを行うまでに実行されたシーケンス処理プログラムの実行時間と、ｒａｔｉｏとを掛け合わせた時間を超えたか否かを判断する（図８におけるステップＳＴ１４を参照）。具体的には、サービス処理超過検出部１５が、サービス処理の実行が行われた時間が、処理切り換えを行うまでに実行されたシーケンス処理プログラムの実行時間と、ｒａｔｉｏとを掛け合わせた時間を超えたことを検出したか否かを判断する。そして、当該時間を超えた場合、切り換え制御部１２は、サービス処理からシーケンス処理への処理切り換えを行う（図８におけるステップＳＴ１５を参照）。一方で、当該時間を超えない場合、図８におけるステップＳＴ１４へ戻る。
【００７２】
その後は、発生した通信要求に対する待ち時間がｔｈｒｅｓで与えられる時間を超えるまでシーケンス処理プログラムを実行する。すなわち、図８におけるステップＳＴ１１に戻る。
【００７３】
ここで、ｔｈｒｅｓとｒａｔｉｏとは、設定された優先度値６に基づいて設定することが可能である。また、当該優先度値６は、優先度設定部７またはコンピュータ装置９によって設定することができる。図２には図示されないが、処理実行部２は、コンピュータ装置９により設定された優先度値６をデータ保持部３に書き込む機能を有しており、コンピュータ装置９により優先度値６が設定された場合には、本機能を用いて優先度値６を変更する。
【００７４】
優先度設定部７またはコンピュータ装置９により設定された優先度値６に基づいて、待ち時間上限値４（ｔｈｒｅｓ）と比率値５（ｒａｔｉｏ）とを算出する方法について、以下説明する。
【００７５】
図９は、優先度値６、待ち時間上限値４（ｔｈｒｅｓ）および比率値５（ｒａｔｉｏ）の対応関係を例示する図である。図９においては、縦軸が待ち時間上限値４（ｔｈｒｅｓ）を示し、横軸が比率値５（ｒａｔｉｏ）を示す。さらに、図９においては、優先度値６が設定されるようすも併せて示される。ここでは、優先度値６に比例させて、待ち時間上限値４（ｔｈｒｅｓ）の値および比率値５（ｒａｔｉｏ）の値を決定する場合について説明する。
【００７６】
ｔｈｒｅｓとｒａｔｉｏとには、それぞれ設定可能な最大値と最小値とが設けられるものとする。また、ｔｈｒｅｓの最大値をｍａｘｔとし、ｔｈｒｅｓの最小値をｍｉｎｔとする。さらに、ｒａｔｉｏの最大値をｍａｘｒとし、ｒａｔｉｏの最小値をｍｉｎｒとする。
【００７７】
また、優先度値６をｐｒｉとし、ｐｒｉのとりうる値は、０からｎ−１の実数であるとする（図９に例示される場合では、ｎ＝１１）。また、ｐｒｉが０に近いほどシーケンス処理が優先されることを意味し、ｐｒｉがｎ−１に近いほどサービス処理が優先されることを意味するものとする。
【００７８】
この場合、ｔｈｒｅｓとｒａｔｉｏとは、以下の計算式にしたがって算出される。
【００７９】
【数５】
0005866082.tif 000006
【００８０】
【数６】
0005866082.tif 000007
【００８１】
本実施形態においては、具体例を示すために、上記のような計算式を用いてｒａｔｉｏの算出方法およびｔｈｒｅｓの算出方法を説明するが、ｐｒｉに比例するような計算式、たとえば、ａ、ｂ、ｃおよびｄを任意の定数として、
【数７】
0005866082.tif 000008
【数８】
0005866082.tif 000009
の一般式で表現することができるような計算式であれば、どのような計算式が用いられてもよい。
【００８２】
図１０および図１１は、通信要求が発生した場合の、処理実行部２における処理切り換えの実施状況を例示する図である。
【００８３】
図１０および図１１において、
【数９】
0005866082.tif 000010
【数１０】
0005866082.tif 000011
【数１１】
0005866082.tif 000012
【数１２】
0005866082.tif 000013
【数１３】
0005866082.tif 000014
とする。また、図１０および図１１においては、シーケンス処理プログラムの実行開始から９ｍｓ後に第１通信要求が発生し、さらにシーケンス処理プログラムの実行開始から３０ｍｓ後に第２通信要求が発生した場合の、処理実行部２における処理切り換えの実施状況が示される。
【００８４】
図１０は、ｐｒｉ＝３とした場合の実施状況を示すものであり、式（１）および式（２）にそれぞれ代入すると、
【数１４】
0005866082.tif 000015
【数１５】
0005866082.tif 000016
となる。
【００８５】
本実施形態においては、第１通信要求が発生した後、ｔｈｒｅｓで設定された時間（８ｍｓ）を超えた時点でシーケンス処理からサービス処理への処理切り換えが実施される。そして、サービス処理の実行中に応答（図１０における第１通信応答）が行われる。
【００８６】
サービス処理は、シーケンス処理プログラムの実行時間とｒａｔｉｏとを掛け合わせた時間、すなわち、
【数１６】
0005866082.tif 000017
だけ実行され、シーケンス処理に切り換えられる。
【００８７】
第２通信要求が発生した際にはシーケンス処理プログラムが実行中であるため、即座に応答を行うことはできない。しかし、ｔｈｒｅｓで設定された時間（８ｍｓ）を超えた時点でシーケンス処理からサービス処理への処理切り換えが実施され、応答（図１０における第２通信応答）が行われる。
【００８８】
図１１は、ｐｒｉ＝５とした場合、すなわち、図１０に例示される場合よりもサービス処理を優先とした場合の実施状況を例示する図であり、式（１）および式（２）にそれぞれ代入すると、
【数１７】
0005866082.tif 000018
【数１８】
0005866082.tif 000019
となる。
【００８９】
本実施形態においては、第１通信要求が発生した後、ｔｈｒｅｓで設定された時間（６ｍｓ）を超えた時点でシーケンス処理からサービス処理への処理切り換えが実施される。そして、サービス処理の実行中に応答が行われる（図１１における第１通信応答）。
【００９０】
サービス処理は、シーケンス処理プログラムの実行時間とｒａｔｉｏとを掛け合わせた時間、すなわち、
【数１９】
0005866082.tif 000020
だけ実行され、シーケンス処理に切り換えられる。
【００９１】
第２通信要求が発生した際にはサービス処理が実行中であるため、即座に応答を行うことができる（図１１における第２通信応答）。
【００９２】
このように、図１１に例示される場合では、図１０に例示される場合に比べて、２つの通信要求いずれに対しても応答時間が短くなる。一方で、図１１に例示される場合では、シーケンス処理に割り当て可能な時間は、図１０に例示される場合よりも短くなる。
【００９３】
このように、本実施形態においては、サービス処理に対し処理の実行を要求する通信要求が発生した時点からの待ち時間がｔｈｒｅｓを超えた時点において、シーケンス処理プログラムからサービス処理に処理切り換えを行う。
【００９４】
また、本実施形態においては、サービス処理の実行中にその実行時間が、シーケンス処理プログラムの実行時間とｒａｔｉｏとを掛け合わせた時間を超えた時点で、シーケンス処理プログラムの実行に処理切り換えを行う。
【００９５】
このように処理することで、サービス処理がｔｈｒｅｓの値よりも待たされることがなくなり、サービス処理の応答時間が改善される。また、ｒａｔｉｏの設定値によって、サービス処理を行う時間を調整することができる。
【００９６】
さらに、本実施形態に示された計算式にしたがって、優先度値ｐｒｉに基づいてｔｈｒｅｓおよびｒａｔｉｏを算出することができる。よって、優先度値をサービス処理優先に設定した場合には、サービス処理の応答時間を改善することができる。また、優先度値をシーケンス処理優先に設定した場合には、シーケンス処理への割り当て可能な時間を増加させることができる。
【００９７】
本実施形態では、プログラマブルコントローラ１上で実行されるサービス処理として、外部接続されたコンピュータ装置９との間で、プログラマブルコントローラの稼働状況に関する情報、または、シーケンス処理プログラムなどに関する情報を送受信するための通信処理が示されたが、プログラマブルコントローラ上で実行されるサービス処理はこれに限定されるものではない。すなわち、たとえば、プログラマブルコントローラ１に接続されたメモリ領域へのファイル書き込み処理、または、当該メモリ領域からのファイル読み出し処理などであってもよい。
【００９８】
＜第２実施形態＞
本実施形態に関するプログラマブルコントローラについて説明する。以下では、上記の実施形態で説明された構成と同様の構成については同じ符号を付して図示し、その詳細な説明については適宜省略する。
【００９９】
上記の実施形態では、優先度値６に比例して、待ち時間上限値４および比率値５が決定される計算式が用いられた。しかし、使用者の意図に沿うように、プログラマブルコントローラ１のシーケンス処理プログラムの実行性能およびサービス処理の応答性能を調整可能となる、下記の式（３）および式（４）が用いられてもよい。
【０１００】
すなわち、ｒａｔｉｏｃｕｒとｔｈｒｅｓｃｕｒをそれぞれｒａｔｉｏとｔｈｒｅｓの現在値、Ｔｓｅｑをシーケンス処理プログラムの実行時間の平均値とすると、優先度値ｐｒｉをｐｒｉｏｌｄからｐｒｉｎｅｗに変更した場合、更新後のｒａｔｉｏの値ｒａｔｉｏｎｅｘｔと、更新後のｔｈｒｅｓの値ｔｈｒｅｓｎｅｘｔはそれぞれ次のようになる。
【０１０１】
【数２０】
0005866082.tif 000021
【０１０２】
【数２１】
0005866082.tif 000022
【０１０３】
上記計算式は、優先度値ｐｒｉの変量に対して、シーケンスプログラムの実行時間と、サービス処理の実行時間とが比例的に変更されるように、構成したものである。
【０１０４】
以下、式（３）および式（４）の算出方法について説明する。ここで、Ｔｓｖｃをサービス処理実行時間の平均値、Ｓを、切り換え制御部１２が、処理実行部２上で実行される処理をシーケンス処理からサービス処理またはその逆に切り換える際に必要な時間の合計値とする。
【０１０５】
ｔｈｒｅｓを小さくすると、処理の切り換え頻度が高くなる関係があるため、Ｓはｔｈｒｅｓの関数となる。
【０１０６】
本実施形態においては、
【数２２】
0005866082.tif 000023
として説明されるが、Ｓをｔｈｒｅｓに反比例となるように構成するなど、これ以外の関数としてもよい。
【０１０７】
処理実行部２上で実行される処理が、シーケンス処理、サービス処理、およびこれら処理の切り換えのみであると仮定すれば、Ｃを定数として、
【数２３】
0005866082.tif 000024
が成り立つ。式（５）より、その変分は以下であることが分かる。
【０１０８】
【数２４】
0005866082.tif 000025
【０１０９】
また、サービス処理実行時間は、シーケンス処理プログラムの実行時間に対してｒａｔｉｏを掛け合わせることで算出されるので、
【数２５】
0005866082.tif 000026
であり、式（７）よりＴｓｖｃの変分を求めると、
【数２６】
0005866082.tif 000027
が得られる。
【０１１０】
ここで、
【数２７】
0005866082.tif 000028
であるので、
【数２８】
0005866082.tif 000029
となる。
【０１１１】
以上より、式（６）に、式（８）および式（９）を代入し、整理すると、
【数２９】
0005866082.tif 000030
が得られる。また、式（６）に式（９）を代入することで、
【数３０】
0005866082.tif 000031
が得られる。
【０１１２】
ｒａｔｉｏおよびｔｈｒｅｓは、優先度値ｐｒｉにより算出される変数とみなせるため、ｐｒｉの関数となり、それぞれｒａｔｉｏ＝ｆ（ｐｒｉ）、ｔｈｒｅｓ＝ｇ（ｐｒｉ）とすれば、変分値は、
【数３１】
0005866082.tif 000032
【数３２】
0005866082.tif 000033
となる。
【０１１３】
ここで、式（１０）に式（１２）および式（１３）を代入することで、
【数３３】
0005866082.tif 000034
となる。さらに、式（１１）に式（１３）および式（１４）を代入することで、
【数３４】
0005866082.tif 000035
が得られる。
【０１１４】
優先度値ｐｒｉの変量に対して、シーケンスプログラムの実行時間と、サービス処理の実行時間とが比例的に変更されるためには、ΔＴｓｅｑおよびΔＴｓｖｃがΔｐｒｉに比例して変動する必要がある。よって、αとβを任意の定数とすれば、
【数３５】
0005866082.tif 000036
【数３６】
0005866082.tif 000037
とならなければならない。
【０１１５】
ここで、式（１４）および式（１６）より、
【数３７】
0005866082.tif 000038
が得られる。また、式（１５）および式（１７）より、
【数３８】
0005866082.tif 000039
が得られる。
【０１１６】
式（１８）および式（１９）を解くことにより、
【数３９】
0005866082.tif 000040
【数４０】
0005866082.tif 000041
が得られる。
【０１１７】
以上より、式（２０）および式（２１）をそれぞれ式（１２）と式（１３）とに代入すると、
【数４１】
0005866082.tif 000042
【数４２】
0005866082.tif 000043
となる。
【０１１８】
よって、ｒａｔｉｏの変化量は、ｐｒｉの変化量に対して、
【数４３】
0005866082.tif 000044
を掛けることで算出することができる。また、ｔｈｒｅｓの変化量は、ｐｒｉの変化量に対して、
【数４４】
0005866082.tif 000045
を掛けることで算出することができる。
【０１１９】
α＝−２、β＝１、および、γ＝１とした場合、式（２２）および式（２３）はそれぞれ、
【数４５】
0005866082.tif 000046
【数４６】
0005866082.tif 000047
となり、式（２２）および式（２３）において、
【数４７】
0005866082.tif 000048
【数４８】
0005866082.tif 000049
【数４９】
0005866082.tif 000050
【数５０】
0005866082.tif 000051
と置けば、式（３）および式（４）を導くことができる。
【０１２０】
次に、処理実行部２の動作について、図１２および図１３を参照しつつ説明する。
【０１２１】
図１２および図１３は、シーケンス処理プログラムの実行開始から９ｍｓ後に通信要求が発生した場合の、処理実行部２における処理切り換えの実施状況を例示する図である。
【０１２２】
図１２は、ｐｒｉ＝０の場合を示す。このとき、
【数５１】
0005866082.tif 000052
【数５２】
0005866082.tif 000053
となる。
【０１２３】
通信要求が発生した後、ｔｈｒｅｓで設定された時間（１１ｍｓ）を超えた時点でシーケンス処理からサービス処理への処理切り換えが実施される。そして、サービス処理の実行中に応答（図１２における通信応答）が行われる。
【０１２４】
また、サービス処理の実行時間は、シーケンス処理プログラムの実行時間（＝２０ｍｓ）とｒａｔｉｏとを掛け合わせることで算出され、
【数５３】
0005866082.tif 000054
となる。
【０１２５】
図１３は、優先度値をｐｒｉ＝０からｐｒｉ＝４に変更した場合、すなわち、図１２に例示される場合よりもサービス処理を優先とした場合の実施状況を示すものであり、式（１）および式（２）にそれぞれ代入して変更後のｒａｔｉｏの値とｔｈｒｅｓの値とをそれぞれ算出すると、
【数５４】
0005866082.tif 000055
【数５５】
0005866082.tif 000056
となる。
【０１２６】
図１３に例示される場合では、通信要求が発生した時間から７ｍｓ後にｔｈｒｅｓを超えるため、その時点でシーケンス処理からサービス処理への処理切り換えが実施される。そして、サービス処理の実行中に応答が行われる（図１３における通信応答）。
【０１２７】
また、サービス処理の実行時間は、シーケンス処理プログラムの実行時間とｒａｔｉｏを掛け合わせることで算出することができ、
【数５６】
0005866082.tif 000057
となる。
【０１２８】
以上より、図１２に例示される場合よりも図１３に例示される場合の方が、シーケンス処理への割り当て時間が短くなる。一方逆に、図１２に例示される場合よりも図１３に例示される場合の方が、サービス処理への割り当て時間が長くなっているため、よりサービス処理を優先するようにｔｈｒｅｓとｒａｔｉｏとを調整したことになる。
【０１２９】
本実施形態では、ｔｈｒｅｓとｒａｔｉｏを求める計算式が、優先度値ｐｒｉの変量に対して、シーケンスプログラムの実行時間とサービス処理の実行時間とが比例的に変更されるように構成された。このことにより、プログラマブルコントローラの使用者が意図した通りに、処理切り換えの動作を変更させることができる。
【０１３０】
なお、本実施形態においては、式（３）および式（４）を用いて、ｔｈｒｅｓｎｅｘｔおよびｒａｔｉｏｎｅｘｔを計算されたが、これ以外の計算式を用いてもよい。
【０１３１】
たとえば、本実施形態では、式（３）および式（４）を導出する過程で、
【数５７】
0005866082.tif 000058
として計算したが、Ｓをｔｈｒｅｓに反比例するような計算式を用いて導出してもよい。
【０１３２】
また、本実施形態においては、優先度値ｐｒｉの変動値（ｐｒｉｎｅｗ−ｐｒｉｏｌｄ）が１以上となるように変更された場合において、即座にｔｈｒｅｓおよびｒａｔｉｏに値が適用されるものとして説明された。しかし、ｐｒｉの変動値が１以上となるように変更された場合には、ｐｒｉの変動値を１としてｔｈｒｅｓの値とｒａｔｉｏの値とを変更する作業を、実際の変動値分だけ一定時間ごとに繰り返し実施してもよい。
【０１３３】
＜効果＞
以下に、上記の実施形態による効果を例示する。
【０１３４】
上記の実施形態によれば、プログラマブルコントローラが、受け付け部としての受け付けおよび計測部１３と、制御部としての切り換え制御部１２とを備える。
【０１３５】
受け付けおよび計測部１３は、サービス処理の実行要求を受け付ける。
【０１３６】
切り換え制御部１２は、受け付けおよび計測部１３でサービス処理の実行要求を受け付けた時にプログラマブルコントローラ１においてシーケンス処理プログラムの実行が行われている場合、サービス処理の実行要求を受け付けた時からの経過時間があらかじめ定められた第１しきい値としてのｔｈｒｅｓを超えた時点で、プログラマブルコントローラ１においてシーケンス処理プログラムの実行から切り換えて実行要求に対応するサービス処理の実行を行わせる。
【０１３７】
また、上記の実施形態によれば、プログラマブルコントローラは、プログラムを実行する処理回路１０２ａと、プログラムを記憶する記憶装置１０３とを備える。
【０１３８】
そして、処理回路１０２ａがプログラムを実行することによって、以下の動作が実現される。
【０１３９】
すなわち、サービス処理の実行要求を受け付けた時にプログラマブルコントローラ１においてシーケンス処理プログラムの実行が行われている場合、サービス処理の実行要求を受け付けた時からの経過時間があらかじめ定められたｔｈｒｅｓを超えた時点で、プログラマブルコントローラ１においてシーケンス処理プログラムの実行から切り換えて実行要求に対応するサービス処理の実行を行わせる。
【０１４０】
また、上記の実施形態によれば、プログラマブルコントローラは、処理回路１０２ｂを備える。
【０１４１】
そして、処理回路１０２ｂは、以下の動作を行う。
【０１４２】
すなわち、処理回路１０２ｂは、サービス処理の実行要求を受け付けた時にプログラマブルコントローラ１においてシーケンス処理プログラムの実行が行われている場合、サービス処理の実行要求を受け付けた時からの経過時間があらかじめ定められたｔｈｒｅｓを超えた時点で、プログラマブルコントローラ１においてシーケンス処理プログラムの実行から切り換えて実行要求に対応するサービス処理の実行を行わせる。
【０１４３】
このような構成によれば、たとえば、サービス処理の実行要求がシーケンス処理プログラムの実行開始直後に受け付けられた場合でも、サービス処理の実行要求がｔｈｒｅｓの時間よりも待たされることがなくなり、サービス処理の実行要求（通信要求）に対する応答時間が改善される。
【０１４４】
また、サービス処理の実行要求がない場合にはシーケンス処理が連続実行されるため、シーケンス処理の実行性能が向上する。
【０１４５】
なお、これらの構成以外の構成については適宜省略することができるが、本明細書に示される他の構成のうちの少なくとも１つを適宜追加した場合でも、上記の効果を生じさせることができる。
【０１４６】
また、上記の実施形態によれば、切り換え制御部１２は、シーケンス処理プログラムの実行から切り換えてサービス処理の実行が行われた時間があらかじめ定められた第２しきい値を超えた時点で、プログラマブルコントローラ１においてシーケンス処理プログラムの実行を行わせる。
【０１４７】
ここで、第２しきい値は、処理切り換えを行うまでに実行されたシーケンス処理プログラムの実行時間と、ｒａｔｉｏとを掛け合わせることで算出される。
【０１４８】
このような構成によれば、サービス処理の実行時間に上限値が設けられることにより、シーケンス処理プログラムの実行時間と、サービス処理の実行時間との比率を調整することができる。具体的には、ｒａｔｉｏの値を変更することで、シーケンス処理プログラムの実行時間と、サービス処理の実行時間との比率を調整することができる。
【０１４９】
また、サービス処理の内容によってサービス処理の実行時間が長くなることが抑制されるため、シーケンス処理プログラムを実行時間が、サービス処理の実行時間と比較して短くなることが抑制される。
【０１５０】
また、上記の実施形態によれば、第２しきい値は、サービス処理の実行に切り換える前のシーケンス処理プログラムの実行が行われた時間に、あらかじめ定められた第３しきい値としてのｒａｔｉｏが乗算された値である。
【０１５１】
このような構成によれば、サービス処理の実行時間に上限値が設けられることにより、シーケンス処理プログラムの実行時間と、サービス処理の実行時間との比率を調整することができる。具体的には、ｒａｔｉｏの値を変更することで、シーケンス処理プログラムの実行時間と、サービス処理の実行時間との比率を調整することができる。
【０１５２】
また、サービス処理の内容によってサービス処理の実行時間が長くなることが抑制されるため、シーケンス処理プログラムを実行時間が、サービス処理の実行時間と比較して短くなることが抑制される。
【０１５３】
また、上記の実施形態によれば、プログラマブルコントローラが、サービス処理の実行をシーケンス処理プログラムの実行よりも優先させる度合いを示す優先度値を外部から変更可能に設定する優先度値設定部７を備える。
【０１５４】
優先度値は、優先度値設定部７において設定変更することができる。また、優先度値は、プログラマブルコントローラ１に外部接続したコンピュータ装置９から設定変更することができる。
【０１５５】
そして、ｔｈｒｅｓおよびｒａｔｉｏのうちの少なくとも一方は、優先度値に基づいてあらかじめ定められる。
【０１５６】
このような構成によれば、使用環境に合わせて、使用者が、プログラマブルコントローラ１のシーケンス処理プログラムの実行とサービス処理の実行とのバランスを簡単に調整することができる。
【０１５７】
具体的には、優先度値を変更することでｔｈｒｅｓを調整し、シーケンス処理プログラムの実行からサービス処理の実行へ切り換えを行うまでの時間を調整することができる。また、優先度値を変更することでｒａｔｉｏを調整し、サービス処理の実行からシーケンス処理プログラムの実行へ切り換えを行うまでの時間を調整することができる。
【０１５８】
シーケンス処理プログラムの実行性能と通信処理の応答性能とを規定する優先度は、プログラマブルコントローラが設備または機械システムに取り付けた後に調整可能であることが望ましい。そのためには、プログラマブルコントローラ本体に取り付けられた機能部を用いて、優先度値が設定可能である必要がある。
【０１５９】
また、取り付けられる設備または機械システムによっては、プログラマブルコントローラが、人手では直接触れることのできない場所に取り付けられる場合がある。この場合には、プログラマブルコントローラに接続された外部装置から優先度値が設定可能である必要がある。
【０１６０】
これに対し、上記の実施形態によれば、優先度値は、優先度値設定部７において設定変更することができる。また、上記の実施形態によれば、優先度値は、プログラマブルコントローラ１に外部接続したコンピュータ装置９から設定変更することができる。そのため、優先度値が、プログラマブルコントローラが設備または機械システムに取り付けた後においても容易に調整可能である。
【０１６１】
また、上記の実施形態によれば、プログラマブルコントローラが、シーケンス処理部１０と、サービス処理部１１と、待ち時間超過検出部１４と、サービス処理超過検出部１５とを備える。
【０１６２】
シーケンス処理部１０は、シーケンス処理プログラムの実行と、シーケンス処理プログラムの実行が行われた時間の計測とを行う。サービス処理部１１は、サービス処理の実行と、サービス処理の実行が行われた時間の計測とを行う。
【０１６３】
待ち時間超過検出部１４は、サービス処理の実行要求を受け付けた時からの経過時間がｔｈｒｅｓを超えたことを検出する。サービス処理超過検出部１５は、サービス処理の実行が行われた時間が第２しきい値を超えたことを検出する。
【０１６４】
受け付けおよび計測部１３は、サービス処理の実行要求を受け付けた時からの経過時間を計測する。
【０１６５】
切り換え制御部１２は、受け付けおよび計測部１３でサービス処理の実行要求を受け付けた時にシーケンス処理部１０においてシーケンス処理プログラムの実行が行われている場合、待ち時間超過検出部１４における検出情報およびサービス処理超過検出部１５における検出情報に基づいて、シーケンス処理プログラムの実行から切り換えてサービス処理部１１において実行要求に対応するサービス処理の実行を行わせる。
【０１６６】
このような構成によれば、たとえば、サービス処理の実行要求がシーケンス処理プログラムの実行開始直後に受け付けられた場合でも、サービス処理の実行要求がｔｈｒｅｓの時間よりも待たされることがなくなり、サービス処理の実行要求（通信要求）に対する応答時間が改善される。
【０１６７】
また、サービス処理の実行要求がない場合にはシーケンス処理が連続実行されるため、シーケンス処理の実行性能が向上する。
【０１６８】
また、上記の実施形態によれば、プログラマブルコントローラの制御方法において、サービス処理の実行要求を受け付け、サービス処理の実行要求を受け付けた時にプログラマブルコントローラ１においてシーケンス処理プログラムの実行が行われている場合、サービス処理の実行要求を受け付けた時からの経過時間があらかじめ定められたｔｈｒｅｓを超えた時点で、プログラマブルコントローラ１においてシーケンス処理プログラムの実行から切り換えて実行要求に対応するサービス処理の実行を行わせる。
【０１６９】
このような構成によれば、たとえば、サービス処理の実行要求がシーケンス処理プログラムの実行開始直後に受け付けられた場合でも、サービス処理の実行要求がｔｈｒｅｓの時間よりも待たされることがなくなり、サービス処理の実行要求に対する応答時間が改善される。
【０１７０】
また、サービス処理の実行要求がない場合にはシーケンス処理が連続実行されるため、シーケンス処理の実行性能が向上する。
【０１７１】
なお、これらの構成以外の構成については適宜省略することができるが、本明細書に示される他の構成のうちの少なくとも１つを適宜追加した場合でも、上記の効果を生じさせることができる。
【０１７２】
また、上記の実施形態によれば、プログラマブルコントローラの制御方法において、サービス処理の実行要求を受け付けた時にプログラマブルコントローラ１においてサービス処理の実行が行われている場合、実行要求に対応するサービス処理の実行を行わせる。
【０１７３】
このような構成によれば、サービス処理の実行要求を受け付けた時にプログラマブルコントローラ１においてサービス処理の実行が行われている場合には、即座に実行要求に対応するサービス処理の実行を行わせることができる。
【０１７４】
また、上記の実施形態によれば、プログラマブルコントローラの制御方法において、サービス処理の実行要求を複数受け付け、サービス処理の実行要求を受け付けた時にプログラマブルコントローラ１においてシーケンス処理プログラムの実行が行われている場合、各サービス処理の実行要求を受け付けた時からの経過時間を合算した時間がｔｈｒｅｓを超えた時点で、プログラマブルコントローラ１においてシーケンス処理プログラムの実行から切り換えて実行要求に対応するサービス処理の実行を行わせる。
【０１７５】
このような構成によれば、サービス処理の実行要求が複数受け付けられた場合でも、各サービス処理の実行要求がｔｈｒｅｓの時間よりも待たされることがなくなり、サービス処理の実行要求に対する応答時間が改善される。
【０１７６】
また、上記の実施形態によれば、プログラマブルコントローラの制御方法において、シーケンス処理プログラムの実行から切り換えてサービス処理の実行が行われた時間があらかじめ定められた第２しきい値を超えた時点で、プログラマブルコントローラ１においてシーケンス処理プログラムの実行を行わせる。
【０１７７】
ここで、第２しきい値は、処理切り換えを行うまでに実行されたシーケンス処理プログラムの実行時間と、ｒａｔｉｏとを掛け合わせることで算出される。
【０１７８】
このような構成によれば、サービス処理の実行時間に上限値が設けられることにより、シーケンス処理プログラムの実行時間と、サービス処理の実行時間との比率を調整することができる。具体的には、ｒａｔｉｏの値を変更することで、シーケンス処理プログラムの実行時間と、サービス処理の実行時間との比率を調整することができる。
【０１７９】
また、サービス処理の内容によってサービス処理の実行時間が長くなることが抑制されるため、シーケンス処理プログラムを実行時間が、サービス処理の実行時間と比較して短くなることが抑制される。
【０１８０】
また、上記の実施形態によれば、プログラマブルコントローラの制御方法において、第２しきい値は、サービス処理の実行に切り換える前のシーケンス処理プログラムの実行が行われた時間に、あらかじめ定められたｒａｔｉｏが乗算された値である。
【０１８１】
このような構成によれば、サービス処理の実行時間に上限値が設けられることにより、シーケンス処理プログラムの実行時間と、サービス処理の実行時間との比率を調整することができる。具体的には、ｒａｔｉｏの値を変更することで、シーケンス処理プログラムの実行時間と、サービス処理の実行時間との比率を調整することができる。
【０１８２】
また、サービス処理の内容によってサービス処理の実行時間が長くなることが抑制されるため、シーケンス処理プログラムを実行時間が、サービス処理の実行時間と比較して短くなることが抑制される。
【０１８３】
また、上記の実施形態によれば、プログラマブルコントローラの制御方法において、サービス処理の実行をシーケンス処理プログラムの実行よりも優先させる度合いを示す優先度値に基づいて、ｔｈｒｅｓおよびｒａｔｉｏのうちの少なくとも一方があらかじめ定められる。
【０１８４】
このような構成によれば、使用環境に合わせて、使用者が、プログラマブルコントローラ１のシーケンス処理プログラムの実行とサービス処理の実行とのバランスを簡単に調整することができる。
【０１８５】
具体的には、優先度値を変更することでｔｈｒｅｓを調整し、シーケンス処理プログラムの実行からサービス処理の実行へ切り換えを行うまでの時間を調整することができる。また、優先度値を変更することでｒａｔｉｏを調整し、サービス処理の実行からシーケンス処理プログラムの実行へ切り換えを行うまでの時間を調整することができる。
【０１８６】
シーケンス処理プログラムの実行性能と通信処理の応答性能とのいずれを優先させるかは、プログラマブルコントローラが使用される設備の実現要件、プログラマブルコントローラが使用される機械システムの実現要件、または、これらを運用する間のシステム状況によって異なる。そのため、その優先度を簡易に変更することができることが望ましい。
【０１８７】
特許文献１に記載された技術では、通信処理の種別ごとの実行する時間を規定したテーブルを編集することで、通信処理の実行に割り当てる時間を変更することができる。しかし、通信処理の種別ごとに実行する時間を規定するには、各通信処理に関する高度な知識が必要となるため、一般のプログラマブルコントローラの使用者が通信種別ごとの実行する時間を規定することは困難である。
【０１８８】
特に、通信処理の種別ごとの割り当て時間を使用者が個別に規定する作業では、使用者が意図した通りにプログラマブルコントローラの性能を調整することが困難であった。
【０１８９】
これに対し、上記の実施形態によれば、使用環境に合わせて、使用者が、プログラマブルコントローラ１のシーケンス処理プログラムの実行とサービス処理の実行とのバランスを簡単に調整することができる。
【０１９０】
また、上記の実施形態によれば、プログラマブルコントローラの制御方法において、優先度値に基づいて、ｔｈｒｅｓおよびｒａｔｉｏを同時に定められる。
【０１９１】
このような構成によれば、使用環境に合わせて、使用者が、プログラマブルコントローラ１のシーケンス処理プログラムの実行とサービス処理の実行とのバランスを簡単に調整することができる。
【０１９２】
具体的には、優先度値を変更することでｔｈｒｅｓとｒａｔｉｏとを同時に調整し、シーケンス処理プログラムの実行時間とサービス処理の実行時間との比率を調整することができる。
【０１９３】
また、上記の実施形態によれば、プログラマブルコントローラの制御方法において、ｔｈｒｅｓおよびｒａｔｉｏが、優先度値に比例する。
【０１９４】
このような構成によれば、使用環境に合わせて、使用者が、プログラマブルコントローラ１のシーケンス処理プログラムの実行とサービス処理の実行とのバランスを簡単に調整することができる。
【０１９５】
具体的には、優先度値を変更することでｔｈｒｅｓとｒａｔｉｏとを同時に調整し、シーケンス処理プログラムの実行時間とサービス処理の実行時間との比率を使用者の意図した通りに調整することができる。
【０１９６】
また、上記の実施形態によれば、プログラマブルコントローラの制御方法が、ｔｈｒｅｓは、優先度値が大きくなるにしたがって小さくなる。また、ｒａｔｉｏは、優先度値が大きくなるにしたがって大きくなる。
【０１９７】
このような構成によれば、使用環境に合わせて、使用者が、プログラマブルコントローラ１のシーケンス処理プログラムの実行とサービス処理の実行とのバランスを簡単に調整することができる。
【０１９８】
具体的には、優先度値を変更することでｔｈｒｅｓとｒａｔｉｏとを同時に調整し、シーケンス処理プログラムの実行時間とサービス処理の実行時間との比率を使用者の意図した通りに調整することができる。
【０１９９】
＜変形例＞
上記実施形態では、各構成要素の寸法、形状、相対的配置関係または実施の条件などについても記載している場合があるが、これらはすべての局面において例示であって、本明細書に記載されたものに限られることはない。よって、例示されていない無数の変形例が、本技術の範囲内において想定される。たとえば、少なくとも１つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも１つの実施形態における少なくとも１つの構成要素を抽出し、他の実施形態の構成要素と組み合わせる場合が含まれる。
【０２００】
また、矛盾が生じない限り、上記実施形態において「１つ」備えられるものとして記載された構成要素は、「１つ以上」備えられていてもよい。さらに、各構成要素は概念的な単位であって、１つの構成要素が複数の構造物から成る場合と、１つの構成要素がある構造物の一部に対応する場合と、さらには、複数の構成要素が１つの構造物に備えられる場合とを含む。また、各構成要素には、同一の機能を発揮する限り、他の構造または形状を有する構造物が含まれる。
【０２０１】
また、本明細書における説明は、本技術に関するすべての目的のために参照され、いずれも、従来技術であると認めるものではない。
【０２０２】
また、上記実施形態で記載された各構成要素は、ソフトウェアまたはファームウェアとしても、それと対応するハードウェアとしても想定され、その双方の概念において、各構成要素は「部」または「処理回路」などと称される。
【０２０３】
本技術は、各構成要素が複数の装置に分散して備えられる場合（すなわち、システムのような態様）であってもよい。たとえば、データ保持部３は、図１においてはプログラマブルコントローラ１内に搭載されるものとして示されているが、外部の機能部であってもよい。その場合、プログラマブルコントローラ１内の他の機能部と互いに作用しあうことによって、全体としてデータ保持部３の機能を果たすものとする。
【符号の説明】
【０２０４】
１  プログラマブルコントローラ、２  処理実行部、３  データ保持部、４  待ち時間上限値、５  比率値、６  優先度値、７  優先度設定部、８  周辺器インターフェイス、９  コンピュータ装置、１０  シーケンス処理部、１１  サービス処理部、１２  切り換え制御部、１３  受け付けおよび計測部、１４  待ち時間超過検出部、１５  サービス処理超過検出部、１０２ａ，１０２ｂ  処理回路、１０３  記憶装置、１０４  入力および出力装置。
【要約】
本技術は、通信要求に対する応答時間の悪化を抑制することができるプログラマブルコントローラおよびその制御方法に関する。プログラマブルコントローラは、サービス処理の実行要求を受け付ける受け付け部（１３）と、受け付け部でサービス処理の実行要求を受け付けた時にプログラマブルコントローラ１においてシーケンス処理プログラムの実行が行われている場合、サービス処理の実行要求を受け付けた時からの経過時間があらかじめ定められた第１しきい値を超えた時点で、プログラマブルコントローラにおいてシーケンス処理プログラムの実行から切り換えて実行要求に対応するサービス処理の実行を行わせる制御部（１２）とを備える。【図１】
0005866082.tif 000059
【図２】
0005866082.tif 000060
【図３】
0005866082.tif 000061
【図４】
0005866082.tif 000062
【図５】
0005866082.tif 000063
【図６】
0005866082.tif 000064
【図７】
0005866082.tif 000065
【図８】
0005866082.tif 000066
【図９】
0005866082.tif 000067
【図１０】
0005866082.tif 000068
【図１１】
0005866082.tif 000069
【図１２】
0005866082.tif 000070
【図１３】
0005866082.tif 000071