(57)【特許請求の範囲】
【請求項１】
他装置への送信データ又は他装置からの受信データを格納するバッファを複数有する通信バッファにおいて前記送信データの送信処理が待機されるべきか否か判定する判定部を備え、
前記判定部は、前記送信データ及び前記受信データのいずれも格納されていない前記バッファの量に応じて、前記送信データに対する送信処理又は前記受信データの送信元である他装置による自装置への送信処理が待機されるべきか否か判定する伝送装置。
【請求項２】
他装置へ送信されるデータである送信データ又は他装置から受信されたデータである受信データを格納するバッファを複数有する通信バッファにおいて、前記送信データ及び前記受信データのいずれも格納されていないバッファである空きバッファの量に応じて、前記送信データに対する送信処理が待機されるべきか否か判定する判定部と、
前記判定部において待機されるべきと判定された場合、前記送信データを前記通信バッファに新たに格納する処理を一時的に実行しない通信制御部と、
を備える伝送装置。
【請求項３】
前記判定部は、前記空きバッファの量に応じて、前記送信データに対する送信処理が待機されるべき時間を判定し、
前記通信制御部は、前記判定部によって判定された時間の間、前記送信データを前記通信バッファに新たに格納する処理を一時的に実行しない、請求項２に記載の伝送装置。
【請求項４】
前記通信制御部は、所定のタイミングで前記送信データが送信されない場合に異常が発生したと判定する他装置に対して前記送信データを送信するための送信処理を制御し、
前記他装置は、前記送信処理が待機されることの通知を受けると前記所定のタイミングで前記送信データが送信されない場合であっても異常が発生したと判定せず、
前記通信制御部は、前記判定部において待機されるべきと判定された場合、前記送信データの送信先となる前記他装置に対して、前記送信データに対する送信処理が待機されることを通知する、請求項２又は３に記載の伝送装置。
【請求項５】
他装置への送信データ又は他装置からの受信データを格納するバッファを複数有する通信バッファにおける受信処理が待機されるべきか否か判定する判定部と、
前記判定部において待機されるべきと判定された場合、前記受信データの送信元である他装置に対して自装置に対する送信処理を一時的に実行しないことを指示する通信制御部と、を備え、
前記判定部は、前記送信データ及び前記受信データのいずれも格納されていない前記バッファの量に応じて、前記受信処理が待機されるべきか否か判定する伝送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、伝送装置に関する。
【背景技術】
【０００２】
従来、ＰＬＣ（Programmable Logic Controller）を適用したシステムでは、ＰＬＣ間又はＰＬＣと他装置との間で通信が行われる。一般的にＰＬＣの通信ユニットには多数のバッファが設けられない。そのため、想定されている量を超えた通信が発生すると、バッファからデータが溢れてしまう可能性があった。この場合、通信が不能になる場合や、装置がエラーダウンしてしまう場合があった。このような問題はＰＬＣに限られた問題ではなく、バッファからデータが溢れることのない程度に充分なバッファを有していない装置全般に共通する問題である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１８６６２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、より安定した通信を行うことを可能とする伝送装置を提供することである。
【課題を解決するための手段】
【０００５】
実施形態の伝送装置は、判定部を持つ。判定部は、送信データ又は他装置からの受信データを格納するバッファを複数有する通信バッファにおける送信処理が待機されるべきか否か判定する。判定部は、前記送信データ及び前記受信データのいずれも格納されていない前記バッファの量に応じて、前記送信データに対する送信処理又は前記他装置による送信処理が待機されるべきか否か判定する。
【図面の簡単な説明】
【０００６】
【図１】第一実施形態の設備監視システム（設備監視システム１００）のシステム構成を表す図である。
【図２】第一実施形態の第一ロジック実行装置（第一ロジック実行装置１０）の機能の概略を示すブロック図である。
【図３】待機時間テーブルの具体例を示す図である。
【図４】第一実施形態の判定部（判定部１１４）の処理の流れの具体例を表すフローチャートである。
【図５】第二実施形態の設備監視システム（設備監視システム１００ａ）のシステム構成を表す図である。
【図６】第二実施形態の第一ロジック実行装置（第一ロジック実行装置１０ａ）の機能の概略を示すブロック図である。
【図７】第二実施形態の第二ロジック実行装置（第二ロジック実行装置４０ａ）の機能の概略を示すブロック図である。
【図８】第二実施形態の判定部（判定部１１４ａ）の処理の流れの具体例を表すフローチャートである。
【図９】第三実施形態の設備監視システム（設備監視システム１００ｂ）のシステム構成を表す図である。
【図１０】第三実施形態の第一ロジック実行装置（第一ロジック実行装置１０ｂ）の機能の概略を示すブロック図である。
【図１１】第三実施形態の第二ロジック実行装置（第二ロジック実行装置４０ｂ）の機能の概略を示すブロック図である。
【図１２】第三実施形態の判定部（判定部１１４ｂ）の処理の流れの具体例を表すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態の伝送装置の具体例として、設備監視システムの第一ロジック実行装置について図面を参照して説明する。
（第一実施形態）
図１は、第一実施形態の設備監視システム（設備監視システム１００）のシステム構成を表す図である。設備監視システム１００は、第一ロジック実行装置１０、監視制御装置２０、サーバ３０、第二ロジック実行装置４０及びネットワーク５０を備える。設備監視システム１００は、所定の目的のために設置された設備を監視する。例えば、設備監視システム１００は、上下水道処理設備を監視対象としてもよい。
【０００８】
第一ロジック実行装置１０は、実施形態の伝送装置に相当する装置である。第一ロジック実行装置１０は、例えば、ＰＬＣ等の制御装置である。第一ロジック実行装置１０は、実行対象のプログラムによって定められたロジックを一つ一つ順に実行する。第一ロジック実行装置１０が実行するロジックは、第一ロジック実行装置１０の記憶装置に予め記憶されている。
【０００９】
第一ロジック実行装置１０は、ネットワーク５０を介して他の装置（監視制御装置２０、サーバ３０）と通信できる。第一ロジック実行装置１０は、ネットワーク５０とは異なる経路（例えば、ケーブル接続、無線通信、他のネットワーク）を介して、第二ロジック実行装置４０と通信できる。第一ロジック実行装置１０は、不図示の広域ネットワークを介して他の装置（例えば遠隔地に設置された上下水道処理設備の装置）と通信してもよい。
【００１０】
監視制御装置２０は、設備監視システム１００の監視対象となっている装置を監視する。例えば、監視制御装置２０は、ネットワーク５０、第一ロジック実行装置１０を介して、上下水道処理設備の装置の情報を取得する。監視制御装置２０は、取得された情報に基づいて各装置の監視を行う。
【００１１】
サーバ３０は、監視制御装置２０によって行われた監視の結果を示す情報を、ネットワーク５０等の通信網を介して他の情報処理装置に提供する。
【００１２】
第二ロジック実行装置４０は、予め設定されたプログラム（ロジック）に従って動作する。第二ロジック実行装置４０は、第一ロジック実行装置１０と通信できる。第二ロジック実行装置４０は、不図示の広域ネットワークを介して他の装置（例えば遠隔地に設置された上下水道処理設備の装置）と通信してもよい。
【００１３】
図２は、第一実施形態の第一ロジック実行装置（第一ロジック実行装置１０）の機能の概略を示すブロック図である。第一ロジック実行装置１０は、プロセッサモジュール１１及び通信モジュール１２を備える。
【００１４】
プロセッサモジュール１１は、ロジック実行部１１１、通信制御部１１２、バッファ情報取得部１１３、判定部１１４、待機時間記憶部１１５及び計時部１１６を備える。
プロセッサモジュール１１は、例えば、ＰＬＣのプロセッサとして構成されてもよいし、ＣＰＵ（Central Processing Unit）等のプロセッサとして構成されてもよい。この場合、上記各機能部は、プロセッサによってプログラムが実行されることにより実現される。また、プロセッサモジュール１１の上記機能の一部又は全部は、ＦＰＧＡ（Field Programmable Gate Array）等のプログラマブルロジックデバイスを用いて実現されてもよい。
【００１５】
ロジック実行部１１１は、予め設定されたプログラム（ロジック）を実行する。ロジック実行部１１１は、他の装置に対してデータを送信する場合、通信制御部１１２にデータの送信を指示する。第一実施形態及び第二実施形態の説明では、ロジック実行部１１１により送信が指示されるデータを送信データという。
【００１６】
通信制御部１１２は、通信モジュール１２による通信処理を制御する。通信制御部１１２は、他の装置から受信されたデータ（以下「受信データ」という。）が通信バッファ１２１に格納されると、所定の受信タイミングで通信バッファ１２１から受信データを読み出す。通信制御部１１２は、読み出された受信データをロジック実行部１１１に渡す。通信制御部１１２は、ロジック実行部１１１から送信データを受けると、所定の送信タイミングで通信バッファ１２１に送信データを格納する。ただし、通信制御部１１２は、判定部１１４によって待機指示が設定されている間は送信データを通信バッファ１２１に格納しない。
【００１７】
バッファ情報取得部１１３は、通信モジュール１２の通信バッファ１２１に関する情報を取得する。バッファ情報には、通信バッファ１２１の状態を表す情報が含まれる。バッファ情報には、例えば通信バッファ１２１の空きバッファの数（以下「空きバッファ数」という。）に関する情報が含まれる。空きバッファとは、送信データ及び受信データのいずれも有効に格納されていない状態のバッファである。
【００１８】
判定部１１４は、バッファ情報取得部１１３によって取得されたバッファ情報に基づいて、通信制御部１１２による送信処理が待機（停止）されるべきか否か判定する（以下、この処理を「待機判定処理」という。）。例えば、判定部１１４は、通信制御部１１２による送信処理が待機されるべき時間を判定する。待機されるべき時間が０秒であると判定された場合には、待機される必要が無いと判定されたことと同義である。
【００１９】
より具体的には、判定部１１４は、バッファ情報に含まれる空きバッファ数と、待機時間記憶部１１５に記憶される待機時間テーブルとに基づいて待機されるべき時間を判定してもよい。判定部１１４は、待機されるべきと判定された場合、送信処理の実行を一時的に待機することを通信制御部１１２に指示する。
【００２０】
待機時間記憶部１１５は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。待機時間記憶部１１５は、待機時間テーブルを記憶する。図３は、待機時間テーブルの具体例を示す図である。待機時間テーブルは、複数のレコード６１を有する。レコード６１は、空きバッファ数の値と、待機時間の値とを有する。レコード６１の待機時間の値には、そのレコード６１の空きバッファ数の値が少ないほど長い時間が設定される。空きバッファ数の値が所定の閾値よりも多い場合には、待機時間は０秒と設定されてもよい。
【００２１】
図２の説明に戻る。計時部１１６は、判定部１１４によって計時開始の指示を受けると計時を開始する。計時部１１６は、計時の結果を判定部１１４に出力する。計時部１１６は、計時開始の指示を受けてから、判定部１１４によって設定された時間が経過すると、設定された時間が経過したことを判定部１１４に通知してもよい。計時部１１６は、計時開始の指示を受けた後、所定のタイミング毎に判定部１１４に対して経過した時間を通知してもよい。
【００２２】
通信モジュール１２は、通信バッファ１２１、通信処理部１２２及びバッファ情報通知部１２３を備える。
通信バッファ１２１は、送信データ及び受信データを格納するためのバッファを複数備える。
通信処理部１２２は、通信バッファ１２１に格納されている送信データに対し、データの送信に必要な処理（符号化処理、変調処理など）を実行することによって送信信号を生成する。通信処理部１２２は、生成された送信信号をネットワーク５０に送出する。通信処理部１２２は、ネットワーク５０から信号を受信すると、受信された信号に対してデータの受信に必要な処理（復調処理、復号処理など）を実行することによって受信データを生成する。通信処理部１２２は、生成された受信データを通信バッファ１２１に格納する。
【００２３】
バッファ情報通知部１２３は、通信バッファ１２１を参照し、通信バッファ１２１の空きバッファ数を取得する。バッファ情報通知部１２３は、空きバッファ数に関する情報を含むバッファ情報を生成する。バッファ情報通知部１２３は、バッファ情報をバッファ情報取得部１１３に通知する。
【００２４】
図４は、第一実施形態の判定部（判定部１１４）の処理の流れの具体例を表すフローチャートである。まず、判定部１１４は、バッファ情報取得部１１３によって取得されたバッファ情報に基づいて待機判定処理を行う（ステップＳ１０１）。待機判定処理の結果、待機時間がある（待機時間が０秒ではない）と判定された場合（ステップＳ１０２−ＹＥＳ）、判定部１１４は、通信制御部１１２に対して待機指示を通知する（ステップＳ１０３）。通信制御部１１２は、待機指示を受けると、待機指示が解除されるまで通信バッファ１２１に送信データを格納しない。
【００２５】
次に、判定部１１４は、計時部１１６に対して計時の開始を指示する（ステップＳ１０４）。計時の開始の指示に応じて計時部１１６が計時を開始する。待機時間が経過するまで判定部１１４は待機指示解除を通知しない（ステップＳ１０５−ＮＯ）。待機時間が経過すると（ステップＳ１０５−ＹＥＳ）、判定部１１４は通信制御部１１２に対して待機指示の解除を通知する（ステップＳ１０６）。待機指示の解除が通知されると、通信制御部１１２は、送信データの通信バッファ１２１への格納を再開する。
【００２６】
ステップＳ１０２の処理において待機時間が無い（待機時間が０秒である）と判定された場合（ステップＳ１０２−ＮＯ）、判定部１１４は、通信制御部１１２に対して待機指示を通知しない。以上の処理を判定部１１４は所定のタイミングで繰り返し実行する。所定のタイミングは、例えばバッファ情報取得部１１３によって新たなバッファ情報が取得されたタイミングであってもよい。所定のタイミングは、直前の処理の実行（図４のフローチャートの処理の実行）から予め定められた時間（例えば、０．１秒、１秒、１０秒など）が経過したタイミングであってもよい。所定のタイミングは他のタイミングであってもよい。
【００２７】
このように構成された第一ロジック実行装置１０によれば、より安定した通信を行うことが可能となる。以下、このような効果の詳細について説明する。
第一ロジック実行装置１０では、通信バッファ１２１の空きバッファ数が少ない場合、通信制御部１１２は新たな送信データの通信バッファ１２１への格納を待機する。そのため、送信データによって通信バッファ１２１の空きバッファ数が少なくなることを抑止できる。その結果、通信処理部１２２において新たに信号が受信された際に、受信データを格納するための空きバッファが無い状態が生じることを抑止できる。したがって、新たな受信データが通信バッファ１２１から漏れてしまい通信にエラーが生じてしまうことを防止することで、より安定した通信を行うことが可能となる。同様に、ロジック実行部１１１において新たに送信データが生成された際に、通信制御部１１２が送信データを通信バッファ１２１に格納しようとしてオーバーフローが生じてしまうことを抑止できる。したがって、より安定した通信を行うことが可能となる。
上述した第一実施形態において、通信バッファは、送信データが格納されるバッファ（送信バッファ）と、受信データが格納されるバッファ（受信バッファ）とに分けて設けられてもよい。
第二ロジック実行装置４０はネットワーク５０に接続されるように構成されてもよい。この場合、第一ロジック実行装置１０は、ネットワーク５０を介して第二ロジック実行装置４０と通信できる。
【００２８】
（第二実施形態）
図５は、第二実施形態の設備監視システム（設備監視システム１００ａ）のシステム構成を表す図である。設備監視システム１００ａは、第一ロジック実行装置１０に代えて第一ロジック実行装置１０ａを備える点、第二ロジック実行装置４０に代えて第二ロジック実行装置４０ａを備える点、で第一実施形態の設備監視システム１００と異なる。設備監視システム１００ａの他の構成に関しては、第一実施形態の設備監視システム１００の構成と同様である。
【００２９】
図６は、第二実施形態の第一ロジック実行装置（第一ロジック実行装置１０ａ）の機能の概略を示すブロック図である。第一ロジック実行装置１０ａは、通信制御部１１２に代えて通信制御部１１２ａを備える点、判定部１１４に代えて判定部１１４ａを備える点、で第一実施形態の第一ロジック実行装置１０と異なる。第一ロジック実行装置１０ａの他の構成に関しては、第一実施形態の第一ロジック実行装置１０の構成と同様である。
【００３０】
通信制御部１１２ａは、判定部１１４ａによって待機すると判定された場合、送信処理の実行が一時的に待機されることを示す情報（待機通知）を第二ロジック実行装置４０ａに送信する。待機通知には、送信処理の実行が待機される時間（待機時間）が含まれてもよい。
【００３１】
判定部１１４ａは、待機判定処理において待機されるべきと判定した場合、待機指示に加えて待機通知の送信を通信制御部１１２ａに指示する。通信制御部１１２ａは、待機通知の送信の指示に応じて、他の装置に対し待機通知を送信する。
【００３２】
図７は、第二実施形態の第二ロジック実行装置（第二ロジック実行装置４０ａ）の機能の概略を示すブロック図である。第二ロジック実行装置４０ａは、プロセッサモジュール４１及び通信モジュール４２を備える。
【００３３】
プロセッサモジュール４１は、ロジック実行部４１１、通信制御部４１２及び異常判定部４１３を備える。
プロセッサモジュール４１は、例えば、ＰＬＣのプロセッサとして構成されてもよいし、ＣＰＵ等のプロセッサとして構成されてもよい。この場合、上記各機能部は、プロセッサによってプログラムが実行されることにより実現される。また、プロセッサモジュール４１の上記機能の一部又は全部は、ＦＰＧＡ等のプログラマブルロジックデバイスを用いて実現されてもよい。
【００３４】
ロジック実行部４１１は、予め設定されたプログラム（ロジック）を実行する。ロジック実行部４１１は、他の装置に対してデータを送信する場合、通信制御部４１２にデータの送信を指示する。また、ロジック実行部４１１は、他の装置から送信されたデータを通信制御部４１２から受ける。
【００３５】
通信制御部４１２は、通信モジュール４２による通信処理を制御する。通信制御部４１２は、他の装置から受信されたデータが通信バッファ４２１に格納されると、所定の受信タイミングで通信バッファ４２１からデータを読み出す。通信制御部４１２は、読み出されたデータをロジック実行部４１１に渡す。通信制御部４１２は、ロジック実行部４１１からデータを受けると、所定の送信タイミングで通信バッファ４２１にデータを格納する。
【００３６】
異常判定部４１３は、第一ロジック実行装置１０ａから受信されたデータの内容やタイミングに基づいて異常の発生を判定する。例えば、所定の時間以上継続して第一ロジック実行装置１０ａから新たなデータが受信されなかった場合、異常判定部４１３は、第一ロジック実行装置１０ａにおいて異常（故障やエラー）が生じたと判定する。ただし、異常判定部４１３は、第一ロジック実行装置１０ａから待機通知を受けた場合、所定の時間以上継続して第一ロジック実行装置１０ａから新たなデータが送信されなかったとしても、第一ロジック実行装置１０ａにおいて異常が生じたとは判定しない。待機通知に待機時間が含まれている場合、異常判定部４１３は、待機通知を受信してから待機時間が経過するまでの間は、第一ロジック実行装置１０ａから新たなデータが送信されなかったとしても、第一ロジック実行装置１０ａにおいて異常が生じたとは判定しない。
【００３７】
図８は、第二実施形態の判定部（判定部１１４ａ）の処理の流れの具体例を表すフローチャートである。なお、図８において、図４と同じ内容の処理には同じ符号を付して説明を省略する。
【００３８】
判定部１１４ａは、待機時間がある（待機時間が０秒ではない）と判定した場合（ステップＳ１０２−ＹＥＳ）、通信制御部１１２ａに対して待機指示及び待機通知送信指示を通知する（ステップＳ１０３，ステップＳ１１１）。通信制御部１１２ａは、待機指示を受けると、待機指示が解除されるまで通信バッファ１２１に送信データを格納しない。また、通信制御部１１２ａは、待機通知送信指示を受けると、送信データの送信先となっている他の装置（例えば第二ロジック実行装置４０ａ）に対して待機通知を送信する。その後、ステップＳ１０４以降の処理が実行される。
【００３９】
このように構成された第二実施形態の第一ロジック実行装置１０ａ及び第二ロジック実行装置４０ａによれば、より安定した通信を行うことが可能となる。以下、このような効果の詳細について説明する。
【００４０】
第二実施形態において、第二ロジック実行装置４０ａは、所定のタイミングで第一ロジック実行装置１０ａから所定の送信データを受信することになっている装置である。一般的にこのような装置は、第一ロジック実行装置１０ａから一定時間以上継続して新たな送信データを受信できない場合には、第一ロジック実行装置１０ａにおいて異常が生じたと判定する。第二ロジック実行装置４０ａにおいても、第一ロジック実行装置１０ａから一定時間以上継続して新たな送信データを受信できない場合には、異常判定部４１３が上記のような判定を行う。第一ロジック実行装置１０ａにおいて、送信処理の待機が発生すると、その間は第一ロジック実行装置１０ａから新たな送信データが送信されない。このとき、第一ロジック実行装置１０ａには異常やエラーが発生しているわけではないにもかかわらず、他の装置は第一ロジック実行装置１０ａにおいて異常が発生したと誤って判定するおそれがある。
【００４１】
このような問題に対し、第二実施形態における第二ロジック実行装置４０ａは、待機通知が受信されると、所定の時間以上継続して第一ロジック実行装置１０ａから新たなデータが送信されなかったとしても、第一ロジック実行装置１０ａにおいて異常が生じたとは判定しない。また、待機通知に待機時間が含まれる場合、異常判定部４１３は、待機通知を受信してから待機時間が経過するまでの間は、第一ロジック実行装置１０ａから新たなデータが送信されなかったとしても、第一ロジック実行装置１０ａにおいて異常が生じたとは判定しない。
【００４２】
このような理由により、第二実施形態では、第一ロジック実行装置１０ａにおいて送信処理の待機が発生したとしても、誤って第一ロジック実行装置１０ａに異常が発生したと判定されてしまうことを防止できる。そのため、より安定した通信を行うことが可能となる。
【００４３】
第二実施形態において、第一ロジック実行装置１０ａの通信相手となる装置は、第二ロジック実行装置４０ａに限定される必要は無い。例えば、監視制御装置２０又はサーバ３０が第一ロジック実行装置１０ａの通信相手となる装置であってもよい。この場合、異常判定部４１３は、第一ロジック実行装置１０ａの通信相手となる装置に設けられる。
【００４４】
（第三実施形態）
図９は、第三実施形態の設備監視システム（設備監視システム１００ｂ）のシステム構成を表す図である。設備監視システム１００ｂは、第一ロジック実行装置１０ａに代えて第一ロジック実行装置１０ｂを備える点、第二ロジック実行装置４０ａに代えて第二ロジック実行装置４０ｂを備える点、で第二実施形態の設備監視システム１００ａと異なる。設備監視システム１００ｂの他の構成に関しては、第二実施形態の設備監視システム１００ａの構成と同様である。
【００４５】
図１０は、第三実施形態の第一ロジック実行装置（第一ロジック実行装置１０ｂ）の機能の概略を示すブロック図である。第一ロジック実行装置１０ｂは、通信制御部１１２ａに代えて通信制御部１１２ｂを備える点、判定部１１４ａに代えて判定部１１４ｂを備える点、計時部１１６を備えない点、で第二実施形態の第一ロジック実行装置１０ａと異なる。第一ロジック実行装置１０ｂの他の構成に関しては、第二実施形態の第一ロジック実行装置１０ａの構成と同様である。
【００４６】
通信制御部１１２ｂは、通信モジュール１２による通信処理を制御する。通信制御部１１２ｂは、受信データが通信バッファ１２１に格納されると、所定の受信タイミングで通信バッファ１２１から受信データを読み出す。通信制御部１１２ｂは、読み出された受信データをロジック実行部１１１に渡す。通信制御部１１２ｂは、ロジック実行部１１１から送信データを受けると、所定の送信タイミングで通信バッファ１２１に送信データを格納する。通信制御部１１２ｂは、判定部１１４ｂによって待機が必要であると判定された場合、送信処理の実行の待機を依頼することを示す情報（送信待機依頼）を第二ロジック実行装置４０ｂに送信する。送信待機依頼には、送信処理の実行が待機される時間（待機時間）が含まれてもよい。
なお、通信制御部１１２ｂは、第一実施形態及び第二実施形態の通信制御部のような送信処理の待機は行わない。
【００４７】
判定部１１４ｂは、バッファ情報取得部１１３によって取得されたバッファ情報に基づいて、第二ロジック実行装置４０ｂにおいて送信処理が待機されるべきか否か判定する（以下、この処理を「待機依頼判定処理」という。）。例えば、判定部１１４ｂは、第二ロジック実行装置４０ｂによる送信処理が待機されるべき時間を判定する。待機されるべき時間が０秒であると判定された場合には、待機される必要が無いと判定されたことと同義である。
【００４８】
より具体的には、判定部１１４ｂは、バッファ情報に含まれる空きバッファ数と、待機時間記憶部１１５に記憶される待機時間テーブルとに基づいて待機されるべき時間を判定する。判定部１１４ｂは、待機されるべきと判定された場合、送信待機依頼の第二ロジック実行装置４０ｂへの送信を通信制御部１１２ｂに指示する。
【００４９】
図１１は、第三実施形態の第二ロジック実行装置（第二ロジック実行装置４０ｂ）の機能の概略を示すブロック図である。第二ロジック実行装置４０ｂは、プロセッサモジュール４１ｂ及び通信モジュール４２を備える。
【００５０】
プロセッサモジュール４１ｂは、ロジック実行部４１１、通信制御部４１２ｂ及び計時部４１４を備える。
プロセッサモジュール４１ｂは、例えば、ＰＬＣのプロセッサとして構成されてもよいし、ＣＰＵ等のプロセッサとして構成されてもよい。この場合、上記各機能部は、プロセッサによってプログラムが実行されることにより実現される。また、プロセッサモジュール４１ｂの上記機能の一部又は全部は、ＦＰＧＡ等のプログラマブルロジックデバイスを用いて実現されてもよい。
【００５１】
ロジック実行部４１１は、予め設定されたプログラム（ロジック）を実行する。ロジック実行部４１１は、他の装置に対してデータを送信する場合、通信制御部４１２ｂにデータの送信を指示する。また、ロジック実行部４１１は、他の装置から送信されたデータを通信制御部４１２ｂから受ける。
【００５２】
通信制御部４１２ｂは、通信モジュール１２による通信処理を制御する。通信制御部４１２ｂは、他の装置から受信されたデータが通信バッファ４２１に格納されると、所定の受信タイミングで通信バッファ４２１からデータを読み出す。通信制御部４１２ｂは、読み出されたデータをロジック実行部４１１に渡す。通信制御部４１２ｂは、ロジック実行部４１１から送信対象のデータ（以下、本実施形態において「送信データ」という。）受けると、所定の送信タイミングで通信バッファ４２１に送信データを格納する（以下、本実施形態において「送信処理」という。）。
【００５３】
通信制御部４１２ｂは、第一ロジック実行装置１０ｂから送信待機依頼を受信すると、送信処理の実行を待機する。通信制御部４１２ｂが送信処理の実行を待機する時間は、予め定められた固定値の時間であってもよいし、送信待機依頼に含まれる待機時間であってもよい。
【００５４】
計時部４１４は、通信制御部４１２ｂによって計時開始の指示を受けると計時を開始する。計時部４１４は、計時の結果を通信制御部４１２ｂに出力する。計時部４１４は、計時開始の指示を受けてから、通信制御部４１２ｂによって設定された時間が経過すると、設定された時間が経過したことを通信制御部４１２ｂに通知してもよい。計時部４１４は、計時開始の指示を受けた後、所定のタイミング毎に通信制御部４１２ｂに対して経過した時間を通知してもよい。
【００５５】
図１２は、第三実施形態の判定部（判定部１１４ｂ）の処理の流れの具体例を表すフローチャートである。
まず、判定部１１４ｂは、バッファ情報取得部１１３によって取得されたバッファ情報に基づいて待機依頼判定処理を行う（ステップＳ１２１）。待機依頼判定処理の結果、待機時間がある（待機時間が０秒ではない）と判定された場合（ステップＳ１２２−ＹＥＳ）、判定部１１４ｂは、通信制御部１１２ｂに対して送信待機依頼送信指示を通知する（ステップＳ１２３）。通信制御部１１２ｂは、送信待機依頼送信指示を受けると、第二ロジック実行装置４０ａに対して送信待機依頼を送信する。
【００５６】
ステップＳ１２２の処理において待機時間が無い（待機時間が０秒である）と判定された場合（ステップＳ１２２−ＮＯ）、判定部１１４ｂは、通信制御部１１２に対して送信待機依頼送信指示を通知しない。以上の処理を判定部１１４ｂは所定のタイミングで繰り返し実行する。所定のタイミングは、例えばバッファ情報取得部１１３によって新たなバッファ情報が取得されたタイミングであってもよい。所定のタイミングは、予め定められた時間（例えば、０．１秒、１秒、１０秒など）の経過であってもよい。所定のタイミングは他のタイミングであってもよい。
【００５７】
このように構成された第三実施形態の第一ロジック実行装置１０ｂ及び第二ロジック実行装置４０ｂによれば、より安定した通信を行うことが可能となる。以下、このような効果の詳細について説明する。
【００５８】
第三実施形態において、第二ロジック実行装置４０ｂは、第一ロジック実行装置１０ｂに対してデータを送信する装置である。第一ロジック実行装置１０ｂは、通信バッファ１２１の空きバッファ数が少ない場合、データの送信元となっている第二ロジック実行装置４０ｂに対し、送信処理の待機を依頼する。第二ロジック実行装置４０ｂによる送信処理が待機されることによって、一時的に第一ロジック実行装置１０ｂの通信バッファ１２１の空きバッファ数の低減を抑止することが可能となる。すなわち、受信データによって通信バッファ１２１の空きバッファ数が少なくなることを抑止できる。その結果、通信処理部１２２において新たに信号を送信する際に、通信バッファ１２１の空きバッファが無い状態が生じることを抑止できる。したがって、空きバッファ数の不足により送信データが送信されないことを抑止できる。このように、より安定した通信を行うことが可能となる。
【００５９】
第三実施形態における第一ロジック実行装置１０ｂは、第二実施形態における第二ロジック実行装置４０ａが備える異常判定部４１３と同等の構成を備えてもよい。この場合、異常判定部４１３は、第二ロジック実行装置４０ｂにおいて送信処理が待機されるべきと判定された場合、所定の時間又は待機時間が経過するまでは、第二ロジック実行装置４０ｂから新たなデータが送信されなかったとしても、第二ロジック実行装置４０ｂにおいて異常が生じたとは判定しない。
【００６０】
第三実施形態において、第一ロジック実行装置１０ｂの通信相手となる装置は、第二ロジック実行装置４０ｂに限定される必要は無い。例えば、監視制御装置２０又はサーバ３０が第一ロジック実行装置１０ｂの通信相手となる装置であってもよい。この場合、通信制御部４１２ｂ及び計時部４１４は、第一ロジック実行装置１０ｂの通信相手となる装置に設けられる。
【００６１】
第三実施形態において、第一ロジック実行装置１０ｂは、計時部１１６を備えないことが必須ではない。すなわち、第一ロジック実行装置１０ｂは計時部１１６を備えるように構成されてもよい。
第三実施形態において、第一ロジック実行装置１０ｂが送信処理の待機を行わないことは必須ではない。すなわち、通信制御部１１２ｂは、第一実施形態及び第二実施形態の通信制御部のような送信処理の待機は行ってもよい。
【００６２】
以上説明した少なくともひとつの実施形態によれば、第一ロジック実行装置のバッファの状況に応じて通信が待機されるため、より安定した通信を行うことが可能となる。
【００６３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００６４】
１００…ロジック実行装置，  １０，１０ａ，１０ｂ…第一ロジック実行装置，  ２０…監視制御装置，  ３０…サーバ，  ４０，４０ａ，４０ｂ…第二ロジック実行装置，  １１…プロセッサモジュール，  １１１…ロジック実行部，  １１２，１１２ａ，１１２ｂ…通信制御部，  １１３…バッファ情報取得部，  １１４，１１４ａ，１１４ｂ…判定部，  １１５…待機時間記憶部，  １１６…計時部，  １２…通信モジュール，  １２１…通信バッファ，  １２２…通信処理部，  １２３…バッファ情報通知部，  ４１…プロセッサモジュール，  ４１１…ロジック実行部，  ４１２…通信制御部，  ４１３…異常判定部，  ４１４…計時部，  ４２…通信モジュール，  ４２１…通信バッファ，  ４２２…通信処理部
【図１】
0006373753.tif 000002
【図２】
0006373753.tif 000003
【図３】
0006373753.tif 000004
【図４】
0006373753.tif 000005
【図５】
0006373753.tif 000006
【図６】
0006373753.tif 000007
【図７】
0006373753.tif 000008
【図８】
0006373753.tif 000009
【図９】
0006373753.tif 000010
【図１０】
0006373753.tif 000011
【図１１】
0006373753.tif 000012
【図１２】
0006373753.tif 000013