(57)【要約】【課題】ネットワーク負荷を低減し、通信遅延を抑制することができる通信装置、遠隔制御システム、通信方法及びコンピュータプログラムを提供することである。【解決手段】実施形態の通信装置は、前処理実行部と、通信部とを持つ。前処理実行部は、制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号に対してデータ量を削減するための処理である前処理を実行させる前処理プログラムと、自装置の演算処理によって生じる演算負荷と、自装置を制御する制御装置と自装置との間の通信における通信負荷とに基づいて、所定の条件が満たされた場合に前記検知信号に対して前記前処理プログラムを実行する。通信部は、前記前処理プログラムが実行された前記検知信号を前記制御装置に送信する。【選択図】図２
2017188756.tif 000002
【特許請求の範囲】
【請求項１】
制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号に対してデータ量を削減するための処理である前処理を実行させる前処理プログラムと、自装置の演算処理によって生じる演算負荷と、自装置を制御する制御装置と自装置との間の通信における通信負荷とに基づいて、所定の条件が満たされた場合に前記検知信号に対して前記前処理プログラムを実行する前処理実行部と、
前記前処理プログラムが実行された前記検知信号を前記制御装置に送信する通信部と、
を備える通信装置。
【請求項２】
前記前処理実行部は、前記演算負荷が所定の閾値以上であって、かつ、前記通信負荷に応じた前処理プログラムが存在する場合に前記所定の条件が満たされたと判定し、前記前処理プログラムを前記検知信号に実行する、請求項１に記載の通信装置。
【請求項３】
前記前処理プログラムは、前記演算負荷に応じた複数の手法の前処理プログラムと、前記通信負荷に応じた複数の手法の前処理プログラムとであり、
前記前処理実行部は、前記演算負荷が所定の閾値以上であって、かつ、前記通信負荷に応じた前処理プログラムが存在し、かつ、前記演算負荷に応じて選択された前処理プログラムで示される前処理方法と、前記通信負荷に応じて選択された前処理プログラムで示される前処理方法とが一致した場合に前記所定の条件が満たされたと判定し、一致した前記前処理方法の前処理プログラムを前記検知信号に実行する、請求項２に記載の通信装置。
【請求項４】
前記前処理プログラムが実行された前記検知信号には、実行された前記前処理プログラムで示される前処理方法を特定するための種別情報を格納するフィールドが含まれる、請求項１から３のいずれか一項に記載の通信装置。
【請求項５】
前記通信負荷を推定する通信負荷推定部をさらに備え、
前記通信部は、タイムスタンプを格納するフィールドを含まない前記検知信号を前記制御装置に送信する、請求項１から４のいずれか一項に記載の通信装置。
【請求項６】
前記前処理実行部は、前記演算負荷が所定の閾値未満である場合には、所定の条件が満たされていないと判定し、前記検知信号に対して前処理プログラムを実行せずに前記通信部に送信させる、請求項１から５のいずれか一項に記載の通信装置。
【請求項７】
制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号に対してデータ量を削減するための処理である前処理を実行させる前処理プログラムと、自装置の演算処理によって生じる演算負荷と、自装置を制御する制御装置と自装置との間の通信における通信負荷とに基づいて、所定の条件が満たされた場合に前記検知信号に対して前記前処理プログラムを実行する前処理実行部と、
前記前処理プログラムが実行された前記検知信号を前記制御装置に送信する通信部と、
を備える通信装置と、
前記前処理プログラムを前記通信装置に送信する通信部、
を備える制御装置と、
を備える遠隔制御システム。
【請求項８】
制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号に対してデータ量を削減するための処理である前処理を実行させる前処理プログラムと、自装置の演算処理によって生じる演算負荷と、自装置を制御する制御装置と自装置との間の通信における通信負荷とに基づいて、所定の条件が満たされた場合に前記検知信号に対して前記前処理プログラムを実行する前処理実行ステップと、
前記前処理プログラムが実行された前記検知信号を前記制御装置に送信する通信ステップと、
を有する通信方法。
【請求項９】
制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号に対してデータ量を削減するための処理である前処理を実行させる前処理プログラムと、自装置の演算処理によって生じる演算負荷と、自装置を制御する制御装置と自装置との間の通信における通信負荷とに基づいて、所定の条件が満たされた場合に前記検知信号に対して前記前処理プログラムを実行する前処理実行ステップと、
前記前処理プログラムが実行された前記検知信号を前記制御装置に送信する通信ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、遠隔制御システム、通信方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、災害復旧を容易にするため、遠隔からネットワークを介して現場機器を制御する遠隔制御技術に注目が集まっている。このような遠隔制御を実現する遠隔制御システムでは、制御対象機器の制御に必要な検知信号と、制御対象機器を制御するための制御信号とがネットワークを介して送受信される。例えば、検知信号は制御対象機器が設置された環境に関する環境情報や制御対象機器の状態を示す状態情報などであり、センサ等の検知装置によって取得される。このような遠隔制御技術は、災害等の発生時における現場の復旧を容易にする手段として注目されている。
【０００３】
中でも、遠隔地に配置された複数のクラウドサーバから制御を行うシステムはクラウド制御システムと呼ばれる。クラウド制御システムは、検知信号に基づいて制御信号を生成する制御プログラムを互いに物理的に離れた複数のサーバに分散して保持する。そのため、あるサイトが被災した場合であっても全ての制御プログラムが同時に失われてしまうことがなく、システムの再構築に要する時間を短縮することが可能となる。
【０００４】
しかしながら、従来の遠隔制御システムでは、クラウドサーバへ検知信号を送信する際、全ての情報を送信していたため、ネットワークの負荷が大きくなり、通信遅延が発生してしまう場合があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１６５８０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、ネットワーク負荷を低減し、通信遅延を抑制することができる通信装置、遠隔制御システム、通信方法及びコンピュータプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の通信装置は、前処理実行部と、通信部とを持つ。前処理実行部は、制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号に対してデータ量を削減するための処理である前処理を実行させる前処理プログラムと、自装置の演算処理によって生じる演算負荷と、自装置を制御する制御装置と自装置との間の通信における通信負荷とに基づいて、所定の条件が満たされた場合に前記検知信号に対して前記前処理プログラムを実行する。通信部は、前記前処理プログラムが実行された前記検知信号を前記制御装置に送信する。
【図面の簡単な説明】
【０００８】
【図１】遠隔制御システム１００の構成例を示すシステム構成図。
【図２】第１の実施形態における通信装置１０の機能構成を示すブロック図。
【図３】演算負荷前処理プログラムテーブルの具体例を示す図。
【図４】通信装置１０からサーバ２０に対して送信される検知信号の通信フレームの具体例を示す図。
【図５】第１の実施形態におけるサーバ２０の機能構成を示すブロック図。
【図６】通信負荷前処理プログラムテーブルの具体例を示す図。
【図７】第１の実施形態における前処理プログラムの送信の流れを示すシーケンス図。
【図８】第１の実施形態における前処理プログラムの送信後の流れを示すシーケンス図。
【図９】第１の実施形態における前処理判定処理の流れを示すフローチャート。
【図１０】第２の実施形態における通信装置１０ａの機能構成を示すブロック図。
【図１１】通信装置１０ａからサーバ２０ａに対して送信される検知信号の通信フレームの具体例を示す図。
【図１２】第２の実施形態におけるサーバ２０ａの機能構成を示すブロック図。
【図１３】第２の実施形態における前処理プログラムの送信の流れを示すシーケンス図。
【図１４】第２の実施形態における前処理判定処理の流れを示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、実施形態の通信装置、遠隔制御システム、通信方法及びコンピュータプログラムを、図面を参照して説明する。
図１は、遠隔制御システム１００の構成例を示すシステム構成図である。
遠隔制御システム１００は、通信装置１０及びサーバ２０を備える。通信装置１０及びサーバ２０は、ネットワーク３０を介して互いに通信可能である。ネットワーク３０は、どのように構成されたネットワークであってもよい。ネットワーク３０は、例えばインターネットや専用回線などの広域な有線通信回線や、３Ｇ（3rd Generation）などの広域な無線通信回線で構成されてもよい。また、ネットワーク３０の通信プロトコルには、ＴＣＰ（Transmission Control Protocol）やＵＤＰ（User Datagram Protocol）などの単純なプロトコルが用いられてもよいし、ＨＴＴＰＳ（Hypertext Transfer Protocol Secure）などのセキュリティの高いプロトコルが用いられてもよい。図１では、通信装置１０として通信装置１０−１〜１０−ｎ（ｎは２以上の整数）が示されているが、通信装置１０は１台であってもよい。
【００１０】
また、通信装置１０には、被制御装置２及び検知装置３が接続される。被制御装置２は遠隔制御システム１００の制御対象となる装置である。被制御装置２は、例えばモータ、表示装置、アクチュエータなどである。検知装置３は、被制御装置２の制御に必要な情報を検知する。検知装置３は、例えばセンサや、計測器である。被制御装置２の制御に必要な情報とは、被制御装置２が設置された環境に関する環境情報や被制御装置２の状態に関する状態情報などである。環境情報は、例えば明るさや温度、湿度、気圧及び天候などを示す情報や、緯度、経度及び高度などの位置情報や、速度、加速度及び圧力などの物理情報や、画像、映像及び音声などの多次元の情報である。状態情報は、例えば被制御装置２の電源状態（例えばオン又はオフ）や電流値や電圧値、圧力値及び動作の状態などを示す動作情報や、ビット値、バイト値などのデジタル情報である。通信装置１０及びサーバ２０は、このような情報を示す検知信号に基づいて被制御装置２を制御するための制御信号を生成する制御処理を実行可能である。
【００１１】
通信装置１０は、被制御装置２の制御に必要な情報を示す検知信号を被制御装置２に対応する検知装置３から取得する。通信装置１０は、取得した検知信号をサーバ２０に送信する。また、通信装置１０は、サーバから取得した制御信号を被制御装置２に出力する。図１の例では、検知装置３−ｎは被制御装置２−ｎに対応し、通信装置１０−ｎは検知装置３−ｎから被制御装置２−ｎに関する検知信号を取得する。なお、各通信装置１０に対応する被制御装置２及び検知装置３は複数であってもよい。また、各被制御装置２に対応する検知装置３も複数であってよい。
【００１２】
サーバ２０は、パーソナルコンピュータなどの情報処理装置を用いて構成される。サーバ２０は、例えばインターネット上に仮想的に構築され、ＣＰＵ（Central Processing Unit）やメモリなどのリソースを動的に増減可能なクラウドサーバとして構成されてもよい。サーバ２０は、通信装置１０から送信された検知信号に基づいて制御信号を生成し、生成した制御信号を通信装置１０に送信する。また、サーバ２０は、通信装置１０に対して制御プログラム及び前処理プログラムを送信する。制御プログラムは、制御処理を実行可能な装置に対して制御処理を実現させるプログラムである。前処理プログラムは、検知信号のデータ量を削減するための前処理を実行させるためのプログラムである。サーバ２０は、通信装置１０を制御する。
以下、通信装置１０及びサーバ２０の具体的な構成について説明する。
【００１３】
（第１の実施形態）
図２は、第１の実施形態における通信装置１０の機能構成を示すブロック図である。通信装置１０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、通信装置プログラムを実行する。通信装置１０は、通信装置プログラムの実行によって検知信号取得部１０１、通信部１０２、演算負荷推定部１０３、制御プログラム記憶部１０４、前処理プログラム記憶部１０５、制御部１０６、制御信号出力部１０７を備える装置として機能する。なお、通信装置１０の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）などのハードウェアを用いて実現されてもよい。通信装置プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクやＳＳＤ（Solid State Drive）などの補助記憶装置である。通信装置プログラムは、電気通信回線を介して送信されてもよい。
【００１４】
検知信号取得部１０１は、検知装置３からの検知信号を取得する。検知信号取得部１０１は、取得した検知信号を制御部１０６に出力する。
通信部１０２は、サーバ２０との間で通信を行う。通信部１０２は、無線通信を行ってもよいし、有線通信を行ってもよい。通信部１０２は、検知信号取得部１０１によって取得された検知信号をサーバ２０に送信する。通信部１０２は、制御信号、制御プログラム及び前処理プログラムをサーバ２０から受信する。
【００１５】
演算負荷推定部１０３は、制御部１０６による制御演算の処理時間に基づいて演算の負荷を推定する。
制御プログラム記憶部１０４は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。制御プログラム記憶部１０４は、サーバ２０から送信された制御プログラムを記憶する。
【００１６】
前処理プログラム記憶部１０５は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。前処理プログラム記憶部１０５は、サーバ２０から送信された、通信負荷に応じた前処理プログラムと、演算負荷前処理プログラムテーブルとを記憶する。演算負荷前処理プログラムテーブルは、演算負荷に応じた前処理プログラムに関する情報を表すレコード（以下、「演算負荷対応レコード」という。）によって構成される。なお、前処理プログラム記憶部１０５が記憶する情報は行及び列で表されるテーブルの構造である必要は無い。
【００１７】
図３は、演算負荷前処理プログラムテーブルの具体例を示す図である。
演算負荷前処理プログラムテーブルは演算負荷毎に演算負荷対応レコード４０を有する。演算負荷対応レコード４０は、演算負荷及び前処理プログラムの各値を有する。演算負荷は、制御演算によって生じる負荷を表す。図３では、演算負荷の具体例として、“大”、“中”、“小”及び“極小”の４段階で示されている。“大”、“中”、“小”及び“極小”と判定するための値は、適宜設定されてもよいし、予め設定されていてもよい。前処理プログラムは、演算負荷に応じて実行させる前処理のプログラムを表す。なお、演算負荷の具体例は、上記の４段階に限定される必要はなく、３段階以下であってもよいし、５段階以上であってもよい。
【００１８】
図３に示される例では、演算負荷前処理プログラムテーブルには複数の演算負荷の値に応じた前処理プログラムが登録されている。図３において、演算負荷前処理プログラムテーブルの最上段に登録されている演算負荷対応レコード４０は、演算負荷の値が“大”、前処理プログラムの値が“なし又は間引き処理”に関する前処理プログラムである。すなわち、演算負荷が“大”と判定された場合に、検知信号に対して前処理を実行しない、又は、検知信号に対して間引き処理を行う前処理プログラムを実行させることが表されている。
【００１９】
図２に戻って、通信装置１０の説明を続ける。
制御部１０６は、例えば制御プログラム記憶部１０４に記憶された制御プログラムに基づいて検知信号から制御信号を生成する。制御部１０６は、生成した制御信号と、通信部１０２によって受信された制御信号と、を制御信号出力部１０７に出力する。また、制御部１０６は、制御演算を行う。ここで、制御演算とは、検知信号の制御以外の演算であり、例えばＯＳ（Operating System）の処理、通信処理及び表示処理などである。また、制御部１０６（前処理実行部）は、前処理プログラム記憶部１０５に記憶されている前処理プログラムに基づいて前処理プログラムの実行有無を判定し、判定結果に応じた処理を行う。
制御信号出力部１０７は、制御部１０６から出力された制御信号を被制御装置２に出力する。
【００２０】
図４は、通信装置１０からサーバ２０に対して送信される検知信号の通信フレームの具体例を示す図である。
図４に示すように、通信フレームは、情報を格納する複数のフィールド４１〜４７で構成される。フィールド４１には、送信元である通信装置１０を識別するためのアドレス情報が格納される。フィールド４２には、宛先であるサーバ２０を識別するためのアドレス情報が格納される。フィールド４３には、通信装置１０が検知信号を送信した時刻情報であるタイムスタンプが格納される。フィールド４４には、検知信号に対してどのような前処理を実行したかを示す種別情報が格納される。フィールド４５には、データの長さを示す情報が格納される。フィールド４６には、検知装置３によって検知されたデータが格納される。フィールド４７には、通信フレームの伝送異常の有無を判別するためのＦＣＳ（Frame Check Sequence）が格納される。ＦＣＳには、ＣＲＣ（Cyclic Redundancy Check）などの誤り検出符号が用いられてもよい。これらは通信フレームのヘッダやフッタとして付加されてもよいし、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）などのプロトコルに含まれるフィールドが利用されてもよい。通信フレームにタイムスタンプのフィールド４３が付加されることで、サーバ２０で伝送時間を算出することができる。また、通信フレームに種別のフィールド４４が付加されることで、サーバ２０で検知信号にどのような前処理を実行したかを判別できる。また、通信フレームにＦＣＳのフィールド４７が付加されることで、サーバ２０で伝送時の異常を判別可能であり、異常が発生した際には通信装置１０に通信フレームを再送するよう指令を出すことが可能となる。
【００２１】
図５は、第１の実施形態におけるサーバ２０の機能構成を示すブロック図である。サーバ２０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、サーバプログラムを実行する。サーバ２０は、サーバプログラムの実行によって通信部２０１、通信負荷推定部２０２、制御プログラム記憶部２０３、前処理プログラム記憶部２０４、制御部２０５を備える装置として機能する。なお、サーバ２０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡなどのハードウェアを用いて実現されてもよい。サーバプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置である。サーバプログラムは、電気通信回線を介して送信されてもよい。
【００２２】
通信部２０１は、通信装置１０との間で通信を行う。通信部２０１は、無線通信を行ってもよいし、有線通信を行ってもよい。通信部２０１は、通信装置１０から検知信号を受信する。通信部２０１は、制御信号、制御プログラム及び前処理プログラムを通信装置１０に送信する。
通信負荷推定部２０２は、通信装置１０との間の通信における通信負荷を推定する。
制御プログラム記憶部２０３は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。制御プログラム記憶部２０３は、ソースコードのコンパイルにより生成された制御プログラムを記憶する。
【００２３】
前処理プログラム記憶部２０４は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。前処理プログラム記憶部２０４は、通信負荷前処理プログラムテーブルを記憶する。通信負荷前処理プログラムテーブルは、通信負荷に応じた前処理プログラムに関する情報を表すレコード（以下、「通信負荷対応レコード」という。）によって構成される。なお、前処理プログラム記憶部２０４が記憶する情報は行及び列で表されるテーブルの構造である必要は無い。
【００２４】
図６は、通信負荷前処理プログラムテーブルの具体例を示す図である。
通信負荷前処理プログラムテーブルは通信負荷毎に通信負荷対応レコード５０を有する。通信負荷対応レコード５０は、通信負荷及び前処理プログラムの各値を有する。通信負荷は、通信装置１０とサーバ２０との間の通信における負荷を表す。図６では、通信負荷の具体例として、“大”、“中”、“小”及び“極小”の４段階で示されている。“大”、“中”、“小”及び“極小”と判定するための値は、適宜設定されてもよいし、予め設定されていてもよい。前処理プログラムは、通信負荷に応じて、通信装置１０に実行させる前処理のプログラムを表す。なお、通信負荷の具体例は、上記の４段階に限定される必要はなく、３段階以下であってもよいし、５段階以上であってもよい。
【００２５】
図６に示される例では、通信負荷前処理プログラムテーブルには複数の通信負荷の値に応じた前処理プログラムが登録されている。図６において、通信負荷前処理プログラムテーブルの最上段に登録されている通信負荷対応レコード５０は、通信負荷の値が“大”、前処理プログラムの値が“ハフマン符号化”である。すなわち、通信負荷が“大”と判定された場合に、通信装置１０に対してハフマン符号化のプログラムを実行させることが表されている。
【００２６】
図５に戻って、サーバ２０の説明を続ける。
制御部２０５は、例えば制御プログラム記憶部２０３に記憶された制御プログラムに基づいて検知信号から制御信号を生成する。また、制御部２０５は、制御演算を行う。また、制御部２０５は、通信負荷推定部２０２によって推定された通信負荷に基づいて、前処理プログラム記憶部２０４に記憶されている通信負荷前処理プログラムテーブルから１つの前処理プログラムを選択する。そして、制御部２０５は、選択した前処理プログラムを、通信部２０１を介して通信装置１０に送信する。
【００２７】
図７は、第１の実施形態における前処理プログラムの送信の流れを示すシーケンス図である。図７の処理開始時には、制御プログラムが通信装置１０及びサーバ２０に格納されているものとする。なお、制御プログラムは、サーバ２０や外部の端末からネットワーク３０を介して通信装置１０に送信されてもよい。図７の処理は、通信装置１０及びサーバ２０の起動時に実行されてもよいし、予め設定されたタイミングで実行されてもよい。
サーバ２０の制御部２０５は、制御プログラム記憶部２０３に記憶されている制御プログラムを実行する（ステップＳ１０１）。通信装置１０の制御部１０６は、制御プログラム記憶部１０４に記憶されている制御プログラムを実行する（ステップＳ１０２）。検知装置３は、定期的に検知信号を通信装置１０に送信する（ステップＳ１０３）。
【００２８】
制御プログラムを実行すると、検知信号取得部１０１は検知装置３から送信された検知信号を取得する（ステップＳ１０４）。検知信号取得部１０１は、取得した検知信号を制御部１０６に出力する。制御部１０６は、検知信号取得部１０１から検知信号が出力されると、検知信号に応じた制御信号を生成する。制御部１０６は、生成した制御信号を制御信号出力部１０７に出力する。制御信号出力部１０７は、制御部１０６から出力された制御信号を対応する被制御装置２に出力する（ステップＳ１０５）。これにより、被制御装置２は、制御信号に基づく制御がなされる。
【００２９】
また、制御部１０６は、取得された検知信号を用いて図４に示す通信フレームを生成する。制御部１０６は、通信部１０２を制御して、生成した通信フレームをサーバ２０に送信させる。通信部１０２は、制御部１０６の制御に従って通信フレームをサーバ２０に送信する（ステップＳ１０６）。制御部１０６は、制御演算を行う（ステップＳ１０７）。演算負荷推定部１０３は、制御演算の処理時間を計測し、通信装置１０の演算負荷を推定する（ステップＳ１０８）。
【００３０】
演算負荷の推定方法として、例えば通信装置１０の起動時に制御演算の処理のみを行い、その処理時間をｓとし、また、制御プログラム実行時の制御周期ｉ（例えば、５０ｍｓ〜２００ｍｓ）での処理時間をｓｉとし、ｓｉ−ｓの値を演算負荷の推定値として算出する。すなわち、演算負荷推定部１０３は、起動時に行った制御演算に対してどの程度処理時間が増加したかを演算負荷として算出する。また、起動時の処理時間sとして、起動時に複数回処理時間を計測し、その平均値や最小値を演算負荷の推定値として用いてもよい。算出した推定値は、次の制御周期の前処理を実行するか否かの判定に用いられる。演算負荷推定部１０３は、演算負荷の推定値を制御部１０６に出力する。制御部１０６は、演算負荷の推定値を保持する。
【００３１】
通信部２０１は、通信装置１０から送信された通信フレームを受信する。通信部２０１は、受信した通信フレームを制御部２０５に出力する。制御部２０５は、通信部２０１から出力された通信フレームに含まれる検知信号に基づいて制御信号を生成する（ステップＳ１０９）。制御部２０５は、通信部２０１を制御して、生成した制御信号を通信装置１０に送信する（ステップＳ１１０）。制御信号の送信後、通信負荷推定部２０２は、通信フレームに含まれるタイムスタンプと、通信フレームが受信された時刻とに基づいて通信負荷を推定する（ステップＳ１１１）。
【００３２】
通信負荷の推定方法として、例えば通信装置１０の起動時に通信装置１０がダミーの検知信号をサーバ２０に送信し、その伝送時間をｔとし、また、制御プログラム実行時の制御周期ｉでの伝送時間をｔｉとし、ｔｉ−ｔの値を通信負荷の推定値とする。すなわち、通信負荷推定部２０２は、起動時に行った通信に対してどの程度伝送時間が増加したかを通信負荷の推定値として算出する。また、起動時の伝送時間ｔとして、起動時に複数回伝送時間を計測し、その平均値や最小値を通信負荷の推定値として用いてもよい。通信負荷推定部２０２は、算出した通信負荷の推定値を制御部２０５に出力する。
【００３３】
制御部２０５は、制御演算を行う（ステップＳ１１２）。また、制御部２０５は、ステップＳ１１１の処理で算出した通信負荷の推定値と、前処理プログラム記憶部２０４に記憶されている通信負荷前処理プログラムテーブルとに基づいて、通信負荷に応じた前処理プログラムを選択する（ステップＳ１１３）。具体的には、まず制御部２０５は、前処理プログラム記憶部２０４に記憶されている通信負荷前処理プログラムテーブルを読み出す。次に、制御部２０５は、読み出した通信負荷前処理プログラムテーブルの通信負荷の値を参照し、通信負荷の推定値に応じた通信負荷対応レコード５０を選択する。そして、制御部２０５は、選択した通信負荷対応レコード５０の前処理プログラムの項目に登録されている前処理プログラムを選択する。
【００３４】
例えば、図６に示す通信負荷前処理プログラムテーブルを用いて説明すると、制御部２０５は、通信負荷の推定値が“中”であると判定した場合には、前処理プログラムとしてＬＺ符号化を選択する。制御部２０５は、通信部２０１を制御して、選択した前処理プログラムを通信装置１０に送信させる。通信装置１０は、制御部２０５の制御に従って、前処理プログラムを通信装置１０に送信する（ステップＳ１１４）。
【００３５】
通信装置１０の通信部１０２は、サーバ２０から送信された制御信号を受信する。通信部１０２は、受信した制御信号を制御部１０６に出力する。また、通信部１０２は、サーバ２０から送信された前処理プログラムを受信する。通信部１０２は、受信した前処理プログラムを制御部１０６に出力する。制御部１０６は、通信部１０２から出力された前処理プログラムを前処理プログラム記憶部１０５に記憶する（ステップＳ１１５）。なお、前処理プログラム記憶部１０５に通信負荷に応じた前処理プログラムが既に記憶されている場合には、受信された前処理プログラムで上書きすることによって更新する。その後、通信装置１０は、前処理プログラムに応じて、定期的に取得される検知信号に対して処理を行う。
検知装置３は、定期的に検知信号を通信装置１０に送信する（ステップＳ１１６）。検知信号取得部１０１は、検知装置３から送信された検知信号を取得する（ステップＳ１１７）。
【００３６】
図８は、第１の実施形態における前処理プログラムの送信後の流れを示すシーケンス図である。つまり、図８の処理は、図７の処理の次の制御周期から実行される。図８の説明では、通信装置１０にサーバ２０から送信された前処理プログラムが記憶された後の処理の流れについて説明する。
検知装置３は、定期的に検知信号を通信装置１０に送信する（ステップＳ２０１）。検知信号取得部１０１は、検知装置３から送信された検知信号を取得する（ステップＳ２０２）。検知信号取得部１０１は、取得した検知信号を制御部１０６に出力する。制御部１０６は、検知信号取得部１０１から検知信号が出力されると、検知信号に応じた制御信号を生成する。制御部１０６は、生成した制御信号を制御信号出力部１０７に出力する。制御信号出力部１０７は、制御部１０６から出力された制御信号を対応する被制御装置２に出力する（ステップＳ２０３）。
【００３７】
その後、制御部１０６は、保持している演算負荷の推定値と、前処理プログラム記憶部１０５に記憶されている通信負荷に応じた前処理プログラムとに基づいて、前処理判定処理を行う（ステップＳ２０４）。前処理判定処理は、前処理を実行するか否か判定する処理である。この処理により前処理判定処理の結果に応じた通信フレームが生成される。具体的には、制御部１０６は、前処理判定処理において前処理を実行しないと判定した場合、前処理プログラムを実行せずに通信フレームを生成する。一方、制御部１０６は、前処理判定処理において前処理を実行すると判定した場合、前処理プログラムを実行することによって通信フレームを生成する。制御部１０６は、通信部１０２を制御して、生成した通信フレームをサーバ２０に送信させる。前処理判定処理の詳細については後述する。
【００３８】
通信部１０２は、制御部１０６の制御に従って通信フレームをサーバ２０に送信する（ステップＳ２０５）。制御部１０６は、制御演算を行う（ステップＳ２０６）。演算負荷推定部１０３は、制御演算の処理時間を計測し、通信装置１０の演算負荷を推定する（ステップＳ２０７）。演算負荷推定部１０３は、演算負荷の推定値を制御部１０６に出力する。制御部１０６は、演算負荷推定部１０３から出力された演算負荷の推定値を保持する。なお、制御部１０６は、既に演算負荷の推定値を保持している場合には、新たに出力された演算負荷の推定値で、保持している演算負荷の推定値を上書きすることによって更新する。
【００３９】
通信部２０１は、通信装置１０から送信された通信フレームを受信する。通信部２０１は、受信した通信フレームを制御部２０５に出力する。制御部２０５は、通信部２０１から出力された通信フレームに含まれる検知信号に基づいて制御信号を生成する（ステップＳ２０８）。制御部２０５は、通信部２０１を制御して、生成した制御信号を通信装置１０に送信する（ステップＳ２０９）。制御信号の送信後、通信負荷推定部２０２は、通信フレームに含まれるタイムスタンプと、通信フレームが受信された時刻とに基づいて通信負荷を推定する（ステップＳ２１０）。通信負荷推定部２０２は、算出した通信負荷の推定値を制御部２０５に出力する。制御部２０５は、制御演算を行う（ステップＳ２１１）。その後、図８の処理が繰り返し実行される。
【００４０】
図９は、第１の実施形態における前処理判定処理の流れを示すフローチャートである。
制御部１０６は、演算負荷推定部１０３から出力された演算負荷の推定値が閾値未満であるか否か判定する（ステップＳ３０１）。演算負荷の推定値に対する閾値は、例えば、起動時に算出された演算負荷の推定値の２倍であってもよいし、予め設定されていてもよい。演算負荷の推定値が閾値未満である場合（ステップＳ３０１−ＮＯ）、制御部１０６は前処理プログラムを実行しないと判定する（ステップＳ３０２）。この場合、制御部１０６は、前処理プログラムを実行せずに通信フレームを生成する（ステップＳ３０３）。
【００４１】
一方、演算負荷の推定値が閾値以上である場合（ステップＳ３０１−ＹＥＳ）、制御部１０６は前処理プログラム記憶部１０５を参照し、通信負荷に応じた前処理プログラムが存在するか否か判定する（ステップＳ３０４）。通信負荷に応じた前処理プログラムが存在しない場合（ステップＳ３０４−ＮＯ）、制御部１０６はステップＳ３０２及びステップＳ３０３の処理を実行する。
一方、通信負荷に応じた前処理プログラムが存在する場合（ステップＳ３０４−ＹＥＳ）、制御部１０６は演算負荷の推定値に応じて選択された前処理プログラムで示される前処理方法と、通信負荷に応じた前処理プログラムで示される前処理方法とが一致するか否か判定する（ステップＳ３０５）。
【００４２】
具体的には、まず制御部１０６は、前処理プログラム記憶部１０５に記憶されている演算負荷前処理プログラムテーブルの演算負荷の値を参照し、保持している演算負荷の推定値に応じた演算負荷対応レコード４０を選択する。次に、制御部１０６は、選択した演算負荷対応レコード４０の前処理プログラムの項目に登録されている前処理プログラムを選択する。そして、制御部１０６は、演算負荷の推定値に応じて選択された前処理プログラムで示される前処理方法と、前処理プログラム記憶部１０５に記憶されている通信負荷に応じた前処理プログラムで示される前処理方法とが一致するか否か判定する。
【００４３】
演算負荷の推定値に応じて選択された前処理プログラムで示される前処理方法と、通信負荷に応じた前処理プログラムで示される前処理方法とが一致しない場合（ステップＳ３０５−ＮＯ）、制御部１０６はステップＳ３０２及びステップＳ３０３の処理を実行する。
一方、演算負荷の推定値に応じて選択された前処理プログラムで示される前処理方法と、通信負荷に応じた前処理プログラムで示される前処理方法とが一致する場合（ステップＳ３０５−ＹＥＳ）、制御部１０６は前処理プログラムを実行すると判定する（ステップＳ３０６）。この場合、制御部１０６は、一致した前処理プログラムを実行して通信フレームを生成する（ステップＳ３０７）。
【００４４】
以上のように構成された遠隔制御システム１００によれば、サーバ２０から送信された前処理プログラムを受信した通信装置１０は、前処理プログラムを前処理プログラム記憶部１０５に格納する。そして、通信装置１０は、前処理プログラムを受信した次の制御周期から、通信負荷及び演算負荷に応じて検知信号に対して前処理プログラムを実行する。これにより、伝送するデータ長を短くすることができる。また、データ長を短くすることにより、通信負荷を低減し、通信遅延を小さくし、応答時間を短縮することが可能になる。
【００４５】
また、通信装置１０は、図９に示す前処理判定処理を実行することによって、演算負荷に対して前処理プログラムを自動的に選択することができ、通信装置１０の演算負荷を抑えながら通信遅延を抑えることが可能になる。
また、遠隔制御システム１００では、サーバ２０が前処理プログラムを送信してからしばらくの間（例えば、再起動されるまでの間）、前処理プログラムの送信が行われない。したがって、各制御周期で前処理プログラムの送信が行われない。そのため、通信装置１０及びサーバ２０の処理負荷を低減することができる。
【００４６】
また、サーバ２０は、通信負荷に応じた前処理プログラムとして複数の前処理プログラムを保有している。例えば、通信負荷が小さいときは、符号化率の小さいランレングス符号化が選択され、通信負荷が大きいときは、符号化率の大きいハフマン符号化が選択される。これにより、通信装置１０とサーバ２０との間の通信負荷に対応した前処理プログラムを通信装置１０に実行させることが可能になる。
【００４７】
以下、第１の実施形態における変形例について説明する。
サーバ２０は、通信装置１０が複数存在する場合には、通信装置１０毎に前処理プログラムを選択して、各通信装置１０に前処理プログラムを送信するように構成されてもよい。
図７におけるステップＳ１０７及びステップＳ１０８の処理は、ステップＳ１１０の後から次の制御周期開始よりも前であればどのタイミングで実行されてもよい。図８におけるステップＳ２０６及びステップＳ２０７の処理は、ステップＳ１１０の後から次の制御周期開始よりも前であればどのタイミングで実行されてもよい。
通信装置１０の制御部１０６は、図９におけるステップＳ３０５の処理を実行しなくてもよい。具体的には、制御部１０６は、演算負荷の推定値が閾値以上であり、かつ、通信負荷に応じた前処理プログラムが存在する場合に前処理プログラムを実行すると判定してもよい。
【００４８】
（第２の実施形態）
図１０は、第２の実施形態における通信装置１０ａの機能構成を示すブロック図である。通信装置１０ａは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、通信装置プログラムを実行する。通信装置１０ａは、通信装置プログラムの実行によって検知信号取得部１０１、通信部１０２、演算負荷推定部１０３、制御プログラム記憶部１０４、前処理プログラム記憶部１０５ａ、制御部１０６ａ、制御信号出力部１０７、通信負荷推定部１０８を備える装置として機能する。なお、通信装置１０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡなどのハードウェアを用いて実現されてもよい。通信装置プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置である。通信装置プログラムは、電気通信回線を介して送信されてもよい。
【００４９】
第２の実施形態における通信装置１０ａは、前処理プログラム記憶部１０５及び制御部１０６に代えて前処理プログラム記憶部１０５ａ及び制御部１０６ａを備える点、通信負荷推定部１０８を備える点で通信装置１０と構成が異なる。通信装置１０ａは、他の構成については通信装置１０と同様である。そのため、通信装置１０ａ全体の説明は省略し、前処理プログラム記憶部１０５ａ、制御部１０６ａ及び通信負荷推定部１０８について説明する。
【００５０】
前処理プログラム記憶部１０５ａは、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。前処理プログラム記憶部１０５ａは、演算負荷前処理プログラムテーブル及び通信負荷前処理プログラムテーブルを記憶する。なお、前処理プログラム記憶部１０５ａが記憶する情報は行及び列で表されるテーブルの構造である必要は無い。
【００５１】
制御部１０６ａは、例えば制御プログラム記憶部１０４に記憶された制御プログラムに基づいて検知信号から制御信号を生成する。制御部１０６ａは、生成した制御信号と、通信部１０２によって受信された制御信号と、を制御信号出力部１０７に出力する。また、制御部１０６ａは、制御演算を行う。また、制御部１０６ａは、前処理プログラム記憶部１０５ａに記憶されている演算負荷前処理プログラムテーブルと、通信負荷前処理プログラムテーブルと、に基づいて前処理の実行有無を判定し、判定結果に応じた処理を行う。
通信負荷推定部１０８は、通信装置１０ａからサーバ２０ａへの往復の伝送時間を用いて通信負荷の推定値を算出する。
【００５２】
図１１は、通信装置１０ａからサーバ２０ａに対して送信される検知信号の通信フレームの具体例を示す図である。
図１１に示すように、第２の実施形態において通信装置１０ａからサーバ２０ａに対して送信される検知信号の通信フレームは、タイムスタンプを格納するフィールド４３が設けられない点で第１の実施形態において通信装置１０からサーバ２０に対して送信される検知信号の通信フレームと構成が異なる。それ以外の構成については、第１の実施形態と同様であるため説明を省略する。
【００５３】
図１２は、第２の実施形態におけるサーバ２０ａの機能構成を示すブロック図である。サーバ２０ａは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、サーバプログラムを実行する。サーバ２０ａは、サーバプログラムの実行によって通信部２０１、制御プログラム記憶部２０３、前処理プログラム記憶部２０４、制御部２０５ａを備える装置として機能する。なお、サーバ２０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡなどのハードウェアを用いて実現されてもよい。サーバプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置である。サーバプログラムは、電気通信回線を介して送信されてもよい。
【００５４】
第２の実施形態におけるサーバ２０ａは、制御部２０５に代えて制御部２０５ａを備える点、通信負荷推定部２０２を備えない点でサーバ２０と構成が異なる。サーバ２０ａは、他の構成についてはサーバ２０と同様である。そのため、サーバ２０ａ全体の説明は省略し、制御部２０５ａについて説明する。
【００５５】
制御部２０５ａは、例えば制御プログラム記憶部２０３に記憶された制御プログラムに基づいて検知信号から制御信号を生成する。また、制御部２０５ａは、制御演算を行う。また、制御部２０５ａは、前処理プログラム記憶部２０４に記憶されている通信負荷前処理プログラムテーブルを、通信部２０１を介して通信装置１０ａに送信する。
【００５６】
図１３は、第２の実施形態における前処理プログラムの送信の流れを示すシーケンス図である。図１３の処理開始時には、制御プログラムが通信装置１０ａ及びサーバ２０ａに格納されているものとする。なお、制御プログラムは、サーバ２０ａや外部の端末からネットワーク３０を介して通信装置１０ａに送信されてもよい。図１３の処理は、通信装置１０ａ及びサーバ２０ａの起動時に実行されてもよいし、予め設定されたタイミングで実行されてもよい。
【００５７】
サーバ２０ａの制御部２０５ａは、前処理プログラム記憶部２０４に記憶されている通信負荷前処理プログラムテーブルを取得する。次に、制御部２０５ａは、通信部２０１を制御して、取得した通信負荷前処理プログラムテーブルを通信装置１０に送信させる。通信部２０１は、制御部２０５ａの制御に従って、通信負荷前処理プログラムテーブルを通信装置１０に送信する（ステップＳ４０１）。
通信装置１０ａの通信部１０２は、サーバ２０ａから送信された通信負荷前処理プログラムテーブルを受信する。通信部１０２は、受信した通信負荷前処理プログラムテーブルを制御部１０６ａに出力する。制御部１０６ａは、通信部１０２から出力された通信負荷前処理プログラムテーブルを前処理プログラム記憶部１０５ａに記憶する（ステップＳ４０２）。
【００５８】
サーバ２０ａの制御部２０５ａは、制御プログラム記憶部２０３に記憶されている制御プログラムを実行する（ステップＳ４０３）。通信装置１０ａの制御部１０６ａは、制御プログラム記憶部１０４に記憶されている制御プログラムを実行する（ステップＳ４０４）。検知装置３は、定期的に検知信号を通信装置１０に送信する（ステップＳ４０５）。制御プログラムを実行すると、検知信号取得部１０１は検知装置３から送信された検知信号を取得する（ステップＳ４０６）。検知信号取得部１０１は、取得した検知信号を制御部１０６ａに出力する。制御部１０６ａは、検知信号取得部１０１から検知信号が出力されると、検知信号に応じた制御信号を生成する。制御部１０６ａは、生成した制御信号を制御信号出力部１０７に出力する。制御信号出力部１０７は、制御部１０６から出力された制御信号を対応する被制御装置２に出力する（ステップＳ４０７）。これにより、被制御装置２は、制御信号に基づく制御がなされる。
【００５９】
また、制御部１０６ａは、取得された検知信号を用いて図１１に示す通信フレームを生成する。制御部１０６ａは、通信部１０２を制御して、生成した通信フレームをサーバ２０ａに送信させる。通信部１０２は、制御部１０６ａの制御に従って通信フレームをサーバ２０ａに送信する（ステップＳ４０８）。この際、制御部１０６ａは、通信フレームの送信時刻ｔｓを記録しておき、送信時刻ｔｓを通信負荷推定部１０８に出力する。制御部１０６ａは、制御演算を行う（ステップＳ４０９）。
【００６０】
サーバ２０ａの通信部２０１は、通信装置１０ａから送信された通信フレームを受信する。通信部２０１は、受信した通信フレームを制御部２０５ａに出力する。制御部２０５ａは、通信部２０１から出力された通信フレームに含まれる検知信号に基づいて制御信号を生成する（ステップＳ４１０）。制御部２０５ａは、通信部２０１を制御して、生成した制御信号を通信装置１０ａに送信する（ステップＳ４１１）。制御部２０５ａは、制御演算を行う（ステップＳ４１２）。
【００６１】
通信装置１０ａの通信部１０２は、サーバ２０ａから送信された制御信号を受信する。通信部１０２は、受信した制御信号を制御部１０６ａに出力する。制御部１０６ａは、サーバ２０ａから送信された制御信号が受信された受信時刻ｔｒを記録し、受信時刻ｔｒを通信負荷推定部１０８に出力する。通信負荷推定部１０８は、制御部１０６ａから出力された送信時刻ｔｓと、受信時刻ｔｒとを用いて通信負荷を推定する（ステップＳ４１３）。具体的には、まず通信負荷推定部１０８は、ｉ周期目の往復の伝送時間をｔｉ＝ｔｒ−ｔｓとして算出する。そして、通信負荷推定部１０８は、第１の実施形態と同様に、通信装置１０ａの起動時にダミーの検知信号をサーバ２０ａに送信し、その往復の伝送時間をｔとし、ｔｉ−ｔの値を通信負荷の推定値とする。すなわち、通信負荷推定部１０８は、起動時に行った往復の通信に対してどの程度伝送時間が増加したかを通信負荷の推定値として算出する。また、起動時の往復の伝送時間ｔとして、起動時に複数回伝送時間を計測し、その平均値や最小値を用いてもよい。通信負荷推定部１０８は、算出した通信負荷の推定値を制御部１０６ａに出力する。
【００６２】
演算負荷推定部１０３は、制御演算の処理時間を計測し、第１の実施形態と同様の方法によって通信装置１０ａの演算負荷を推定する（ステップＳ４１４）。演算負荷推定部１０３は、演算負荷の推定値を制御部１０６ａに出力する。制御部１０６ａは、演算負荷の推定値を保持する。検知装置３は、定期的に検知信号を通信装置１０に送信する（ステップＳ４１５）。検知信号取得部１０１は、検知装置３から送信された検知信号を取得する（ステップＳ４１６）。
【００６３】
前処理プログラムの送信後の処理の流れについては、前処理判定処理の一部の処理を除いては、第１の実施形態と同様である。そこで、第１の実施形態と異なる前処理判定処理についてのみ図１４を用いて説明する。図１４は、第２の実施形態における前処理判定処理の流れを示すフローチャートである。
制御部１０６ａは、前処理プログラム記憶部１０５ａに記憶されている通信負荷前処理プログラムテーブルと、通信負荷推定部１０８によって推定された通信負荷の推定値とに基づいて、通信負荷の推定値に応じた前処理プログラムを選択する（ステップＳ５０１）。具体的には、まず制御部１０６ａは、前処理プログラム記憶部１０５ａに記憶されている通信負荷前処理プログラムテーブルを読み出す。次に、制御部１０６ａは、読み出した通信負荷前処理プログラムテーブルの通信負荷の値を参照し、通信負荷推定部１０８によって推定された通信負荷の推定値に応じた通信負荷対応レコード５０を選択する。そして、制御部１０６ａは、選択した通信負荷対応レコード５０の前処理プログラムの項目に登録されている前処理プログラムを選択する。そして、制御部１０６ａは、演算負荷の推定値に応じて選択された前処理プログラムで示される前処理方法と、ステップＳ５０１の処理で選択された通信負荷に応じた前処理プログラムで示される前処理方法とが一致するか否か判定する（ステップＳ５０２）。
【００６４】
以上のように構成された遠隔制御システム１００によれば、サーバ２０ａは事前に通信装置１０ａに対して通信負荷に応じた前処理プログラムを送信する。そして、通信装置１０ａは、前処理プログラムを受信した次の制御周期から、通信負荷及び演算負荷に応じて検知信号に対して前処理プログラムを実行する。これにより、伝送するデータ長を短くすることができる。また、データ長を短くすることにより、通信負荷を低減し、通信遅延を小さくし、応答時間を短縮することが可能になる。
【００６５】
また、通信装置１０ａは、通信負荷を推定するための通信負荷推定部１０８を備える。これにより、サーバ２０ａで伝送時間を計測する必要がない。したがって、図１１に示すように、通信フレームにタイムスタンプを格納するフィールドを設ける必要がない。そのため、通信のデータ長を削減することができる。
また、サーバ２０ａは、検知信号を受信した後、他の処理を行わず直ちに制御信号を通信装置１０ａに送信する。これにより、通信装置１０ａが計測する往復の伝送時間の誤差を低減することができる。
【００６６】
以下、第２の実施形態における変形例について説明する。
本実施形態では、サーバ２０ａが事前に通信負荷前処理プログラムテーブルを通信装置１０ａに送信する構成を示したが、これに限定される必要はない。例えば、サーバ２０ａは、通信負荷前処理プログラムテーブルに含まれる複数の前処理プログラムを通信装置１０ａに送信するように構成されてもよい。このように構成される場合、サーバ２０ａは、前処理プログラムに通信負荷の判定条件を対応付けて送信する。
図１３におけるステップＳ４１４の処理は、ステップＳ４０９の後にすぐ実行されてもよい。
【００６７】
第１の実施形態及び第２の実施形態に共通する変形例について説明する。
通信負荷前処理プログラムテーブルには、通信負荷に応じて同じ符号化方式で異なる圧縮率が登録されてもよい。
通信装置１０（及び通信装置１０ａ）及びサーバ２０（及びサーバ２０ａ）が使用する前処理プログラムは上記の符号化プログラムに限定される必要はなく、算術符号化のような他の符号化方式や、検知信号のサンプリングを間引く方式や、検知信号の変化のみを抽出する方式などが用いられてもよい。
検知信号の種類に応じて制御周期が変更されるように構成されてもよい。例えば、検知装置３が、人物を検出した場合には、人物の検出や、人物の抽出などの処理が実行されるため、制御周期を通常よりも長くするように変更されてもよい。
検知信号の受信と制御信号の送信の処理は、例えば、ＷｅｂサーバによるＨＴＴＰ（Hypertext Transfer Protocol）やＨＴＴＰＳ（Hypertext Transfer Protocol Secure）のリクエストの受信とリプライの送信が用いられてもよい。
また、通信フレームには、どのような前処理が実行されたのかを示す種別の値を格納するフィールド４４が含まれる。したがって、サーバ２０及びサーバ２０ａは、受信した通信フレームがどのような前処理が施されているのかを把握することができる。そのため、前処理が施された通信フレームに対しても容易に処理を行うことができる。
【００６８】
以上説明した少なくともひとつの実施形態によれば、前処理プログラムと、通信装置１０の演算処理によって生じる演算負荷と、通信装置１０と制御装置（実施形態におけるサーバ２０）との間の通信における通信負荷とに基づいて、所定の条件が満たされた場合に検知信号に対して前処理プログラムを実行する前処理実行部（実施形態における制御部１０６）と、前処理プログラムが実行された検知信号を制御装置に送信する通信部１０２とを持つことにより、ネットワーク負荷を低減し、通信遅延を抑制することができる。
【００６９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７０】
２（２−１〜２−ｎ）…被制御装置，３（３−１〜３−ｎ）…検知装置，１０（１０−１〜１０−ｎ）、１０ａ…通信装置，２０、２０ａ…サーバ，３０…ネットワーク，１０１…検知信号取得部，１０２…通信部，１０３…演算負荷推定部，１０４…制御プログラム記憶部，１０５、１０５ａ…前処理プログラム記憶部，１０６、１０６ａ…制御部，１０７…制御信号出力部，１０８…通信負荷推定部，２０１…通信部，２０２…通信負荷推定部，２０３…制御プログラム記憶部，２０４…前処理プログラム記憶部，２０５、２０５ａ…制御部
【図１】
2017188756.tif 000003
【図２】
2017188756.tif 000004
【図３】
2017188756.tif 000005
【図４】
2017188756.tif 000006
【図５】
2017188756.tif 000007
【図６】
2017188756.tif 000008
【図７】
2017188756.tif 000009
【図８】
2017188756.tif 000010
【図９】
2017188756.tif 000011
【図１０】
2017188756.tif 000012
【図１１】
2017188756.tif 000013
【図１２】
2017188756.tif 000014
【図１３】
2017188756.tif 000015
【図１４】
2017188756.tif 000016