以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態のうち、2つ以上の実施の形態が組み合わせられて実施されても構わない。あるいは、以下に説明する実施の形態のうち、1つの実施の形態または2つ以上の実施の形態の組み合わせが部分的に実施されても構わない。
実施の形態1.
本実施の形態について、図1から図4を用いて説明する。
***構成の説明***
図1を参照して、本実施の形態に係る通信システム10の構成を説明する。
通信システム10は、機器11と、制御装置20とを備える。
機器11は、インターネット等のネットワークを介して制御装置20と接続される。本実施の形態では、機器A1、機器B1、機器B2、機器C1および機器C2といった機器11によってフィールド環境が構築され、制御装置20によってクラウド環境が構築される。
クラウド環境においてアプリケーション50からの機器11に対する制御要求が受け付けられると、制御装置20により制御用の電文が生成されてフィールド環境へ送信される。機器A1のように、フィールド環境において送信される電文に対応する制御経路上に1つの機器11しかなければ、その機器11に電文が直接送信される。機器B1および機器B2のように、フィールド環境において送信される電文に対応する制御経路上に2つ以上の機器11があれば、制御経路上で制御装置20の隣の機器11に電文が送信され、その後、制御経路上の末端の機器11まで電文が順番に転送されていく。
制御装置20は、コンピュータである。制御装置20は、プロセッサ21を備えるとともに、メモリ22および通信デバイス23といった他のハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
制御装置20は、機能要素として、複数のモジュール31と、要求受付部32と、構成解決部33と、電文構築部34と、電文送信部35とを備える。複数のモジュール31、要求受付部32、構成解決部33および電文構築部34の機能は、ソフトウェアにより実現される。具体的には、複数のモジュール31、要求受付部32、構成解決部33および電文構築部34の機能は、制御プログラムにより実現される。制御プログラムは、それぞれソフトウェア部品である複数のモジュール31を含むとともに、要求受付部32、構成解決部33および電文構築部34により行われる処理をそれぞれ要求受付処理、構成解決処理および電文構築処理としてコンピュータに実行させるプログラムである。制御プログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。電文送信部35の機能は、通信デバイス23により実現される。具体的には、電文送信部35の機能は、後述するトランスミッタにより実現される。
プロセッサ21は、制御プログラムを実行する装置である。プロセッサ21は、例えば、CPUである。「CPU」は、Central Processing Unitの略語である。
メモリ22は、制御プログラムをあらかじめまたは一時的に記憶する装置である。メモリ22は、例えば、RAM、フラッシュメモリまたはこれらの組み合わせである。「RAM」は、Random Access Memoryの略語である。メモリ22には、データベース24が構築されている。データベース24には、制御経路の機器構成を定義する構成情報41が格納されている。
通信デバイス23は、制御プログラムに入力されるデータを受信するレシーバと、制御プログラムから出力されるデータを送信するトランスミッタとを備える。通信デバイス23は、例えば、通信チップまたはNICである。「NIC」は、Network Interface Cardの略語である。
制御プログラムは、メモリ22からプロセッサ21に読み込まれ、プロセッサ21によって実行される。メモリ22には、制御プログラムだけでなく、OSも記憶されている。「OS」は、Operating Systemの略語である。プロセッサ21は、OSを実行しながら、制御プログラムを実行する。なお、制御プログラムの一部または全部がOSに組み込まれていてもよい。
制御プログラムおよびOSは、補助記憶装置に記憶されていてもよい。補助記憶装置は、例えば、HDD、フラッシュメモリまたはこれらの組み合わせである。「HDD」は、Hard Disk Driveの略語である。制御プログラムおよびOSは、補助記憶装置に記憶されている場合、メモリ22にロードされ、プロセッサ21によって実行される。
データベース24は、補助記憶装置に構築されていてもよい。
制御装置20は、プロセッサ21を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、制御プログラムの実行を分担する。それぞれのプロセッサは、例えば、CPUである。
制御プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ22、補助記憶装置、または、プロセッサ21内のレジスタまたはキャッシュメモリに記憶される。
制御装置20は、1台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。制御装置20が複数台のコンピュータで構成されている場合は、複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および電文送信部35の機能が、各コンピュータに分散されて実現されてもよい。
図2を参照して、データベース24のテーブルの例を説明する。
本実施の形態では、構成情報41は、テーブル形式でデータベース24に格納されている。具体的には、構成情報41は、「機器ID」、「親機器ID」および「機種」といったカラムで構成されたテーブルとしてデータベース24にあらかじめ格納されている。「ID」は、Identifierの略語である。「機器ID」は、機器11の識別子である。「親機器ID」は、「機器ID」の機器11の親機器、すなわち、制御経路上で「機器ID」の機器11から制御装置20の側に1台分遡った位置にある機器11の識別子である。「機種」は、「機器ID」の機器11の機種である。
図2の例では、機器A1は、テレビであり、制御装置20に直接接続されている。機器B1は、ゲートウェイ装置であり、制御装置20に直接接続されている。機器B2は、テレビであり、機器B1を介して制御装置20に接続されている。機器C1は、ゲートウェイ装置であり、制御装置20に直接接続されている。機器C2は、機器C1とは異なる機種のゲートウェイ装置であり、機器C1を介して制御装置20に接続されている。機器C3は、テレビであり、機器C2および機器C1を介して制御装置20に接続されている。
制御装置20が備える複数のモジュール31は、互いに異なる機種に対応しており、それぞれ対応する機種に応じた形式の電文を生成する機能を持っている。図2の例では、制御装置20は、テレビに対応するモジュール31、ゲートウェイ装置に対応するモジュール31および別のゲートウェイ装置に対応するモジュール31といった少なくとも3つのモジュール31を備えている。
***動作の説明***
図3を参照して、本実施の形態に係る制御装置20の動作を説明する。制御装置20の動作は、本実施の形態に係る制御方法に相当する。
ステップS101において、要求受付部32は、アプリケーション50からの制御要求を受け付ける。この制御要求には、制御対象機器の機器IDと、制御コマンドと、制御パラメータとが含まれている。
ステップS102において、構成解決部33は、データベース24にある構成情報41を取得する。図2の例のように、構成情報41には、制御対象機器の機種と、クラウド環境から制御対象機器までの中継機器の機器IDおよびその機種とを示す情報が含まれている。図2の例では、機器A1、機器B2および機器C3が制御対象機器に該当し、機器B1、機器C1および機器C2が中継機器に該当する。
具体的には、ステップS102において、構成解決部33は、ステップS101で受け付けられた制御要求に含まれる機器IDでデータベース24を検索することで、制御経路の機器構成を特定する。
ステップS103からステップS107において、電文構築部34は、制御対象機器までの制御経路上に制御対象機器とは別の機器11がある場合、複数のモジュール31の中から、当該別の機器11の機種に対応するモジュール31を選択して利用することで、当該別の機器11を介して制御対象機器を制御するための電文を構築する。電文構築部34は、特に、制御対象機器を制御する電文が制御装置20で得られる場合、得られた電文を含み、その電文を制御経路上で制御対象機器まで順番に転送させるための電文を、当該別の機器11を介して制御対象機器を制御するための電文として構築する。本実施の形態では、電文構築部34は、個別のモジュール31を使い、制御対象機器からクラウド環境へ遡る順で電文を生成し、生成した電文を組み合わせて入れ子構造の電文を構築する。なお、電文構築部34により構築される電文の構造は、入れ子構造でなくてもよく、制御対象機器を制御する電文を制御経路上で順番に転送することができるようなものであればよい。電文構築部34は、制御経路上に制御対象機器しかない場合は、単に、制御対象機器を制御する電文を構築する。
具体的には、ステップS103において、電文構築部34は、ステップS102で特定された機器構成に含まれる制御対象機器を選択する。ステップS102で特定された機器構成に1つの機器11しか含まれていない場合は、その機器11が制御対象機器である。ステップS102で特定された機器構成に複数の機器11が含まれている場合は、それら複数の機器11からなる制御経路上の末端の機器11が制御対象機器である。ステップS104において、電文構築部34は、ステップS103で選択した機器11の機種に対応するモジュール31に、ステップS101で受け付けられた制御要求に含まれる制御コマンドと制御パラメータとを入力して制御電文を生成する。ステップS105において、電文構築部34は、ステップS102で特定された機器構成に、ステップS103で選択した機器11の上位の機器11、すなわち、親機器が含まれているかどうかを確認する。親機器が含まれていなければ、ステップS108の処理が行われる。親機器が含まれていれば、ステップS106において、電文構築部34は、親機器を選択する。ステップS107において、電文構築部34は、ステップS106で選択した機器11の機種に対応するモジュール31に、中継用の制御コマンドと中継用の制御パラメータとを入力して中継電文を生成する。中継用の制御コマンドとは、直前のステップS106で選択した機器11が制御対象機器の親機器であれば、ステップS104で生成した制御電文を転送することを命令するコマンドのことであり、直前のステップS106で選択した機器11が制御対象機器以外の機器11の親機器であれば、直前のステップS107で生成した中継電文を転送することを命令するコマンドのことである。中継用の制御パラメータには、中継機器の機器IDと、ステップS104で生成した制御電文または直前のステップS107で生成した中継電文とが含まれる。再びステップS105において、電文構築部34は、ステップS102で特定された機器構成に、直前のステップS106で選択した機器11の親機器が含まれているかどうかを確認する。親機器が含まれていなければ、ステップS108の処理が行われる。親機器が含まれていれば、再びステップS106において、電文構築部34は、親機器を選択する。その後、ステップS107以降の処理が再び行われる。
このように、本実施の形態では、電文構築部34は、ステップS104において、複数のモジュール31の中から、制御対象機器の機種に対応するモジュール31を選択して利用することで、第1電文を生成する。第1電文は、制御対象機器を制御する電文である。なお、第1電文がモジュール31を利用して生成されることは必須ではない。第1電文は、制御装置20で得られる代わりに、制御装置20の外部から与えられてもよい。
nを2以上の整数として、制御経路上に制御対象機器を含めてn個の機器11があるとする。制御対象機器を1番目の機器11として制御経路上でi番目の機器11に転送される電文を第i電文とする。この場合、本実施の形態では、電文構築部34は、ステップS105からステップS107において、複数のモジュール31の中から、制御経路上でi+1番目の機器11の機種に対応するモジュール31を選択して利用することで、第i+1電文を生成する。第i+1電文は、第i電文を含み、第i電文をi番目の機器11に転送することをi+1番目の機器11に命令する電文である。電文構築部34は、iを1からn−1になるまで1ずつインクリメントして得られる第n電文を前述した入れ子構造の電文として構築する。
ステップS108において、電文送信部35は、電文構築部34により構築された電文を送信する。すなわち、電文送信部35は、電文をクラウド環境から直接接続される中継機器または制御対象機器へ送信する。
図2の例を用いて、制御装置20の動作の具体例を説明する。
ステップS101において、機器B2の機器IDと、機器B2の電源オンを命令するための制御コマンドおよび制御パラメータとを含む要求が要求受付部32により受け付けられたとする。
ステップS102において、構成解決部33は、機器B2の機器IDでデータベース24を検索することで、機器B2を制御経路上の末端の機器11である制御対象機器、機器B1を制御経路上の、制御対象機器とは別の機器11である中継機器として特定する。制御経路上にある機器11の数は2個である。すなわち、この例では、n=2である。機器B2を制御経路上で1番目の機器11とすると、機器B1は制御経路上で2番目の機器11である。構成解決部33は、機器B2の機種がテレビであり、機器B1の機種がゲートウェイ装置であることも認識する。
ステップS103において、電文構築部34は、機器B2を選択する。ステップS104において、電文構築部34は、複数のモジュール31の中から、機器B2の機種であるテレビに対応するモジュール31を選択して利用することで、機器B2に電源オンを命令する第1電文を生成する。第1電文は、例えば、図4に示すような信号データである。ステップS105において、機器B2の親機器として機器B1が存在するため、ステップS106において、電文構築部34は、機器B1を選択する。ステップS107において、電文構築部34は、複数のモジュール31の中から、機器B1の機種であるゲートウェイ装置に対応するモジュール31を選択して利用することで、第1電文を含み、第1電文を機器B2に転送することを機器B1に命令する第2電文を生成する。第2電文は、例えば、図4に示すようなHTTPメッセージである。「HTTP」は、Hypertext Transfer Protocolの略語である。ステップS105において、機器B1の親機器は存在しないため、ステップS108において、電文送信部35は、第2電文を機器B1に送信する。
機器B1は、第2電文から第1電文を取り出すとともに、第2電文の命令に従って第1電文を機器B2に転送する。機器B2は、第1電文の命令に従って電源オンとなる。
なお、制御装置20は、制御経路上のいずれかの機器11から応答が送信された場合には、その応答を適宜加工した上でアプリケーション50に出力する。
***実施の形態の効果の説明***
本実施の形態では、制御対象機器までの制御経路上に制御対象機器とは別の機器11がある場合、複数のモジュール31の中から、当該別の機器11の機種に対応するモジュール31を選択して利用することで、当該別の機器11を介して制御対象機器を制御するための電文が構築される。そのため、本実施の形態によれば、制御対象機器までの接続構成に柔軟に対応することができる。
***他の構成***
本実施の形態では、複数のモジュール31、要求受付部32、構成解決部33および電文構築部34の機能がソフトウェアにより実現されるが、変形例として、複数のモジュール31、要求受付部32、構成解決部33および電文構築部34の機能がハードウェアにより実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
図5を参照して、本実施の形態の変形例に係る制御装置20の構成を説明する。
制御装置20は、電子回路27および通信デバイス23といったハードウェアを備える。
電子回路27は、それぞれハードウェア部品である複数のモジュール31を含むとともに、要求受付部32、構成解決部33および電文構築部34の機能を実現する専用のハードウェアである。電子回路27は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。「IC」は、Integrated Circuitの略語である。「GA」は、Gate Arrayの略語である。「FPGA」は、Field−Programmable Gate Arrayの略語である。「ASIC」は、Application Specific Integrated Circuitの略語である。
制御装置20は、電子回路27を代替する複数の電子回路を備えていてもよい。これら複数の電子回路は、複数のモジュール31を含むとともに、全体として要求受付部32、構成解決部33および電文構築部34の機能を実現する。それぞれの電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
別の変形例として、複数のモジュール31、要求受付部32、構成解決部33および電文構築部34の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、複数のモジュール31がそれぞれハードウェア部品またはソフトウェア部品であり、要求受付部32、構成解決部33および電文構築部34の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
プロセッサ21および電子回路27は、いずれも処理回路である。すなわち、制御装置20の構成が図1および図5のいずれに示した構成であっても、複数のモジュール31、要求受付部32、構成解決部33および電文構築部34の動作は、処理回路により行われる。
実施の形態2.
本実施の形態について、主に実施の形態1との差異を、図6から図8を用いて説明する。
***構成の説明***
本実施の形態に係る制御装置20の構成については、図1に示した実施の形態1に係る制御装置20のものと同じであるため、説明を省略する。
なお、本実施の形態では、機器D1および機器D2といった機器11によってフィールド環境が構築され、制御装置20によってクラウド環境が構築される。
図6を参照して、データベース24のテーブルの例を説明する。
本実施の形態では、構成情報41は、「機器ID」、「親機器ID」、「機種」および「中継用コマンド」といったカラムで構成されたテーブルとしてデータベース24にあらかじめ格納されている。「機器ID」、「親機器ID」および「機種」については、図2に示した実施の形態1に係る構成情報41のものと同じであるため、説明を省略する。「中継用コマンド」は、「機器ID」の機器11の親機器が「機器ID」の機器11に送信される電文を生成する必要のある制御コマンドである。
図6の例では、機器D1は、コントローラであり、制御装置20に直接接続されている。機器D2は、スマートメータであり、機器D1を介して制御装置20に接続されている。機器D2に電源オンまたは電源オフを命令する電文は、制御装置20では生成されず、機器D1で生成されることになっている。
図6の例では、制御装置20は、コントローラに対応するモジュール31を備えているが、スマートメータに対応するモジュール31は備えていない。なお、制御装置20は、スマートメータに対応するモジュール31を備えていてもよいが、そのモジュール31は、電源オンを命令する電文を生成したり、電源オフを命令する電文を生成したりする機能を持っている必要はない。
***動作の説明***
図7を参照して、本実施の形態に係る制御装置20の動作を説明する。制御装置20の動作は、本実施の形態に係る制御方法に相当する。
ステップS201の処理については、図3に示したステップS101の処理と同じであるため、説明を省略する。
ステップS202において、構成解決部33は、データベース24にある構成情報41を取得する。図6の例のように、構成情報41では、特定の制御コマンドである中継用コマンドに対し、制御対象機器の親機器が制御対象機器への制御電文を生成する機能を持っていることが示されている場合がある。
ステップS203において、構成解決部33は、ステップS201で受け付けられた制御要求に含まれる制御コマンドが中継用コマンドに該当するかどうかを確認する。中継用コマンドに該当しない場合、ステップS204の処理が行われる。一方、ステップ中継用コマンドに該当する場合、ステップS205の処理が行われる。
ステップS204の処理については、図3に示したステップS103の処理と同じであるため、説明を省略する。
ステップS205において、電文構築部34は、ステップS202で特定された機器構成に含まれる制御対象機器の親機器を選択する。ステップS202で特定された機器構成に制御対象機器を除いて1つの機器11しか含まれていない場合は、その機器11が制御対象機器の親機器である。ステップS102で特定された機器構成に制御対象機器を除いても複数の機器11が含まれている場合は、それら複数の機器11のうち、制御経路上で制御対象機器の隣にある機器11が制御対象機器の親機器である。
ステップS206において、電文構築部34は、ステップS204またはステップS205で選択した機器11の機種に対応するモジュール31に、ステップS201で受け付けられた制御要求に含まれる制御コマンドと制御パラメータとを入力して制御電文を生成する。ステップS201で受け付けられた制御要求に含まれる制御コマンドが中継用コマンドに該当する場合は、制御対象機器を制御する電文を生成して制御対象機器に送信することを制御対象機器の親機器に命令する電文が生成される。ステップS207において、電文構築部34は、ステップS202で特定された機器構成に、ステップS204またはステップS205で選択した機器11の親機器が含まれているかどうかを確認する。親機器が含まれていなければ、ステップS210の処理が行われる。親機器が含まれていれば、ステップS208において、電文構築部34は、親機器を選択する。ステップS209において、電文構築部34は、ステップS208で選択した機器11の機種に対応するモジュール31に、中継用の制御コマンドと中継用の制御パラメータとを入力して中継電文を生成する。再びステップS207において、電文構築部34は、ステップS202で特定された機器構成に、直前のステップS208で選択した機器11の親機器が含まれているかどうかを確認する。親機器が含まれていなければ、ステップS210の処理が行われる。親機器が含まれていれば、再びステップS207において、電文構築部34は、親機器を選択する。その後、ステップS209以降の処理が再び行われる。
このように、本実施の形態では、電文構築部34は、特定の制御対象機器を間接的に制御することができる。すなわち、電文構築部34は、制御対象機器を制御する第1電文が制御対象機器の親機器で得られる場合、当該親機器で得られる第1電文を当該親機器から制御対象機器に送信させるための電文を構築する。
図6の例では、中継機器が1つしかないが、中継機器が2つ以上ある場合は、実施の形態1と同様の入れ子構造の電文が構築される。
mを3以上の整数として、制御経路上に制御対象機器を含めてm個の機器11があるとする。制御対象機器を1番目の機器11、制御対象機器の親機器を2番目の機器11として制御経路上でj番目の機器11に転送される電文を第j電文とする。この場合、本実施の形態では、電文構築部34は、ステップS207からステップS209において、複数のモジュール31の中から、制御経路上でj+1番目の機器11の機種に対応するモジュール31を選択して利用することで、第j+1電文を生成する。第j+1電文は、第j電文を含み、第j電文をj番目の機器11に転送することをj+1番目の機器11に命令する電文である。電文構築部34は、jを2からm−1になるまで1ずつインクリメントして得られる第m電文を入れ子構造の電文として構築する。第2電文は、第1電文を生成して制御対象機器に送信することを制御対象機器の親機器に命令する電文である。
ステップS210において、電文送信部35は、電文構築部34により構築された電文を送信する。
図6の例を用いて、制御装置20の動作の具体例を説明する。
ステップS201において、機器D2の機器IDと、機器D2の電源オンを命令するための制御コマンドおよび制御パラメータとを含む要求が要求受付部32により受け付けられたとする。
ステップS202およびステップS203において、構成解決部33は、機器D2の機器IDでデータベース24を検索することで、要求に含まれる制御コマンドが中継用コマンドに該当することを認識し、機器D2を制御対象機器、機器D1を制御対象機器の親機器として特定する。構成解決部33は、機器D1の機種がコントローラであることも認識する。
ステップS205において、電文構築部34は、機器D1を選択する。ステップS206において、電文構築部34は、複数のモジュール31の中から、機器D1の機種であるコントローラに対応するモジュール31を選択して利用することで、機器D2に電源オンを命令するための第1電文を生成して機器D2に送信することを機器D1に命令するための第2電文を生成する。第2電文は、例えば、図8に示すようなHTTPメッセージである。ステップS207において、機器D1の親機器は存在しないため、ステップS210において、電文送信部35は、第1電文を機器D1に送信する。
機器D1は、第2電文の命令に従って第1電文を生成して機器D2に送信する。機器D2は、第1電文の命令に従って電源オンとなる。
なお、データベース24のテーブルにおいて、中継用コマンドを指定する代わりに、全コマンドを指定する意味でフラグを設定してもよい。すなわち、構成情報41において、制御対象機器の親機器が制御対象機器への制御電文を生成する機能を持っているかどうかがフラグによって示されていてもよい。フラグがオンであれば、ステップS201で受け付けられた制御要求に含まれる制御コマンドに関わらず、ステップS205の処理が行われる。
あるいは、データベース24のテーブルにおいて、中継用コマンドの指定を省略するとともに、制御対象機器のエントリを省略してもよい。図6の例では、機器D2のエントリを省略してもよい。すなわち、構成情報41において、制御対象機器の親機器が制御対象機器への制御電文を生成する機能を持っている場合は、制御対象機器に関する情報が省略されていてもよい。
***実施の形態の効果の説明***
本実施の形態では、ある機器11を制御する電文の構造が不明であっても、その機器11を制御する電文を生成できる機器11に電文を生成させることで、制御対象機器までの接続構成により柔軟に対応することができる。
実施の形態3.
本実施の形態について、主に実施の形態2との差異を、図9から図11を用いて説明する。
***構成の説明***
図9を参照して、本実施の形態に係る制御装置20の構成を説明する。
制御装置20は、機能要素として、複数のモジュール31と、要求受付部32と、構成解決部33と、電文構築部34と、電文送信部35とのほかに、順序制御部36を備える。複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および順序制御部36の機能は、ソフトウェアにより実現される。具体的には、複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および順序制御部36の機能は、制御プログラムにより実現される。制御プログラムは、それぞれソフトウェア部品である複数のモジュール31を含むとともに、要求受付部32、構成解決部33、電文構築部34および順序制御部36により行われる処理をそれぞれ要求受付処理、構成解決処理、電文構築処理および順序制御処理としてコンピュータに実行させるプログラムである。電文送信部35の機能は、通信デバイス23により実現される。具体的には、電文送信部35の機能は、トランスミッタにより実現される。
本実施の形態では、機器D1、機器D2および機器E1といった機器11によってフィールド環境が構築され、制御装置20によってクラウド環境が構築される。
本実施の形態では、データベース24には、構成情報41のほかに、互いに異なる制御対象機器間での制御の依存関係を定義する関係情報42が格納されている。
図10を参照して、データベース24のテーブルの例を説明する。
本実施の形態では、構成情報41および関係情報42は、「機器ID」、「親機器ID」、「機種」、「中継用コマンド」および「前提コマンド」といったカラムで構成されたテーブルとしてデータベース24にあらかじめ格納されている。「機器ID」、「親機器ID」、「機種」および「中継用コマンド」については、図6に示した実施の形態2に係る構成情報41のものと同じであるため、説明を省略する。「前提コマンド」のカラムは、関係情報42に相当する。「前提コマンド」は、「機器ID」の機器11の制御コマンドを実行する前に実行されている必要のある制御コマンドである。
図10の例では、機器E1は、テレビであり、制御装置20に直接接続されている。機器E1に対する制御の前に機器D2が電源オンとなっていなければならない。機器D1および機器D2については、図6の例と同じであるため、説明を省略する。
図10の例では、制御装置20は、テレビに対応するモジュール31およびコントローラに対応するモジュール31といった少なくとも2つのモジュール31を備えている。
***動作の説明***
図11を参照して、本実施の形態に係る制御装置20の動作を説明する。制御装置20の動作は、本実施の形態に係る制御方法に相当する。
ステップS301の処理については、図7に示したステップS201の処理と同じであるため、説明を省略する。
ステップS302において、順序制御部36は、ステップS301で受け付けられた制御要求または後述するステップS304で生成された制御要求をスタックに入れる。
ステップS303において、構成解決部33は、データベース24にある構成情報41を取得する。順序制御部36は、データベース24にある関係情報42を取得する。図10の例のように、関係情報42では、制御対象機器の制御の前提となる制御コマンドである前提コマンドが示されている場合がある。
ステップS304において、順序制御部36は、ステップS302でスタックに入れた制御要求に含まれる機器IDに対応する前提コマンドがあるかどうかを確認する。前提コマンドがある場合、順序制御部36は、前提コマンドの制御対象機器の機器IDと、前提コマンドと、制御パラメータとが含まれている制御要求を生成する。そして、その制御要求について、ステップS302以降の処理が行われる。前提コマンドがない場合は、ステップS305の処理が行われる。
ステップS305において、順序制御部36は、制御要求をスタックから取り出す。
ステップS305で取り出された制御要求について行われるステップS306からステップS313の処理については、図7に示したステップS203からステップS210の処理と同じであるため、説明を省略する。
ステップS314において、順序制御部36は、スタックに制御要求があるかどうかを確認する。制御要求がなくなるまで、ステップS305以降の処理が再び行われる。
このように、本実施の形態では、順序制御部36は、関係情報42に基づいて、電文送信部35により電文が送信される順序を制御する。電文構築部34は、制御対象機器ごとに、電文送信部35により送信される電文を生成する。
図10の例を用いて、制御装置20の動作の具体例を説明する。
ステップS301において、機器E1の機器IDと、機器E1の電源オンを命令するための制御コマンドおよび制御パラメータとを含む要求R1が要求受付部32により受け付けられたとする。
ステップS302において、順序制御部36は、要求R1をスタックに入れる。
ステップS303およびステップS304において、順序制御部36は、機器E1の機器IDでデータベース24を検索することで、要求R1に含まれる制御コマンドに対応する前提コマンドがあることを認識する。前提コマンドとして、機器D2を電源オンとすることが指定されているため、順序制御部36は、機器D2の機器IDと、機器D2の電源オンを命令するための制御コマンドおよび制御パラメータとを含む要求R2を生成する。
ステップS302において、順序制御部36は、要求R2をスタックに入れる。
ステップS303およびステップS304において、順序制御部36は、機器D2の機器IDでデータベース24を検索することで、要求R1に含まれる制御コマンドに対応する前提コマンドがないことを認識する。
ステップS305において、順序制御部36は、要求R2をスタックから取り出す。
ステップS306において、構成解決部33は、要求R2に含まれる機器D2の機器IDでデータベース24を検索することで、要求R2に含まれる制御コマンドが中継用コマンドに該当することを認識し、機器D2を制御対象機器、機器D1を制御対象機器の親機器として特定する。構成解決部33は、機器D1の機種がコントローラであることも認識する。
ステップS308において、電文構築部34は、機器D1を選択する。ステップS309において、電文構築部34は、複数のモジュール31の中から、機器D1の機種であるコントローラに対応するモジュール31を選択して利用することで、機器D2に電源オンを命令する第1電文を生成して機器D2に送信することを機器D1に命令する第2電文を生成する。第2電文は、例えば、図8に示したようなHTTPメッセージである。ステップS310において、機器D1の親機器は存在しないため、ステップS313において、電文送信部35は、第2電文を機器D1に送信する。
機器D1は、第2電文の命令に従って第1電文を生成して機器D2に送信する。機器D2は、第1電文の命令に従って電源オンとなる。
ステップS314において、スタックに要求R1が残っているため、ステップS305の処理が再び行われる。
ステップS305において、順序制御部36は、要求R1をスタックから取り出す。
ステップS306において、構成解決部33は、要求R1に含まれる機器E1の機器IDでデータベース24を検索することで、機器E1を制御対象機器として特定する。構成解決部33は、機器E1の機種がテレビであることも認識する。
ステップS307において、電文構築部34は、機器E1を選択する。ステップS309において、電文構築部34は、複数のモジュール31の中から、機器E1の機種であるテレビに対応するモジュール31を選択して利用することで、機器E1に電源オンを命令する第1電文を生成する。第1電文は、例えば、図4に示したような信号データである。ステップS310において、機器E1の親機器は存在しないため、ステップS313において、電文送信部35は、第1電文を機器E1に送信する。
機器E1は、第1電文の命令に従って電源オンとなる。
なお、図11に示したフローは、電文を一通り生成してから、順序を考慮して送信するフローに変更されてもよい。
***実施の形態の効果の説明***
本実施の形態では、機器11の制御コマンドと、その前提となる制御コマンドとの関係、すなわち、制御の依存関係が管理される。依存する制御コマンドを分解し、電文を構築する処理の呼び出し順序および並列実行が制御される。依存する制御コマンドがある場合は、その依存関係に従ってシーケンシャルな呼び出しを行い、依存関係がない制御コマンドは並列実行するといったことが可能となる。
***他の構成***
本実施の形態では、実施の形態1と同じように、複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および順序制御部36の機能がソフトウェアにより実現されるが、実施の形態1の変形例と同じように、複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および順序制御部36の機能がハードウェアにより実現されてもよい。あるいは、複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および順序制御部36の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。
実施の形態4.
本実施の形態について、主に実施の形態1との差異を、図12を用いて説明する。
図12に示すように、本実施の形態では、制御装置20は、機能要素として、複数のモジュール31と、要求受付部32と、構成解決部33と、電文構築部34と、電文送信部35とのほかに、情報収集部37を備える。複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および情報収集部37の機能は、ソフトウェアにより実現される。具体的には、複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および情報収集部37の機能は、制御プログラムにより実現される。制御プログラムは、それぞれソフトウェア部品である複数のモジュール31を含むとともに、要求受付部32、構成解決部33、電文構築部34および情報収集部37により行われる処理をそれぞれ要求受付処理、構成解決処理、電文構築処理および情報収集処理としてコンピュータに実行させるプログラムである。電文送信部35の機能は、通信デバイス23により実現される。具体的には、電文送信部35の機能は、トランスミッタにより実現される。
情報収集部37は、構成情報41を収集する。
本実施の形態では、電文構築部34は、電文送信部35により送信される電文を構築した後に、情報収集部37により収集された構成情報41によって制御経路の機器構成が変更されたことが示されている場合、変更後の機器構成に合わせて電文を構築し直す。
本実施の形態では、フィールド環境の機器構成、すなわち、クラウド環境から末端機器までの制御経路に関する情報を収集し、データベース24を最新の状態に保つことでフィールド環境内の構成変更に応じて電文を構築することができる。すなわち、フィールド環境内の接続構成の変化に柔軟に対応できる。
***他の構成***
本実施の形態では、実施の形態1と同じように、複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および情報収集部37の機能がソフトウェアにより実現されるが、実施の形態1の変形例と同じように、複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および情報収集部37の機能がハードウェアにより実現されてもよい。あるいは、複数のモジュール31、要求受付部32、構成解決部33、電文構築部34および情報収集部37の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。