(57)【要約】【課題】遠隔制御システムにおける制御プログラムの管理をより容易にすることができる遠隔制御システム、制御方法及びコンピュータプログラムを提供することである。【解決手段】実施形態の遠隔制御システムは第１制御装置と第２制御装置とを持つ。第１制御装置は第１制御処理部と判定部と分配部とを持つ。第１制御処理部は検知信号を取得し、検知信号に基づいて制御対象機器を制御するための制御信号を生成する制御処理を実行可能である。判定部は自装置又は自装置と通信可能な第２制御装置のいずれかを制御処理の実行主体として判定する。分配部は判定部の判定結果に応じて、検知信号を第２制御装置に送信する。第２制御装置は第２制御処理部と制御プログラム配信部とを持つ。第２制御処理部は第１制御装置から送信される検知信号に基づいて制御処理を実行可能である。制御プログラム配信部は制御処理を実現する制御プログラムを第１制御装置に配信する。【選択図】図１
2017046075.tif 000002
【特許請求の範囲】
【請求項１】
制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号を取得し、前記検知信号に基づいて前記制御対象機器を制御するための制御信号を生成する制御処理を実行可能な第１制御処理部と、
自装置又は自装置と通信可能な第２制御装置のいずれかを前記制御処理の実行主体として判定する判定部と、
前記判定部の判定結果に応じて、前記検知信号を前記第２制御装置に送信する分配部と、
を備える第１制御装置と、
前記第１制御装置から送信される前記検知信号に基づいて前記制御処理を実行可能な第２制御処理部と、
前記制御処理を実現する制御プログラムを前記第１制御装置に配信する制御プログラム配信部と、
を備える第２制御装置と、
を備える遠隔制御システム。
【請求項２】
前記第２制御装置の前記第２制御処理部は、前記制御プログラムの開始又は停止のタイミングを前記第１制御装置に通知し、
前記第１制御装置の前記第１制御処理部は、前記第２制御処理部から通知されるタイミングにおいて前記制御プログラムを開始又は停止する、
請求項１に記載の遠隔制御システム。
【請求項３】
前記第２制御装置は、自装置と前記第１制御装置との間の伝送時間に基づいて前記制御プログラムの開始又は停止のタイミングを決定する、
請求項２に記載の遠隔制御システム。
【請求項４】
前記第２制御装置は、前記制御プログラムのソースコードをコンパイルして実行形式の制御プログラムを生成するコンパイル部をさらに備え、
前記制御プログラム配信部は、前記コンパイル部によって生成された実行形式の前記制御プログラムを前記第１制御装置に配信する、
請求項１から３のいずれか一項に記載の遠隔制御システム。
【請求項５】
前記第２制御装置の前記制御プログラム配信部は、前記制御プログラムのソースコードを前記第１制御装置に配信し、
前記第１制御装置は、前記第２制御装置から配信された前記制御プログラムのソースコードをコンパイルして実行形式の制御プログラムを生成するコンパイル部をさらに備える、
請求項１から３のいずれか一項に記載の遠隔制御システム。
【請求項６】
前記第２制御装置は、自装置又は前記第１制御装置における前記制御プログラムのコンパイル状態、配信状態又は動作状態を他の装置からの要求に応じて通知する状態通知部をさらに備える、
請求項１から５のいずれか一項に記載の遠隔制御システム。
【請求項７】
前記状態通知部は、自装置及び前記第１制御装置における前記制御プログラムのコンパイル又は配信における異常を他の装置に通知する、
請求項６に記載の遠隔制御システム。
【請求項８】
第１制御装置と、前記第１制御装置と通信可能な第２制御装置とを備える遠隔制御システムが行う制御方法であって、
前記第１制御装置が、
制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号を取得し、前記検知信号に基づいて前記制御対象機器を制御するための制御信号を生成する制御処理を実行する第１制御処理ステップと、
自装置又は自装置と通信可能な第２制御装置のいずれかを前記制御処理の実行主体として判定する判定ステップと、
前記判定ステップにおける判定結果に応じて、前記検知信号を前記第２制御装置に送信する分配ステップと、
前記第２制御装置が、
前記第１制御装置から送信される前記検知信号に基づいて前記制御処理を実行する第２制御処理ステップと、
前記制御処理を実現する制御プログラムを前記第１制御装置に配信する制御プログラム配信ステップと、
を有する制御方法。
【請求項９】
第１制御装置と、前記第１制御装置と通信可能な第２制御装置とを備える遠隔制御システムにおける前記第２制御装置として機能するコンピュータに対して、
制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号を取得し、前記検知信号に基づいて前記制御対象機器を制御するための制御信号を生成する制御処理を実行する制御処理ステップと、
前記制御処理を実行可能な前記第１制御装置に対して、前記制御処理を実現する制御プログラムを前記第１制御装置に配信する制御プログラム配信ステップと、
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、遠隔制御システム、制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
防災に対する意識の高まりから、遠隔地に存在する機器を制御する遠隔制御技術が注目されている。このような遠隔制御を実現する遠隔制御システムでは、制御対象機器の制御に必要な検知信号と、制御対象機器を制御するための制御信号とがネットワークを介して送受信される。例えば検知信号は制御対象機器が設置された環境に関する環境情報や制御対象機器の状態を示す状態情報などであり、センサ等の検知装置によって取得される。このような遠隔制御技術は、災害等の発生時における現場の復旧を容易にする手段として注目されている。
【０００３】
中でも遠隔地に配置された複数のクラウドサーバから制御を行うシステムはクラウド制御システムと呼ばれる。クラウド制御システムは、検知信号に基づいて制御信号を生成する制御プログラムを物理的に離れた複数のサーバに分散して保持する。そのため、あるサイトが被災した場合であっても全ての制御プログラムが同時に失われてしまうことがなく、システムの再構築に要する時間を短縮することが可能となる。
【０００４】
しかしながらこのような遠隔制御システムでは、制御プログラムの変更が発生した場合、制御プログラムを実行する全ての計算機に対して新しい制御プログラムを適用する作業が必要となる。このような作業は利用者にとって煩雑であり、システムの管理負荷を増大させる可能性がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１３／１４５９５１号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、遠隔制御システムにおける制御プログラムの管理をより容易にすることができる遠隔制御システム、制御方法及びコンピュータプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の遠隔制御システムは、第１制御装置と、第２制御装置とを持つ。第１制御装置は、第１制御処理部と、判定部と、分配部とを持つ。第１制御処理部は、制御対象機器が設置された環境に関する環境情報又は前記制御対象機器の状態に関する状態情報を含む検知信号を取得し、前記検知信号に基づいて前記制御対象機器を制御するための制御信号を生成する制御処理を実行可能である。判定部は、自装置又は自装置と通信可能な第２制御装置のいずれかを前記制御処理の実行主体として判定する。分配部は、前記判定部の判定結果に応じて、前記検知信号を前記第２制御装置に送信する。第２制御装置は、第２制御処理部と、制御プログラム配信部とを持つ。第２制御処理部は、前記第１制御装置から送信される前記検知信号に基づいて前記制御処理を実行可能である。制御プログラム配信部は、前記制御処理を実現する制御プログラムを前記第１制御装置に配信する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態の遠隔制御システム１の構成例を示すシステム構成図。
【図２】第１の実施形態における通信装置１０の機能構成を示すブロック図。
【図３】管理情報テーブル１０４１の具体例を示す図。
【図４】第１の実施形態におけるサーバ２０の機能構成を示すブロック図。
【図５】管理情報テーブル２０４１の具体例を示す図。
【図６】配信状態の具体例を示す図。
【図７】第１の実施形態における操作端末３０の機能構成を示すブロック図。
【図８】第１の実施形態における制御プログラムの配信の流れを示すシーケンス図。
【図９】第１の実施形態における制御プログラムの起動処理の流れを示すシーケンス図。
【図１０】第１の実施形態における制御プログラムの停止処理の流れを示すシーケンス図。
【図１１】第２の実施形態の遠隔制御システム１ａの構成例を示すシステム構成図。
【図１２】第２の実施形態における通信装置１０ａの機能構成を示すブロック図。
【図１３】第２の実施形態におけるサーバ２０ａの機能構成を示すブロック図。
【図１４】第２の実施形態における制御プログラムの起動処理の流れを示すシーケンス図。
【図１５】第３の実施形態の遠隔制御システム１ｂの構成例を示すシステム構成図。
【図１６】第３の実施形態の遠隔制御システム１ｂの構成例を示すシステム構成図。
【図１７】第３の実施形態におけるサーバ２０ｂの機能構成を示すブロック図。
【図１８】第３の実施形態における制御プログラムの配信の流れを示すシーケンス図。
【発明を実施するための形態】
【０００９】
以下、実施形態の遠隔制御システム、制御方法及びコンピュータプログラムを、図面を参照して説明する。
【００１０】
（第１の実施形態）
［概略］
図１は、第１の実施形態の遠隔制御システム１の構成例を示すシステム構成図である。遠隔制御システム１は、１つ以上の通信装置１０、サーバ２０及び操作端末３０（他の装置の一例）を備える。通信装置１０、サーバ２０及び操作端末３０はネットワーク４０を介して互いに通信可能である。図１には１つ以上の通信装置１０として通信装置１０−１〜１０−ｎ（ｎは１以上の整数）が示されている。通信装置１０は遠隔制御システム１の制御対象となる被制御装置２（制御対象機器）の制御に必要な情報を示す検知信号を被制御装置２に対応する検知装置３から取得する。図１の例では検知装置３−ｎは被制御装置２−ｎに対応し、通信装置１０−ｎは検知装置３−ｎから被制御装置２−ｎに関する検知信号を取得する。なお、各通信装置１０に対応する被制御装置２及び検知装置３は複数であってもよい。また、各被制御装置２に対応する検知装置３も複数であってよい。
【００１１】
具体的には、被制御装置２の制御に必要な情報とは、被制御装置２が設置された環境に関する環境情報や被制御装置２の状態に関する状態情報などである。例えば、環境情報は明るさや温度、湿度、気圧、天候などを示す情報や、緯度、経度、高度などの位置情報や、速度、加速度、圧力などの物理情報や、画像、映像、音声などの多次元の情報であり、状態情報は被制御装置２の電源状態（例えばオン又はオフ）や電流値や電圧値、圧力値、動作の状態などを示す情報や、ビット値、バイト値などのデジタル情報である。通信装置１０及びサーバ２０は、このような情報を示す検知信号に基づいて被制御装置２を制御するための制御信号を生成する制御処理を実行可能である。
【００１２】
この制御処理の実行主体は、例えば検知信号を取得する通信装置１０によって判断される。制御処理の実行主体の判断は、遠隔制御システム１に求められる応答時間（以下、「要求応答時間」という。）が満たされればどのような判断基準によるものであってもよい。例えば通信装置１０は、自装置又はサーバ２０の負荷の状況に基づいて実行主体を判断してもよいし、自装置とサーバ２０との間の通信状態に基づいて判断してもよい。また例えば通信装置１０は、検知信号に含まれる環境情報や状態情報に基づいて実行主体を判断してもよいし、被制御装置２の種別に基づいて判断してもよい。いずれにせよ、制御処理の実行主体は上記のような判断によって、通信装置１０又はサーバ２０のいずれかに決定される。サーバ２０を実行主体として判断した場合、通信装置１０は検知装置３から取得した検知信号をサーバ２０に送信する。
【００１３】
実行主体として決定された通信装置１０又はサーバ２０は、検知信号を入力として制御処理を実行することにより制御情報を生成する。通信装置１０は、自装置が実行主体である場合、生成した制御情報を被制御装置２に出力する。また通信装置１０は、サーバ２０が実行主体である場合、サーバ２０において生成された制御情報を取得して被制御装置２に出力する。被制御装置２が通信装置１０から出力された制御情報に基づいて自装置の動作を変更することにより、遠隔制御システム１による被制御装置２の遠隔制御が実現される。
【００１４】
このような遠隔制御システム１では、制御処理を実行可能な装置に対して、制御処理を実現する制御プログラムを配信する必要がある。操作端末３０は、このような制御プログラムの配信に用いられる端末である。しかしながら利用者は従来、操作端末３０を用いた制御プログラムの配信を配信先の装置ごとに行う必要があった。このような運用では制御プログラムの配信にかかる利用者の作業負荷や管理負荷も大きい。以下、このような制御プログラムの配信をより容易に行うことを可能にする遠隔制御システム１の構成について詳細を説明する。
【００１５】
［詳細］
図２は、第１の実施形態における通信装置１０の機能構成を示すブロック図である。通信装置１０は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、通信装置プログラムを実行する。通信装置１０は、通信装置プログラムの実行によって第１通信部１０１、第２通信部１０２、制御プログラム記憶部１０３、管理情報記憶部１０４、信号入出力部１０５、制御プログラム取得部１０６、制御処理部１０７、管理情報送信部１０８及び時刻同期部１０９を備える装置として機能する。なお、通信装置１０の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。通信装置プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。通信装置プログラムは、電気通信回線を介して送信されてもよい。
【００１６】
第１通信部１０１は、通信装置１０が被制御装置２及び検知装置３と通信するための通信インタフェースである。
第２通信部１０２は、通信装置１０がネットワーク４０に接続するための通信インタフェースである。
【００１７】
制御プログラム記憶部１０３及び管理情報記憶部１０４は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。制御プログラム記憶部１０３は、サーバ２０から配信される制御プログラムを記憶する。管理情報記憶部１０４は管理情報を記憶する。管理情報は、自装置における制御プログラムの管理に関する情報である。例えば本実施形態では、管理情報は次の管理情報テーブル１０４１の態様で管理情報記憶部１０４に記憶される。
【００１８】
図３は、管理情報テーブル１０４１の具体例を示す図である。管理情報テーブル１０４１は制御ＩＤごとに管理情報レコードを有する。制御ＩＤは制御処理の種別ごとに付与された識別情報である。管理情報レコードは、制御ＩＤ、制御プログラム名、更新日時、配信状態及び動作状態の各値を有する。制御プログラム名は制御ＩＤが示す制御処理を実現する制御プログラムの名称である。更新日時はサーバ２０による制御プログラムの配信により自装置の制御プログラムが更新された日時を表す。配信状態はサーバ２０による自装置への制御プログラムの配信の状態を表す。配信状態の具体例については後述する。動作状態は自装置における制御プログラムの動作の状態を表す。例えば動作状態は“起動中”又は“停止中”のいずれかの状態によって表される。
【００１９】
図２の説明に戻る。信号入出力部１０５は、被制御装置２及び検知装置３と自装置との間における制御信号及び検知信号の入出力を行う。信号入出力部１０５は、検知装置３から取得される検知信号に対する制御処理の実行主体を判定する。信号入出力部１０５は自装置を実行主体として判定した場合、取得した検知信号を制御処理部１０７に出力する。一方、信号入出力部１０５はサーバ２０を実行主体として判定した場合、取得した検知信号をサーバ２０に送信する。また、信号入出力部１０５は自装置又はサーバ２０により生成された制御信号を取得して被制御装置２に出力する。
【００２０】
制御プログラム取得部１０６は、サーバ２０により配信される制御プログラムを取得する。制御プログラム取得部１０６は、取得した制御プログラムを制御プログラム記憶部１０３に記憶させる。
【００２１】
制御処理部１０７（第１制御処理部）は、制御プログラム記憶部１０３に記憶された制御プログラムを起動することにより制御処理を実行する。制御処理部１０７は、信号入出力部１０５から出力される検知信号を制御プログラムに入力し、検知信号の入力に応じて生成される制御信号を信号入出力部１０５に出力する。一方で制御処理部１０７は、制御プログラムの動作状態に応じて管理情報記憶部１０４に記憶された管理情報を更新する。
【００２２】
管理情報送信部１０８は、管理情報の変化に応じて、管理情報記憶部１０４に記憶された管理情報を取得しサーバ２０に送信する。これにより、配信状態の変化や動作状態の変化がサーバ２０に通知される。
時刻同期部１０９は、自装置の時刻をサーバ２０の時刻に同期させる。時刻同期部１０９の実現には、ＮＴＰ（Network Time Protocol）等の従来技術が用いられてもよい。
【００２３】
図４は、第１の実施形態におけるサーバ２０の機能構成を示すブロック図である。サーバ２０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、サーバプログラムを実行する。サーバ２０は、サーバプログラムの実行によって通信部２０１、ソースコード記憶部２０２、制御プログラム記憶部２０３、管理情報記憶部２０４、ソースコード取得部２０５、コンパイル部２０６、制御プログラム配信部２０７、制御処理部２０８、管理情報送受信部２０９及び時刻同期部２１０を備える装置として機能する。なお、サーバ２０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。サーバプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。サーバプログラムは、電気通信回線を介して送信されてもよい。
【００２４】
通信部２０１は、サーバ２０がネットワーク４０に接続するための通信インタフェースである。
【００２５】
ソースコード記憶部２０２、制御プログラム記憶部２０３及び管理情報記憶部２０４は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。ソースコード記憶部２０２は、操作端末３０から送信される制御プログラムのソースコードを記憶する。制御プログラム記憶部２０３は、ソースコードのコンパイルにより生成された制御プログラムを記憶する。
【００２６】
管理情報記憶部２０４は、遠隔制御システム１が備える１つ以上の通信装置１０から送信される管理情報と、自装置における管理情報とを記憶する。例えば本実施形態では、サーバ２０の管理情報は次の管理情報テーブル２０４１の態様で管理情報記憶部２０４に記憶される。
【００２７】
図５は、管理情報テーブル２０４１の具体例を示す図である。管理情報テーブル２０４１は制御ＩＤごとに管理情報レコードを有する点では管理情報テーブル１０４１と同様であるが、管理情報レコードが配信状態の値をさらに有する点で管理情報テーブル１０４１と異なる。
【００２８】
図６は、配信状態の具体例を示す図である。例えば、配信状態は、“送信済み”、“送信失敗”、“コンパイル中”、“コンパイル済み”、“配信中”、“配信済み”、“コンパイル失敗”及び“配信失敗”の８つの状態で表される。“送信済み”は、操作端末からサーバ２０へのソースコードの送信が完了した状態を表す。“送信失敗”は、操作端末からサーバ２０へのソースコードの送信が失敗した状態を表す。“コンパイル中”は、サーバ２０においてソースコードのコンパイルを開始した状態を表す。“コンパイル済み”は、サーバ２０においてソースコードのコンパイルが完了した状態を表す。“配信中”は、サーバ２０が通信装置１０に制御プログラムを送信中である状態を表す。“配信済み”は、サーバ２０から通信装置への制御プログラムの送信が完了した状態を表す。“コンパイル失敗”は、サーバ２０においてソースコードのコンパイルが失敗した状態を表す。“配信失敗”は、サーバ２０から通信装置１０への制御プログラムの送信が失敗した状態を表す。
【００２９】
なお、図６は配信状態の一例であり、配信状態は制御プログラムの配信に関する状態であれば他のどのような状態を示すものであってもよい。
【００３０】
図４の説明に戻る。ソースコード取得部２０５は、操作端末３０から送信される制御プログラムのソースコードを取得する。ソースコード取得部２０５は、取得したソースコードをソースコード記憶部２０２に記憶させる。
【００３１】
コンパイル部２０６は、ソースコード記憶部２０２に記憶された制御プログラムのソースコードをコンパイルすることによりコンピュータが実行可能な形式に変換された制御プログラムを生成する。コンパイル部２０６は、生成した制御プログラムを制御プログラム記憶部２０３に記憶させる。一方でコンパイル部２０６は、ソースコードのコンパイルの状況（コンパイル状態）に応じて管理情報記憶部２０４に記憶された管理情報を更新する。
【００３２】
制御プログラム配信部２０７は、コンパイル部２０６によって生成された制御プログラムを通信装置１０に配信する。具体的には、制御プログラム配信部２０７は、管理情報が示す配信先の通信装置１０に制御プログラムを送信する。一方で制御プログラム配信部２０７は、制御プログラムの配信状態に応じて管理情報記憶部２０４に記憶された管理情報を更新する。
【００３３】
制御処理部２０８（第２制御処理部）は、制御プログラム記憶部２０３に記憶された制御プログラムを起動することにより制御処理を実行する。制御処理部２０８は、通信装置１０から送信される検知信号を制御プログラムに入力し、検知信号の入力に応じて生成される制御信号を通信装置１０に送信する。一方で制御処理部２０８は、制御プログラムの動作状態に応じて管理情報記憶部２０４に記憶された管理情報を更新する。
【００３４】
管理情報送受信部２０９（状態通知部）は、通信装置１０から送信される管理情報を取得し、取得した管理情報に応じて自装置の管理情報を更新する。さらに管理情報送受信部２０９は自装置の管理情報を操作端末３０に送信する機能を有する。管理情報送受信部２０９は、操作端末３０から通知される管理情報の取得要求に応じて管理情報を送信してもよいし、定期的に管理情報を送信してもよい。また、管理情報によりなんらかの異常が検知された場合に管理情報を送信してもよい。この管理情報の送信により、通信装置１０及びサーバ２０の制御プログラムに関する各種の状態が操作端末３０に通知される。
時刻同期部２１０は、通信装置１０の時刻を自装置の時刻に同期させる。
【００３５】
図７は、第１の実施形態における操作端末３０の機能構成を示すブロック図である。操作端末３０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、操作端末プログラムを実行する。操作端末３０は、操作端末プログラムの実行によって通信部３０１、ソースコード記憶部３０２、管理情報記憶部３０３、表示部３０４、入力部３０５、管理情報取得部３０６及びソースコード送信部３０７を備える装置として機能する。なお、操作端末３０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。操作端末プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。操作端末プログラムは、電気通信回線を介して送信されてもよい。
【００３６】
通信部３０１は、操作端末３０がネットワーク４０に接続するための通信インタフェースである。
【００３７】
ソースコード記憶部３０２及び管理情報記憶部３０３は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。ソースコード記憶部３０２は、通信装置１０及びサーバ２０に配信する制御プログラムのソースコードを記憶する。制御プログラムのソースコードは予めソースコード記憶部３０２に記憶されている。制御プログラムのソースコードは、ソースコードが記録された記録媒体を読み取ることにより取得されてもよいし、ソースコードを保持する他の装置との通信によって取得されてもよい。
管理情報記憶部３０３は、サーバ２０から送信される管理情報を記憶する。
【００３８】
表示部３０４は、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイ、有機ＥＬ（Electro-Luminescence）ディスプレイ等の表示装置を用いて構成される。表示部３０４は、管理情報取得部３０６から出力される管理情報を表示する。
【００３９】
入力部３０５は、タッチパネルやマウスやキーボード等の入力装置を用いて構成される。入力部３０５は、ソースコードの配信に関するユーザの操作の入力を受け付ける。入力部３０５は、ユーザの入力情報をソースコード送信部３０７に出力する。
【００４０】
管理情報取得部３０６は、所定のタイミングでサーバ２０から管理情報を取得する。管理情報取得部３０６は、取得した管理情報を表示部３０４に出力するとともに管理情報記憶部３０３に記憶させる。例えば管理情報取得部３０６は、管理情報の取得を定期的に行うことで、表示部３０４における管理情報の表示を定期的に更新させてもよい。
【００４１】
ソースコード送信部３０７は、ユーザの操作に応じて自装置に記憶されたソースコードをサーバ２０に送信する。例えば、ユーザは、表示部３０４に表示された管理情報の内容に応じてソースコードの配信に関する操作を入力する。
【００４２】
図８は、第１の実施形態における制御プログラムの配信の流れを示すシーケンス図である。ここでは、２つの通信装置１０に対して制御プログラムを配信する例について説明する。以下の説明を簡単にするため、図８において配信対象となる通信装置１０を第１通信装置１０及び第２通信装置１０と記載する。
【００４３】
まず、操作端末３０において通信装置１０に対するソースコードの送信操作が入力される。例えばこのとき、操作端末３０の表示部３０４にサーバ２０から前回取得された管理情報が表示されているとする。ユーザは、表示されている管理情報により配信対象のソースコードを判断する。ユーザは、サーバ２０に対して配信対象のソースコードを送信する操作を操作端末３０に入力する。操作端末３０は、ユーザの入力に応じて配信対象のソースコードをサーバ２０に送信する（ステップＳ１０１）。
【００４４】
サーバ２０は操作端末３０から送信されたソースコードを受信する（ステップＳ１０２）。サーバ２０はソースコードの受信状況に応じて管理情報記憶部２０４に記憶された管理情報を更新する（ステップＳ１０３）。例えばソースコード取得部２０５は、受信されたソースコードがソースコード記憶部２０２に正常に記憶された場合、管理情報テーブル２０４１を参照し、受信されたソースコードに対応する管理情報レコードの配信状態の値を“送信済み”に更新する。一方、ソースコードの受信が異常終了した場合や、受信されたソースコードがソースコード記憶部２０２に正常に記憶されなかった場合、ソースコード取得部２０５は当該レコードの配信状態の値を“送信失敗”に更新する。
【００４５】
続いて、コンパイル部２０６は、ソースコード記憶部２０２から制御プログラムのソースコードを取得してコンパイルする（ステップＳ１０４）。コンパイル部２０６は、ソースコードのコンパイルにより、実行形式に変換された制御プログラムを生成する。コンパイル部２０６は、ソースコードのコンパイルの状況に応じて管理情報記憶部２０４に記憶された管理情報を更新する（ステップＳ１０５）。具体的には、コンパイル部２０６は管理情報テーブル２０４１を参照し、コンパイル対象のソースコードに対応する管理情報レコードの配信状態の値を更新する。例えばコンパイル部２０６は、当該レコードの配信状態の値を“コンパイル中”、“コンパイル済み”又は“コンパイル失敗”のいずれかに更新する。
【００４６】
サーバ２０はコンパイル部２０６によって生成された制御プログラムを第１通信装置１０及び第２通信装置１０に送信する（ステップＳ１０６）。この制御プログラムの送信は制御プログラム配信部２０７によって行われる。制御プログラム配信部２０７は、管理情報が示すコンパイルの状況に応じて制御プログラムを送信する。例えば制御プログラム配信部２０７は、管理情報テーブル２０４１を参照し、配信状態の値に“コンパイル済み”を持つ管理情報レコードを選択する。制御プログラム配信部２０７は、選択されたレコードに対応する制御プログラムを配信先の装置に送信する。
【００４７】
サーバ２０は、制御プログラムの配信状況に応じて管理情報記憶部２０４に記憶された管理情報を更新する（ステップＳ１０７）。具体的には、制御プログラム配信部２０７は管理情報テーブル２０４１を参照し、配信対象の制御プログラムに対応する管理情報レコードの配信状態の値を更新する。例えば制御プログラム配信部２０７は、当該レコードの配信状態の値を“配信中”に更新する。
【００４８】
一方、第１通信装置１０及び第２通信装置１０は、ステップＳ１０６においてサーバ２０から送信された制御プログラムを受信する（ステップＳ１０８及びＳ１０９）。制御プログラム取得部１０６は、受信された制御プログラムを制御プログラム記憶部１０３に記憶させる。制御プログラム取得部１０６は、自装置への制御プログラムの配信が完了したことを示す配信完了通知をサーバ２０に送信する（ステップＳ１１０及びＳ１１１）。例えば制御プログラム取得部１０６は、受信された制御プログラムが制御プログラム記憶部１０３に正常に記憶されたことをもって配信完了通知を送信する。そして、制御プログラム取得部１０６は、管理情報テーブル１０４１を参照し、受信された制御プログラムに対応する管理情報レコードの配信状態の値を更新する。例えば制御プログラム取得部１０６は、当該レコードの配信状態の値を“配信済み”に更新する。
【００４９】
なお、ステップＳ１１０〜Ｓ１１２の処理（以下、「制御プログラム受信処理」という。）が行われるタイミングは配信先の通信装置１０による。例えば通信遅延や通信装置１０の負荷の状況などによって、各通信装置１０による制御プログラム受信処理の開始や終了のタイミングは変動する。図８のステップＳ１０８及びＳ１０９と、ステップＳ１１０及びＳ１１１とは、このような理由によるタイミングの違いを表している。
【００５０】
サーバ２０は通信装置１０から送信される配信完了通知を受信し、管理情報を更新する。図８の例の場合、サーバ２０は、ステップＳ１１０で送信された配信完了通知の受信に応じた管理情報の更新をステップＳ１１２で行い、ステップＳ１１１で送信された配信完了通知の受信に応じた管理情報の更新をステップＳ１１３で行う。具体的には、制御プログラム配信部２０７は管理情報テーブル２０４１を参照し、配信状態が“配信中”である管理情報レコードの配信状態を更新する。例えば制御プログラム配信部２０７は、当該レコードの配信状態の値を“配信済み”に更新する。
【００５１】
一方、操作端末３０は、サーバ２０に対して所定のタイミングで管理情報を要求する（ステップＳ１１４及びＳ１１８）。例えば操作端末３０は、サーバ２０に対して所定の周期で管理情報取得要求を送信する。サーバ２０は、管理情報取得要求の受信に応じて、その時点での管理情報を管理情報記憶部２０４から取得し操作端末３０に送信する。操作端末３０は、サーバ２０から送信される管理情報を受信する。操作端末３０は、受信した管理情報の内容で表示部３０４の表示を更新する。
【００５２】
図８の例の場合、サーバ２０は、ステップＳ１１４で送信された管理情報取得要求の受信に応じた管理情報の送信をステップＳ１１５で行い、ステップＳ１１８で送信された管理情報取得要求の受信に応じた管理情報の送信をステップＳ１１９で行う。また、操作端末３０は、ステップＳ１１５で送信された管理情報をステップＳ１１６で受信し、ステップＳ１１９で送信された管理情報をステップＳ１２０で受信する。そして操作端末３０は、ステップＳ１１６で受信された管理情報に基づく表示の更新をステップＳ１１７で行い、ステップＳ１２０で受信された管理情報に基づく表示の更新をステップＳ１２１で行う。
【００５３】
図９は、第１の実施形態における制御プログラムの起動処理の流れを示すシーケンス図である。まず、第１通信装置１０及び第２通信装置１０は、サーバ２０との間で時刻同期処理を行う（ステップＳ２０１〜Ｓ２０４）。この時刻同期処理は、制御プログラムの起動を精度良く制御するための前処理である。時刻同期処理は、通信装置１０及びサーバ２０の時刻が後述する制御プログラムの起動の制御に必要とされる精度で同期されれば、必ずしも図９に示したタイミングで行われる必要はない。例えば時刻同期処理は、所定の間隔で定期的に実行されてもよいし、時刻のずれが所定の閾値を越えたタイミングで実行されてもよい。
【００５４】
このように通信装置１０とサーバ２０との時刻が同期されている状況で、制御プログラムを起動する操作が操作端末３０において入力される。操作端末３０は、制御プログラムの起動を指示する指示情報をサーバ２０に送信する（ステップＳ２０５）。例えば操作端末３０は、起動対象の制御プログラムを示す指示情報を送信することによって当該制御プログラムの起動を指示する。サーバ２０は、操作端末３０から送信された指示情報を受信する（ステップＳ２０６）。サーバ２０は、受信した指示情報を通信装置１０に転送する（ステップＳ２０７）。この指示情報の転送により操作端末３０による制御プログラムの起動指示が通信装置１０に通知される。
【００５５】
指示情報の転送後、サーバ２０は所定の起動時刻まで待機する（ステップＳ２０８）。制御プログラムの起動時刻は、通信装置１０及びサーバ２０に予め設定されていてもよいし、操作端末３０によって指定されてもよい。後者の場合、例えば操作端末３０は起動時刻を指示情報に含めて送信することにより、通信装置１０及びサーバ２０に制御プログラムの起動時刻を通知してもよい。また制御プログラムの起動時刻はサーバ２０によって決定されてもよい。この場合、例えばサーバ２０は、決定した起動時刻を指示情報に含めて送信することにより、通信装置１０に制御プログラムの起動時刻を通知してもよい。
【００５６】
第１通信装置１０及び第２通信装置１０は、サーバ２０から転送された指示情報を受信する（ステップＳ２０９及びＳ２１０）。第１通信装置１０及び第２通信装置１０は、サーバ２０と同様に制御プログラムの所定の起動時刻まで待機する（ステップＳ２１１及びＳ２１２）。第１通信装置１０、第２通信装置１０及びサーバ２０は、起動時刻の到来に応じて制御プログラムを起動する（ステップＳ２１３〜Ｓ２１５）。第１通信装置、第２通信装置１０及びサーバ２０は、制御プログラムの起動に応じて管理情報を更新する（ステップＳ２１６〜Ｓ２１８）。
【００５７】
具体的には、第１通信装置１０及び第２通信装置１０は、管理情報テーブル１０４１を参照し、起動した制御プログラムに対応する管理情報レコードの動作状態の値を更新する。同様にサーバ２０は、管理情報テーブル２０４１を参照し、起動した制御プログラムに対応する管理情報レコードの動作状態の値を更新する。例えば第１通信装置１０、第２通信装置１０及びサーバ２０は、動作状態の値を“停止中”から“動作中”に更新する。第１通信装置１０及び第２通信装置１０は、更新後の管理情報をサーバ２０に送信する（ステップＳ２１９及びＳ２２０）。
【００５８】
サーバ２０は、第１通信装置１０及び第２通信装置１０から送信された管理情報を受信する（ステップＳ２２１）。サーバ２０は、第１通信装置１０及び第２通信装置１０から取得された管理情報に基づいて自装置の管理情報を更新する（ステップＳ２２２）。
【００５９】
一方、操作端末３０は、サーバ２０に対し所定のタイミングで管理情報を要求する（ステップＳ２２３）。ここでの管理情報の要求は図８と同様である。サーバ２０は、操作端末３０から送信される管理情報取得要求に応じて、その時点での管理情報を管理情報記憶部２０４から取得し操作端末３０に送信する（ステップＳ２２４）。操作端末３０は、サーバ２０から送信される管理情報を受信する（ステップＳ２２５）。操作端末３０は、受信した管理情報の内容で表示部３０４の表示を更新する（ステップＳ２２６）。
【００６０】
図１０は、第１の実施形態における制御プログラムの停止処理の流れを示すシーケンス図である。制御プログラムの停止処理は、所定の停止時刻において制御プログラムを停止する点以外は図９の開始処理と同様である。そのため、起動処理と同様の処理については図９と同じ符号を付すことにより説明を省略する。
【００６１】
操作端末３０は、制御プログラムの停止を指示する指示情報をサーバ２０に送信する（ステップＳ３０１）。例えば操作端末３０は、停止対象の制御プログラムを示す指示情報を送信することによって当該制御プログラムの停止を指示する。サーバ２０は、操作端末３０から送信された指示情報を受信する（ステップＳ３０２）。サーバ２０は、受信した指示情報を通信装置１０に転送する（ステップＳ３０３）。この指示情報の転送により操作端末３０による制御プログラムの停止指示が通信装置１０に通知される。
【００６２】
指示情報の転送後、サーバ２０は所定の停止時刻まで待機する（ステップＳ３０４）。なお、通信装置１０及びサーバ２０に対して制御プログラムの停止時刻を通知する方法には起動処理と同様の方法を用いればよい。第１通信装置１０及び第２通信装置１０は、サーバ２０から転送された指示情報を受信する（ステップＳ３０５及びＳ３０６）。第１通信装置１０及び第２通信装置１０は、サーバ２０と同様に制御プログラムの所定の停止時刻まで待機する（ステップＳ３０７及びＳ３０８）。第１通信装置１０、第２通信装置１０及びサーバ２０は、停止時刻の到来に応じて制御プログラムを停止させる（ステップＳ３０９〜Ｓ３１１）。第１通信装置、第２通信装置１０及びサーバ２０は、制御プログラムの停止に応じて管理情報を更新する（ステップＳ３１２〜Ｓ３１４）。例えば、第１通信装置１０、第２通信装置１０及びサーバ２０は、動作状態の値を“動作中”から“停止中”に更新する。
【００６３】
このように構成された第１の実施形態の遠隔制御システム１では、サーバ２０が操作端末３０から送信される制御プログラムのソースコードをコンパイルすることにより実行形式の制御プログラムを生成し、生成した制御プログラムをサーバ２０が各通信装置１０に配信する。このような構成を備えることにより、遠隔制御システム１における制御プログラムの配信を容易にすることができる。
【００６４】
また遠隔制御システム１では、制御プログラムの配信状態が管理情報により管理される。通信装置１０及びサーバ２０は、制御プログラムの配信状態に応じて管理情報を更新し、要求に応じて操作端末３０に送信する。このような構成を備えることにより、遠隔制御システム１の利用者は、制御処理装置（通信装置１０及びサーバ２０）の配信状態を一元的に管理することができる。
【００６５】
また通信装置１０及びサーバ２０の制御処理部は、操作端末３０の指示に応じて制御プログラムを同期して起動又は停止する機能を有する。各制御処理装置がこのような機能を備えることにより、利用者は各制御処理装置における制御プログラムの起動又は停止を一元的に操作することができる。これにより遠隔制御システム１の利用者は、制御プログラムの配信作業をより容易に行うことが可能となる。
【００６６】
また管理情報には制御処理装置における制御プログラムの動作状態を示す情報が含まれる。このような管理情報が各制御処理装置から収集されることにより、遠隔制御システム１の利用者は、各制御処理装置における制御プログラムの動作状態に応じて、制御プログラムの配信操作を行うことができる。
【００６７】
（第２の実施形態）
図１１は、第２の実施形態の遠隔制御システム１ａの構成例を示すシステム構成図である。遠隔制御システム１ａは、通信装置１０に代えて通信装置１０ａを備える点、サーバ２０に代えてサーバ２０ａを備える点で第１の実施形態の遠隔制御システム１と異なる。通信装置１０ａ及びサーバ２０ａ以外の構成は、第１の実施形態の遠隔制御システム１と同様である。そのため、通信装置１０ａ及びサーバ２０ａ以外の構成については図１と同じ符号を付すことにより説明を省略する。
【００６８】
図１２は、第２の実施形態における通信装置１０ａの機能構成を示すブロック図である。通信装置１０ａは、制御処理部１０７に代えて制御処理部１０７ａを備える点で第１の実施形態における通信装置１０と異なる。他の機能部は第１の実施形態における通信装置１０と同様である。そのため、制御処理部１０７ａ以外の機能部については図２と同じ符号を付すことにより説明を省略する。
【００６９】
制御処理部１０７ａは制御処理部１０７と同様の機能を有し、サーバ２０ａに対して伝送時間を通知する機能をさらに有する。具体的には制御処理部１０７ａは、サーバ２０ａから伝送時間の調査のために送信される情報（以下、「調査情報」という。）に基づいて伝送時間を取得する。
【００７０】
図１３は、第２の実施形態におけるサーバ２０ａの機能構成を示すブロック図である。サーバ２０ａは、制御処理部２０８に代えて制御処理部２０８ａを備える点で第１の実施形態におけるサーバ２０と異なる。他の機能部は第１の実施形態におけるサーバ２０と同様である。そのため、制御処理部２０８ａ以外の機能部については図４と同じ符号を付すことにより説明を省略する。
【００７１】
制御処理部２０８ａは制御処理部２０８と同様の機能を有し、通信装置１０における制御プログラムの起動時刻又は停止時刻を決定する機能をさらに有する。具体的には、制御処理部２０８ａは自装置と通信装置１０ａとの間の伝送時間に応じて起動時刻又は停止時刻を決定する。制御処理部２０８ａは決定した起動時刻又は停止時刻を通信装置１０に通知するとともに、決定した起動時刻又は停止時刻において自装置の制御プログラムを起動又は停止させる。
【００７２】
図１４は、第２の実施形態における制御プログラムの起動処理の流れを示すシーケンス図である。ここでは、第１の実施形態における起動処理と同じ処理については図９と同じ符号を付すことにより説明を省略する。
ステップＳ２０６において制御プログラムの起動を指示する指示情報を受信すると、サーバ２０ａは、自装置と通信装置１０との間の伝送時間を計測する。例えば、サーバ２０ａの制御処理部２０８ａが現在時刻を含めた調査情報を通信装置１０に送信する（ステップＳ４０１）。
【００７３】
第１通信装置１０ａ及び第２通信装置１０ａはサーバ２０から送信された調査情報を受信する。第１通信装置１０ａ及び第２通信装置１０ａの制御処理部１０７ａは、受信された調査情報から調査情報の送信時刻を取得する。制御処理部１０７ａは、取得した調査情報の送信時刻及び自装置の受信時刻から自装置とサーバ２０との間の伝送時間を取得する（ステップＳ４０２及びＳ４０３）。制御処理部１０７ａは取得した伝送時間をサーバ２０に応答する（ステップＳ４０４及びＳ４０５）。
【００７４】
サーバ２０ａは第１通信装置１０ａ及び第２通信装置１０ａからの伝送時間の応答を受信する（ステップＳ４０６）。制御処理部２０８ａは受信された応答に基づいて、自装置と通信装置１０ａとの間における伝送遅延の有無を判定する（ステップＳ４０７）。例えば、制御処理部２０８ａは取得された伝送時間を所定の閾値と比較することによって伝送遅延の有無を判定する。伝送遅延が無いと判定した場合、制御処理部２０８ａは取得された伝送時間に基づいて制御プログラムの起動時刻を決定する（ステップＳ４０８）。制御処理部２０８ａは、決定した起動時刻を含めた指示情報を転送する（ステップＳ２０７）ことにより、起動時刻を第１通信装置１０ａ及び第２通信装置１０ａに通知する。
【００７５】
一方、ステップＳ４０７において伝送遅延有りと判定した場合、制御処理部２０８ａは伝送遅延の発生を示す遅延発生通知を操作端末３０に送信（ステップＳ４０９）した上で起動時刻を決定する（ステップＳ４０８）。そして、ステップＳ２０７以降、図９と同様の処理により制御プログラムが起動される。
【００７６】
以上、第２の実施形態における制御プログラムの起動処理について説明したが、制御プログラムの停止処理についても上記と同様の方法で制御することができる。また、サーバ２０ａは、通信装置１０ａとの伝送遅延の他、制御プログラムのコンパイルの失敗や制御プログラムの送受信の失敗、制御プログラムの起動又は停止の失敗など、制御プログラムの配信に関するものであればどのような異常を操作端末３０に通知してもよい。
【００７７】
このように構成された第２の実施形態における遠隔制御システム１ａでは、制御プログラムの起動時刻及び停止時刻が通信装置１０ａとサーバ２０ａとの間の伝送時間に基づいて決定される。制御プログラムの起動時刻及び停止時刻がこのように決定されることにより、制御プログラムの起動及び停止のタイミングをより確実に制御することが可能となる。
【００７８】
（第３の実施形態）
図１５は、第３の実施形態の遠隔制御システム１ｂの構成例を示すシステム構成図である。遠隔制御システム１ｂは、通信装置１０ａに代えて通信装置１０ｂを備える点、サーバ２０ａに代えてサーバ２０ｂを備える点で第２の実施形態の遠隔制御システム１ａと異なる。通信装置１０ｂ及びサーバ２０ｂ以外の構成は、第２の実施形態の遠隔制御システム１ａと同様である。そのため、通信装置１０ｂ及びサーバ２０ｂ以外の構成については図１１と同じ符号を付すことにより説明を省略する。
【００７９】
図１６は、第３の実施形態における通信装置１０ｂの機能構成を示すブロック図である。通信装置１０ｂは、ソースコード記憶部１１０をさらに備える点、制御プログラム取得部１０６に代えてソースコード取得部１１１を備える点、コンパイル部１１２をさらに備える点で第２の実施形態における通信装置１０ａと異なる。他の機能部は第２の実施形態における通信装置１０ａと同様である。そのため、ソースコード記憶部１１０、ソースコード取得部１１１及びコンパイル部１１２以外の機能部については図１２と同じ符号を付すことにより説明を省略する。
【００８０】
ソースコード記憶部１１０は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。ソースコード記憶部１１０は、サーバ２０から配信された制御プログラムのソースコードを記憶する。
【００８１】
ソースコード取得部１１１は、サーバ２０ｂから配信される制御プログラムのソースコードを取得する。ソースコード取得部１１１は、取得したソースコードをソースコード記憶部１１０に記憶させる。
【００８２】
コンパイル部１１２は、ソースコード記憶部１１０に記憶された制御プログラムのソースコードをコンパイルすることによりコンピュータが実行可能な形式（以下、「実行形式」という。）に変換された制御プログラムを生成する。コンパイル部１１２は、生成した制御プログラムを制御プログラム記憶部１０３に記憶させる。一方でコンパイル部１１２は、ソースコードのコンパイルの状況に応じて管理情報記憶部１０４に記憶された管理情報を更新する。
【００８３】
図１７は、第３の実施形態におけるサーバ２０ｂの機能構成を示すブロック図である。サーバ２０ｂは、制御プログラム配信部２０７に代えてソースコード配信部２１１を備える点で第２の実施形態におけるサーバ２０ａと異なる。他の機能部は第２の実施形態におけるサーバ２０ａと同様である。そのため、ソースコード配信部２１１以外の機能部については図１３と同じ符号を付すことにより説明を省略する。
【００８４】
ソースコード配信部２１１は、操作端末３０から送信された制御プログラムのソースコードを通信装置１０に配信する。ソースコード配信部２１１は、ソースコードの配信状況に応じて管理情報記憶部２０４に記憶された管理情報を更新する。
【００８５】
図１８は、第３の実施形態における制御プログラムの配信の流れを示すシーケンス図である。ここでは、第２の実施形態における制御プログラムの配信処理と同じ処理については図８と同じ符号を付すことにより説明を省略する。
【００８６】
サーバ２０ｂは、ステップＳ１０２において受信されたソースコードを第１通信装置１０ｂ及び第２通信装置１０ｂに送信する（ステップＳ５０１）。サーバ２０ｂは、ソースコードの配信状況に応じて管理情報記憶部２０４に記憶された管理情報を更新する（ステップＳ５０２）。例えば、ソースコード配信部２１１は、管理情報レコードの配信状態の値を“配信中”に更新する。
【００８７】
第１通信装置１０ｂ及び第２通信装置１０ｂは、サーバ２０ｂから配信された制御プログラムのソースコードを受信する（ステップＳ５０３及びＳ５０４）。ソースコード取得部１１１は、受信されたソースコードをソースコード記憶部１１０に記憶させる。コンパイル部１１２は、ソースコード記憶部１１０に記憶されたソースコードをコンパイルし、実行形式の制御プログラムを生成する（ステップＳ５０５及びＳ５０６）。コンパイル部１１２は、生成した実行形式の制御プログラムを制御プログラム記憶部１０３に記憶させる。コンパイル部１１２は、ソースコードのコンパイルの状況に応じて管理情報記憶部１０４に記憶された管理情報を更新する。ソースコード取得部１１１は、配信されたソースコードのコンパイルが正常に行われたことをもって、サーバ２０ｂに配信完了通知を送信する（ステップＳ５０７及びＳ５０８）。
【００８８】
このように構成された第３の実施形態の遠隔制御システム１ｂでは、ソースコードのコンパイルが通信装置１０ｂで行われる。このようにソースコードのコンパイルが通信装置１０ｂ側で実施されることにより、通信装置１０ｂとサーバ２０ｂとの間の伝送遅延による制御プログラムの配信の遅延を抑制することが可能となる。
【００８９】
以下、上記実施形態の遠隔制御システムの変形例について説明する。
【００９０】
第３の実施形態の遠隔制御システム１ｂは、通信装置１０ｂとサーバ２０ｂとの間の伝送遅延の状況に応じて、ソースコードのコンパイルを通信装置１０ｂ又はサーバ２０ｂのどちらに実行させるかを判断する配信制御部（図示せず）を備えてもよい。このように構成されることで遠隔制御システム１ｂは、制御プログラムの配信をより確実に行うことが可能となる。
【００９１】
以上説明した少なくともひとつの実施形態によれば、制御プログラムの実行により制御処理を実行可能な第１制御装置と、制御プログラムの実行により制御処理を実行可能であり、制御プログラムを第１制御装置に配信する第２制御装置と、を持つことにより、遠隔制御システムにおける制御プログラムの配信を容易にすることができる。
【００９２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００９３】
１，１ａ，１ｂ…遠隔制御システム、２，２−１〜２−ｎ…被制御装置、３，３−１〜３−ｎ…検知装置、１０，１０−１〜１０−ｎ，１０ａ，１０ｂ…通信装置（第１通信装置，第２通信装置）、１０１…第１通信部、１０２…第２通信部、１０３…制御プログラム記憶部、１０４…管理情報記憶部、１０４１…管理情報テーブル、１０５…信号入出力部、１０６…制御プログラム取得部、１０７…制御処理部、１０８…管理情報送信部、１０９…時刻同期部、１１０…ソースコード記憶部、１１１…ソースコード取得部、１１２…コンパイル部、２０，２０ａ，２０ｂ…サーバ、２０１…通信部、２０２…ソースコード記憶部、２０３…制御プログラム記憶部、２０４…管理情報記憶部、２０４１…管理情報テーブル、２０５…ソースコード取得部、２０６…コンパイル部、２０７…制御プログラム配信部、２０８…制御処理部、２０８ａ…制御処理部、２０９…管理情報送受信部、２１０…時刻同期部、２１１…ソースコード配信部、３０…操作端末、３０１…通信部、３０２…ソースコード記憶部、３０３…管理情報記憶部、３０４…表示部、３０５…入力部、３０６…管理情報取得部、３０７…ソースコード送信部、４０…ネットワーク
【図１】
2017046075.tif 000003
【図２】
2017046075.tif 000004
【図３】
2017046075.tif 000005
【図４】
2017046075.tif 000006
【図５】
2017046075.tif 000007
【図６】
2017046075.tif 000008
【図７】
2017046075.tif 000009
【図８】
2017046075.tif 000010
【図９】
2017046075.tif 000011
【図１０】
2017046075.tif 000012
【図１１】
2017046075.tif 000013
【図１２】
2017046075.tif 000014
【図１３】
2017046075.tif 000015
【図１４】
2017046075.tif 000016
【図１５】
2017046075.tif 000017
【図１６】
2017046075.tif 000018
【図１７】
2017046075.tif 000019
【図１８】
2017046075.tif 000020