IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アズビル株式会社の特許一覧

<>
  • 特開-コントローラ 図1
  • 特開-コントローラ 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022174857
(43)【公開日】2022-11-25
(54)【発明の名称】コントローラ
(51)【国際特許分類】
   G06F 9/48 20060101AFI20221117BHJP
   G06F 9/44 20180101ALI20221117BHJP
   G06F 9/455 20060101ALI20221117BHJP
【FI】
G06F9/48 370
G06F9/44
G06F9/455 150
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021080863
(22)【出願日】2021-05-12
(71)【出願人】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】新海 庸平
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AC01
5B376EA17
(57)【要約】
【課題】 標準機能プログラムと制御プログラムとの相互干渉を抑制する。
【解決手段】コントローラ2は、第1のプログラム(標準機能プログラム213)が実行される実行環境21と、標準機能プログラム213に記述されている機能以外の機能を記述した第2のプログラム(制御プログラム233)が実行される仮想環境23と、を備え、仮想環境23で利用可能なリソースは、自機が備えるリソースのうちの一部に制限されている。
【選択図】図2
【特許請求の範囲】
【請求項1】
第1のプログラムが実行される実行環境と、
前記第1のプログラムに記述されている機能以外の機能を記述した第2のプログラムが実行される仮想環境と、を備え、
前記仮想環境で利用可能なリソースは、自機が備えるリソースのうちの一部に制限されていることを特徴とするコントローラ。
【請求項2】
前記実行環境は、
第1のフレームワークと、
前記第1のフレームワーク上で動作し、前記第1のプログラムと前記仮想環境で実行される第2のプログラムとを連携して動作させる第2のフレームワークと、を有することを特徴とする請求項1記載のコントローラ。
【請求項3】
前記第2のフレームワークは、
前記仮想環境で実行される第2のプログラムに異常が発生した際、当該異常が発生した第2のプログラムを把握可能であり、当該異常の発生を把握した第2のプログラムを前記連携の対象から除外することを特徴とする請求項2に記載のコントローラ。
【請求項4】
前記第2のフレームワークは、前記第1のフレームワークと連携して動作し、
前記実行環境は、当該実行環境において使用されるデータを記録した、前記第1のフレームワークによりアクセス可能なデータベースを有し、
前記第2のプログラムは、前記第2のフレームワーク及び前記第1のフレームワークを経由することにより、前記データベースにアクセス可能であることを特徴とする請求項2又は請求項3に記載のコントローラ。
【請求項5】
前記第1のプログラムは、監視システムにより標準的に提供される標準機能を記述した標準機能プログラムであり、
前記第2のプログラムは、前記標準機能プログラムに記述されている標準機能以外の特定の機能を記述した制御プログラムであることを特徴とする請求項1から請求項4のうちいずれか1項に記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、インストールされたプログラムを実行するコントローラに関する。
【背景技術】
【0002】
一般に、コントローラには、種々の機能を実現するために作成されたプログラムがインストールされる。コントローラは、インストールされたプログラムを実行することにより、当該プログラムの記述内容に沿った種々の機能が実現される。
【0003】
コントローラにインストールされるプログラムとしては、例えば所定の機能を記述したプログラム(以下、第1のプログラムという)と、第1のプログラムに記述されている機能以外の機能を記述したプログラム(以下、第2のプログラムという)とがある。第2のプログラムは、例えば第1のプログラムを実行するだけでは実現困難な機能を記述したプログラムであり、第1のプログラムとは別に作成され、第1のプログラムがインストールされたコントローラに対して追加的にインストールされる。
【0004】
ところが、従来のコントローラでは、上述の第1のプログラムと、追加的にインストールされた第2のプログラムとが、当該コントローラが備える同一のメモリに展開されて実行される設計仕様となっている。そのため、例えば第1のプログラムを機能拡張すると第2のプログラムに影響が発生し、第2のプログラムが動作しなくなるおそれがあった。一方で、第2のプログラムで障害が発生すると、コントローラが異常な状態になり、第1のプログラムに影響を及ぼす懸念もあった。
【0005】
そこで、コントローラでは、第1のプログラムと第2のプログラムとがインストールされた場合、これらのプログラムが互いに影響し合わない設計仕様とすることが要求されている。具体的には、(a)第2のプログラムが異常な状態になっても、第1のプログラムの実行は継続できること、(b)第2のプログラムの負荷が高くなっても、第1のプログラムに影響を及ぼさないこと、(c)第2のプログラムを機能拡張しても、第1のプログラムに影響しないこと、及び(d)コントローラがバージョンアップしても、第2のプログラムは影響を受けないこと(第1のプログラムを機能拡張しても、第2のプログラムは正常に動作できること)等の要求を満たす必要がある。
【0006】
このような要求を満たす可能性のある技術として、仮想化技術がある。仮想化技術は、1台のコンピュータが複数のコンピュータのように振る舞える技術である。その一例として、例えば特許文献1には、仮想化技術を空調制御システムに応用した例が開示されている。この特許文献1では、室内機を制御する室内機制御部、及び室外機を制御する室外機制御部が、仮想化された制御部として制御装置に搭載される。そして、室内機制御部及び室外機制御部は、共通バスを介してセンサ類等から情報を取得し、それぞれの制御プログラムを実行することにより、室内機及び室外機を構成する各種機器の制御指令を生成する。このように、室内機制御部及び室外機制御部を室内機及び室外機とは独立して存在させることで、室内機及び室外機に高度なプログラムを搭載する必要がなくなり、室外機及び室内機の交換も容易に行うことができる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2015-141014
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1では、室内機制御部及び室外機制御部により実行される制御プログラムが上述の第1のプログラム又は第2のプログラムのいずれか一方に相当するとした場合、もう一方のプログラムが実行されるのかは必ずしも明確でない。また、仮にもう一方のプログラムに相当するプログラムが実行されるとしても、その主体は上述の室内機制御部及び室外機制御部であることが想定される。その場合、これらのプログラムは、室内機制御部及び室外機制御部が参照可能な同一のメモリに展開されることが想定される。
【0009】
したがって、上記特許文献1の技術をコントローラに転用しても、上述した(a)~(d)の要求のうち、特に第1のプログラム及び第2のプログラムの実行時における要求、すなわち(a)第2のプログラムが異常な状態になっても、第1のプログラムの実行は継続できること、及び(b)第2のプログラムの負荷が高くなっても、第1のプログラムに影響を及ぼさないこと、という要求を満たすのは依然として困難であることが想定される。
【0010】
この発明は、上記のような課題を解決するためになされたもので、第1のプログラムと第2のプログラムとの相互干渉を抑制可能なコントローラを提供することを目的とする。
【課題を解決するための手段】
【0011】
この発明に係るコントローラは、第1のプログラムが実行される実行環境と、第1のプログラムに記述されている機能以外の機能を記述した第2のプログラムが実行される仮想環境と、を備え、仮想環境で利用可能なリソースは、自機が備えるリソースのうちの一部に制限されていることを特徴とする。
【発明の効果】
【0012】
この発明によれば、上記のように構成したので、第1のプログラムと第2のプログラムとの相互干渉を抑制可能となる。
【図面の簡単な説明】
【0013】
図1】実施の形態1に係るコントローラを含む監視システムの構成例を示す図である。
図2】実施の形態1に係るコントローラの構成例を示す図である。
【発明を実施するための形態】
【0014】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係るコントローラを含む監視システムの構成例を示す図である。以下では、実施の形態1に係るコントローラが監視システムに適用された例を説明する。
【0015】
監視システムは、図1に示すように、1つ以上の監視対象機器1(以下、監視ポイント1という。)、1つ以上のコントローラ2、及び監視装置3を備えている。監視ポイント1は、通信線を介してコントローラ2に接続されている。また、コントローラ2は、通信線を介して監視装置3に接続されている。図1では、1つの監視ポイント1及び1つのコントローラ2を示している。
【0016】
監視ポイント1は、監視システムにおいて監視の対象となる機器である。監視ポイント1は、例えば温度センサ及び湿度センサなどの各種センサ、空調機器、並びに照明機器等で構成される。
【0017】
コントローラ2は、対象とする監視ポイント1の監視及び制御を行う。コントローラ2には、上述の第1のプログラムと第2のプログラムとがインストールされており、コントローラ2はこれらのプログラムを実行することで、監視ポイント1の監視及び制御を行う。例えば、監視ポイント1が温度センサである場合、コントローラ2は、温度センサからのデータを受信し、当該データが示す温度を取得する。また、監視ポイント1が湿度センサである場合、コントローラ2は、湿度センサからのデータを受信し、当該データが示す湿度を取得する。そして、コントローラ2は、BACnet(Building Automation and Control Network)等の通信により、例えば監視装置3からの取得要求に応じて、監視ポイント1から取得した温度又は湿度等を示すデータを当該監視装置3に送信する。コントローラ2の具体的な構成例については後述する。
【0018】
なお、ここでは説明を分かりやすくするため、上述の第1のプログラムが「標準機能プログラム」であり、第2のプログラムが「制御プログラム」である場合を例示して説明する。標準機能プログラムは、監視システムが導入される建物の多くで使用される機能(以下、標準機能という)を実現するためのプログラムである。標準機能の例としては、例えばスケジュール制御機能、最適起動停止制御機能、及び電力デマンド制御機能がある。
【0019】
スケジュール制御機能は、あらかじめ設定したスケジュールに従って、設定値を出力したり発停動作を監視ポイントへ指示する機能である。また、最適起動停止制御機能は、空調関連の監視ポイントを最適な時間だけ前倒しして起動及び停止する機能である。例えば、利用者が部屋に到着する前にあらかじめ空調機を起動させることで、利用者が部屋に到着したときに最適な室内環境を提供する。また、例えば利用者が部屋から退出する少し前に空調機を停止させることで、不要なエネルギーの消費を抑制する。また、電力デマンド制御機能は、消費電力を予測し、目標値以内に消費電力を抑えるように空調機や照明などの監視ポイントを制御する機能である。これらの機能を実現するプログラムは、監視システムにおいて使用される頻度が比較的高いため、例えば標準機能プログラムとして用意され、コントローラ2にインストールされる。
【0020】
一方、制御プログラムは、例えば監視システムが導入される建物のうち特定の建物で要求される機能であって、コントローラ2が標準機能プログラムを実行するだけでは実現困難な機能を記述したプログラムである。このような制御プログラムは、標準機能プログラムとは別に作成され、コントローラ2に追加的にインストールされる。
【0021】
監視装置3は、コントローラ2を介して、対象とする監視ポイント1の監視及び制御を行う。例えば、監視装置3は、コントローラ2からデータを受信すると、当該受信したデータが示す値(温度又は湿度等)をモニタなどの表示部(不図示)に表示して管理者に提示する。また、監視装置3は、コントローラ2から受信したデータが示す値に異常があれば、警報を発して管理者に通知する。
【0022】
なお、監視ポイント1及び監視装置3としては、既存の監視ポイント及び監視装置を用いることができる。
【0023】
次に、実施の形態1に係るコントローラ2の構成例について、図2を参照しながら説明する。なお、以下では説明を具体的にするため、実施の形態1に係るコントローラ2には、オペレーティングシステム(OS)として、Linux(登録商標)が搭載されているものとする。なお、図2においてオペレーティングシステムの記載は省略している。また、実施の形態1では、後述する制御プログラム253のプログラム言語はPythonであるものとし、後述する仮想環境23を構築するための仮想化技術としてDockerが使用されているものとする。
【0024】
図2に示すように、実施の形態1に係るコントローラ2は、オペレーティングシステム上に2つの環境(実行環境21及び仮想環境23)が構築されている。
【0025】
(実行環境21)
実行環境21は、コントローラ2のメインフレームワーク211と、制御プログラムのフレームワーク212と、標準機能プログラム213(標準機能プログラム213A及び213B)と、データベース214とを含んで構成されている。なお、データベース214には、実行環境21(例えば標準機能プログラム213)により使用される各種データが保存されている。
【0026】
コントローラ2のメインフレームワーク211(以下、単にメインフレームワーク211という)は、オペレーティングシステム上で動作し、制御プログラムのフレームワーク212及び標準機能プログラム213を動作(実行)させるための土台として機能するソフトウェアである。メインフレームワーク211は、データベース214にアクセス可能である。
【0027】
標準機能プログラム213(標準機能プログラム213A及び213B)は、標準機能を記述したプログラムである。例えば、標準機能プログラム213Aは、標準機能のひとつであるスケジュール制御機能を記述したプログラムであり、標準機能プログラム213Bは、標準機能のひとつである最適起動停止制御機能を記述したプログラムである。標準機能プログラム213は、例えばあらかじめ設定された実行スケジュールにしたがって実行(起動)される。なお、標準機能プログラム213は請求項1の「第1のプログラム」を構成する。
【0028】
制御プログラムのフレームワーク212(以下、サブフレームワーク212という)は、メインフレームワーク211上で動作し、標準機能プログラム213と、後述の仮想環境23で実行される制御プログラム233とを連携して動作させるソフトウェアである。サブフレームワーク212には、制御プログラム233を一意に識別するための識別子(例えばプログラムID)が登録されており、サブフレームワーク212は、この識別子を用いて制御プログラム233を識別しながら、標準機能プログラム213と制御プログラム233とを連携して動作させる。
【0029】
例えば、標準機能プログラム213によりある部屋の温度及び湿度を示すデータが取得され、制御プログラム233がこの取得されたデータを使用したい場合、サブフレームワーク212が双方のプログラムの間でそのデータの受け渡しを行う。また、標準機能プログラム213の動作結果を受けて制御プログラム233を実行させたいような場合にも、サブフレームワーク212が両者を連携して動作させる。
【0030】
また、サブフレームワーク212は、メインフレームワーク211とも連携して動作可能である。したがって、制御プログラム233は、サブフレームワーク212、及びメインフレームワーク211を経由して、データベース214にもアクセス可能である。例えばデータベース214に保存されているデータを制御プログラム233が使用したい場合、制御プログラム233は、サブフレームワーク212及びメインフレームワーク211を経由してデータベース214にアクセスする。この場合にも、サブフレームワーク212は上述した識別子を用いて制御プログラム233を識別する。
【0031】
また、サブフレームワーク212は、制御プログラム233に何らかの異常が発生した場合、どの制御プログラムで異常が発生したかを把握可能である。例えば、制御プログラム233は、何らかの異常が発生した場合、当該異常が発生した旨を通知するメッセージをサブフレームワーク212に送信する。サブフレームワーク212は、このメッセージを受信することにより、制御プログラム233に何らかの異常が発生したことを把握する。この場合、サブフレームワーク212は、異常のあった制御プログラム233を標準機能プログラム213との連携動作の対象から除外して処理を継続する。これにより、制御プログラム233に何らかの異常が発生した場合でも、標準機能プログラム213は処理を継続することができる。なお、サブフレームワーク212は、異常の発生した制御プログラム233に関する情報を監視装置3に送信し、監視システムの管理者に異常発生の旨を報知する。
【0032】
(仮想環境23)
仮想環境23は、仮想化技術の1つであるDockerを用いてコントローラ2に構築された、制御プログラム233を実行するための仮想的な実行環境である。Dockerでは、コンテナ型仮想化と呼ばれる仕組みで仮想化を実現している。図2の例では、仮想環境23がコンテナに相当し、この仮想環境23で制御プログラム233が実行される。
なお、図2の例では、制御プログラム233が1つである場合を示しているが、制御プログラム233は複数あってもよい。
【0033】
制御プログラム233は、既に述べたように、例えば監視システムが導入される建物のうち特定の建物で要求される機能であって、標準機能プログラムを実行するだけでは実現困難な機能を記述したプログラムである。制御プログラム233は、あらかじめ設定されたスケジュールに従って実行される場合と、標準機能プログラム213の動作結果を受けて実行される場合とがある。制御プログラム233がどのようなタイミングで実行されるかは、上述のサブフレームワーク212にあらかじめ設定されており、制御プログラム233は、このタイミングに従ってサブフレームワーク212に呼び出されることで実行される。なお、制御プログラム233は請求項1の「第1のプログラムに記述されている機能以外の機能を記述した第2のプログラム」を構成する。
【0034】
なお、Dockerでは、仮想環境ごとに利用可能なリソース(例えばCPU及びメモリ)を制限することができる。そして、実施の形態1でも、仮想環境23で利用可能なリソース(例えばCPU及びメモリ)が、コントローラ2が備えるリソースのうちの一部に制限されている。例えば、仮想環境23で利用可能なCPU(仮想CPU)の使用率、及び、仮想環境23で利用可能なメモリ(仮想メモリ)の使用量が、所定の使用率及び所定の使用量にそれぞれ制限されている。
【0035】
ここで、仮想環境23で利用可能なリソースに制限がない場合、多数の制御プログラム233が実行されたり、規模の大きな制御プログラム233が実行されたりすることで、制御プログラム233の負荷が高まり、仮想環境23で多くのリソースが使用されることがある。その結果、実行環境21で利用可能なリソースが減少し、実行環境21における標準機能プログラム213の実行に影響を及ぼすおそれがある。そこで、コントローラ2では上述のように、仮想環境23で利用可能なリソース(例えばCPU及びメモリ)を、コントローラ2が備えるリソースのうちの一部に制限する。これにより、コントローラ2では、実行環境21で必要なリソースが確保され、仮に制御プログラム233が異常な状態になったり、制御プログラム233の負荷が高くなっても、標準機能プログラム213に影響を及ぼすことなく、標準機能プログラム213の処理を継続することができる。
【0036】
また、実施の形態1に係るコントローラ2では、当該コントローラ2をバージョンアップする際にも以下のような効果を奏する。
【0037】
例えば、エンジニアは、コントローラ2をバージョンアップする際、実行環境21に含まれるメインフレームワーク211及びデータベース214を更新する。このとき、コントローラ2では、実行環境21と仮想環境23とが別の環境として構築されているため、エンジニアは、仮想環境23で実行される制御プログラム233を更新する必要はなく、制御プログラム233の動作確認をする必要もない。
【0038】
この点、従来のコントローラでは、実行環境と仮想環境とを別の環境として構築するという構成ではなかったため、コントローラ(メインフレームワーク及びデータベース)をバージョンアップすると、それまでに作成した制御プログラムがバージョンアップ後も正常に動作するかをエンジニアが確認する必要があった。しかし、実施の形態1に係るコントローラ2では、実行環境21と仮想環境23とが別の環境として構築されているため、コントローラ2をバージョンアップしても、エンジニアは上記のような制御プログラム233の動作確認は不要となる。これにより、実施の形態1に係るコントローラ2では、制御プログラム233の保守にかかる工数を従来よりも低減でき、過去に作成した制御プログラム233の流用も容易となる。
【0039】
また、制御プログラム233を更新(機能拡張)するときは、エンジニアは制御プログラム233を更新するが、必要に応じて、制御プログラム233の更新とともに、仮想環境23にライブラリを追加する。
【0040】
例えば仮想環境23には、制御プログラム233の実行に必要な各種ライブラリが登録されているが、制御プログラム233に新たに追加した機能を実現するためのライブラリが仮想環境23に登録されていない場合には、エンジニアは仮想環境23に当該必要なライブラリを新たに追加することで、制御プログラム233の更新(機能拡張)を行う。この場合も、コントローラ2では、仮想環境23と実行環境21とが別の環境として構築されているため、エンジニアは、標準機能プログラム213を停止させたりすることなく、制御プログラム233の更新を行うことができる。
【0041】
特に、標準機能プログラム213を作成するエンジニアと、制御プログラム233を作成するエンジニアとは、別のエンジニアである場合も多く、そのため、制御プログラム233の更新が標準機能プログラム213の動作に与える影響を予測することが困難な場合も多い。一方で、監視システムでは、仮に制御プログラム233の更新に不備があったとしても、標準機能プログラム213の動作は止めてほしくないという要望もある。
【0042】
この点、実施の形態1に係るコントローラ2では、実行環境21と仮想環境23とが別の環境として構築されているため、エンジニアは、標準機能プログラム213の動作を継続させた状態で、標準機能プログラム213の動作に影響を与えることなく、制御プログラム233の更新を行うことができる。
【0043】
以上のように、実施の形態1によれば、コントローラ2は、第1のプログラム(標準機能プログラム213)が実行される実行環境21と、第1のプログラムに記述されている機能以外の機能を記述した第2のプログラム(制御プログラム233)が実行される仮想環境23と、を備え、仮想環境23で利用可能なリソースは、自機が備えるリソースのうちの一部に制限されている。これにより、実行環境21で必要なリソースが確保され、仮に制御プログラム233が異常な状態になったり、制御プログラム233の負荷が高くなっても、標準機能プログラム213に影響を及ぼすことなく、標準機能プログラム213の処理を継続することができる。すなわち、標準機能プログラム213と制御プログラム233との相互干渉を抑制可能となる。
【0044】
また、実行環境21は、第1のフレームワーク(メインフレームワーク211)と、第1のフレームワーク上で動作し、標準機能プログラム213と仮想環境23で実行される制御プログラム233とを連携して動作させる第2のフレームワーク(サブフレームワーク212)と、を有する。これにより、コントローラ2では、標準機能プログラム213と制御プログラム233とが連携して動作可能となる。
【0045】
また、サブフレームワーク212は、仮想環境23で実行される制御プログラム233に異常が発生した際、当該異常が発生した制御プログラム233を把握可能であり、当該異常の発生を把握した制御プログラム233を連携の対象から除外する。これにより、制御プログラム233に何らかの異常が発生した場合でも、標準機能プログラム213は処理を継続することができる。
【0046】
また、サブフレームワーク212は、メインフレームワーク211と連携して動作し、実行環境21は、実行環境21において使用されるデータを記録した、メインフレームワーク211によりアクセス可能なデータベース214を有し、制御プログラム233は、サブフレームワーク212及びメインフレームワーク211を経由することにより、データベース214にアクセス可能である。これにより、コントローラ2では、制御プログラム233が実行環境21に設けられたデータベース214にアクセスして処理を行うことができる。
【0047】
なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、若しくは実施の形態において任意の構成要素の省略が可能である。例えば、上記の説明では、コントローラ2のオペレーティングシステム(OS)としてLinux(登録商標)が搭載され、制御プログラム233のプログラム言語がPythonであり、仮想環境23を構築するための仮想化技術としてDocker(コンテナ型仮想化)が使用されている例を説明したが、これらはあくまで一例であって、ここで例示した構成に限られない。また、上記の説明では、第1のプログラムが標準機能プログラムであり、第2のプログラムが制御プログラムである場合を例示したが、第1のプログラム及び第2のプログラムは上記で例示したプログラムに限られず、第2のプログラムが、第1のプログラムに記述されている機能以外の機能を記述したプログラムであればよい。
【符号の説明】
【0048】
1 監視対象機器(監視ポイント)
2 コントローラ
3 監視装置
21 実行環境
23 仮想環境
211 メインフレームワーク(第1のフレームワーク)
212 制御プログラムのフレームワーク(サブフレームワーク、第2のフレームワーク)
213 標準機能プログラム(第1のプログラム)
214 データベース
233 制御プログラム(第2のプログラム)
図1
図2