以下、本発明の実施形態を、図面を参照して説明する。
(第1の実施形態)
まず、本発明の第1の実施形態に係る制御システム1000について説明する。図1に示すように、制御システム1000は、制御装置100と、被制御機器210と、被制御機器220と、被制御機器230と、端末装置300と、サーバ400と、宅内電気通信網500と、宅外電気通信網600と、を備える。
制御装置100は、ユーザによる指示、端末装置300からの指示、自動プログラムなどに従って、宅内電気通信網500を介して、被制御機器210、被制御機器220、被制御機器230などを制御又は監視(モニタリング)する。従って、制御装置100は、宅内電気通信網500に接続するためのインターフェースを備える。
また、制御装置100は、ユーザによる指示、端末装置300からの指示、自動プログラムなどに従って、宅外電気通信網600を介して、サーバ400と通信する。従って、制御装置100は、宅外電気通信網600に接続するためのインターフェースを備える。
被制御機器210、220、230のそれぞれは、制御又は監視の対象となる機器であり、例えば、ユーザの宅内に配置される。被制御機器210、220、230のそれぞれは、宅内電気通信網500を介して、制御装置100と通信する。従って、被制御機器210、220、230のそれぞれは、宅内電気通信網500に接続するためのインターフェースを備える。被制御機器210、220、230のそれぞれは、基本的に、制御装置100から受信した要求フレームの内容に従った処理を実行し、要求フレームに対する応答フレームを制御装置100に送信する。被制御機器210、220、230のそれぞれは、例えば、エアコン、給湯器、電気ストーブ、炊飯器、照明装置、電気カーペットである。
端末装置300は、制御装置100のインターフェースとしての機能を有する。従って、端末装置300は、宅内電気通信網500に接続する機能を有し、宅内電気通信網500を介して、制御装置100と通信する。端末装置300は、例えば、ユーザからの指示に従って、遠隔制御のための制御信号を、制御装置100に送信することにより、被制御機器210、220、230を遠隔制御する。また、端末装置300は、制御装置100を介して、被制御機器210、220、230など動作状態を監視する。端末装置300は、例えば、スマートフォン、携帯電話、タブレット端末である。
サーバ400は、制御装置100が使用する情報を制御装置100に供給したり、制御装置100から供給された情報を記憶したりする。サーバ400は、宅外電気通信網600を介して、制御装置100と通信する。従って、サーバ400は、宅外電気通信網600に接続するためのインターフェースを備える。
また、サーバ400は、制御装置100から供給された情報や制御装置100に供給する情報を記憶する記憶装置を備える。この記憶装置は、例えば、上限値確認処理や下限値確認処理により取得された値域(上限値及び下限値)を、取得時の条件などと対応付けて記憶する。また、この記憶装置は、例えば、最短周期計測処理により取得された最短周期を、取得時の条件とともに対応付けて記憶する。
宅内電気通信網500は、宅内に構築された無線LAN(Local Area Network)などの電気通信網である。宅内電気通信網500は、制御装置100と、被制御機器210と、被制御機器220と、被制御機器230と、端末装置300と、を相互に接続する。
宅外電気通信網600は、宅外に構築されたインターネットなどの電気通信網である。宅外電気通信網600は、制御装置100とサーバ400とを相互に接続する。なお、理解を容易にするため、図1では、ルータ、ゲートウェイなどの図示を省略している。
次に、図2を参照して、制御装置100の物理的な構成について説明する。図2に示すように、制御装置100は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、フラッシュメモリ14、RTC(Real Time Clock)15、タッチスクリーン16、宅内電気通信網インターフェース17、宅外電気通信網インターフェース18を備える。制御装置100が備える各構成要素は、バスを介して相互に接続される。
CPU11は、制御装置100の全体の動作を制御する。なお、CPU11は、ROM12に格納されているプログラムに従って動作し、RAM13をワークエリアとして使用する。
ROM12には、制御装置100の全体の動作を制御するためのプログラムやデータが記憶される。
RAM13は、CPU11のワークエリアとして機能する。つまり、CPU11は、RAM13にプログラムやデータを一時的に書き込み、これらのプログラムやデータを適宜参照する。
フラッシュメモリ14は、各種の情報を記憶する不揮発性メモリである。なお、制御装置100は、フラッシュメモリ14に代えて、ハードディスクなどを備えていてもよい。また、制御装置100は、宅内電気通信網500に接続された端末装置300、宅外電気通信網600に接続されたサーバ400、宅内電気通信網500や宅外電気通信網600に接続された図示しない記憶装置に、各種の情報を記憶してもよい。
RTC15は、計時用のデバイスである。RTC15は、例えば、電池を内蔵し、制御装置100の電源がオフの間も計時を継続する。RTC15は、例えば、水晶発振子を備える発振回路を備える。
タッチスクリーン16は、ユーザによりなされたタッチ操作を検知し、検知の結果を示す信号をCPU11に供給する。また、タッチスクリーン16は、CPU11などから供給された画像信号に基づく画像を表示する。このように、タッチスクリーン16は、制御装置100のユーザインターフェースとして機能する。
宅内電気通信網インターフェース17は、制御装置100を宅内電気通信網500に接続する。宅内電気通信網インターフェース17は、CPU11による制御に従って、被制御機器210、220、230や端末装置300と通信する。宅内電気通信網インターフェース17は、例えば、NIC(Network Interface Card)などのLANインターフェースを備える。
宅外電気通信網インターフェース18は、インターネットプロトコルにより、制御装置100を宅外電気通信網600に接続する。宅外電気通信網インターフェース18は、CPU11による制御に従って、サーバ400と通信する。宅外電気通信網インターフェース18は、例えば、NICなどのLANインターフェースを備える。
次に、図3を参照して、被制御機器210の物理的な構成について説明する。図3に示すように、被制御機器210は、CPU21、ROM22、RAM23、フラッシュメモリ24、RTC25、タッチスクリーン26、宅内電気通信網インターフェース27、処理実行装置28を備える。被制御機器210が備える各構成要素は、バスを介して相互に接続される。
CPU21は、被制御機器210の全体の動作を制御する。なお、CPU21は、ROM22に格納されているプログラムに従って動作し、RAM23をワークエリアとして使用する。
ROM22には、被制御機器210の全体の動作を制御するためのプログラムやデータが記憶される。
RAM23は、CPU21のワークエリアとして機能する。つまり、CPU21は、RAM23にプログラムやデータを一時的に書き込み、これらのプログラムやデータを適宜参照する。
フラッシュメモリ24は、各種の情報を記憶する不揮発性メモリである。なお、被制御機器210は、フラッシュメモリ24に代えて、ハードディスクなどを備えていてもよい。
RTC25は、計時用のデバイスである。RTC25は、例えば、電池を内蔵し、被制御機器210の電源がオフの間も計時を継続する。RTC25は、例えば、水晶発振子を備える発振回路を備える。
タッチスクリーン26は、ユーザによりなされたタッチ操作を検知し、検知の結果を示す信号をCPU21に供給する。また、タッチスクリーン26は、CPU21などから供給された画像信号に基づく画像を表示する。このように、タッチスクリーン26は、被制御機器210のユーザインターフェースとして機能する。
宅内電気通信網インターフェース27は、被制御機器210を宅内電気通信網500に接続する。宅内電気通信網インターフェース27は、CPU21による制御に従って、制御装置100と通信する。宅内電気通信網インターフェース27は、例えば、NICなどのLANインターフェースを備える。
処理実行装置28は、被制御機器210の機能に応じた処理を実行する。例えば、被制御機器210がエアコンである場合、処理実行装置28は、空調処理(温度設定処理、冷房処理、暖房処理、除湿処理、送風処理など)を実行する。例えば、被制御機器210が照明装置である場合、処理実行装置28は、照明の点灯処理や照明の消灯処理を実行する。処理実行装置28は、例えば、制御装置100から供給された要求フレームの内容に従った処理を実行する。また、例えば、処理実行装置28による処理の結果を含む応答フレームが、制御装置100に供給される。
なお、被制御機器220や被制御機器230は、基本的に、被制御機器210と同様の構成を備えることができる。ただし、被制御機器220が備える処理実行装置28は、被制御機器220の機能に応じた処理を実行し、被制御機器230が備える処理実行装置28は、被制御機器230の機能に応じた処理を実行する。
次に、図4を参照して、端末装置300の物理的な構成について説明する。図3に示すように、端末装置300は、CPU31、ROM32、RAM33、フラッシュメモリ34、RTC35、タッチスクリーン36、宅内電気通信網インターフェース37を備える。端末装置300が備える各構成要素は、バスを介して相互に接続される。
CPU31は、端末装置300の全体の動作を制御する。なお、CPU31は、ROM32に格納されているプログラムに従って動作し、RAM33をワークエリアとして使用する。
ROM32には、端末装置300の全体の動作を制御するためのプログラムやデータが記憶される。
RAM33は、CPU31のワークエリアとして機能する。つまり、CPU31は、RAM33にプログラムやデータを一時的に書き込み、これらのプログラムやデータを適宜参照する。
フラッシュメモリ34は、各種の情報を記憶する不揮発性メモリである。なお、端末装置300は、フラッシュメモリ34に代えて、ハードディスクなどを備えていてもよい。
RTC35は、計時用のデバイスである。RTC35は、例えば、電池を内蔵し、端末装置300の電源がオフの間も計時を継続する。RTC35は、例えば、水晶発振子を備える発振回路を備える。
タッチスクリーン36は、ユーザによりなされたタッチ操作を検知し、検知の結果を示す信号をCPU31に供給する。また、タッチスクリーン36は、CPU31などから供給された画像信号に基づく画像を表示する。このように、タッチスクリーン36は、端末装置300のユーザインターフェースとして機能する。
宅内電気通信網インターフェース37は、端末装置300を宅内電気通信網500に接続する。宅内電気通信網インターフェース37は、CPU31による制御に従って、制御装置100と通信する。宅内電気通信網インターフェース37は、例えば、NICなどのLANインターフェースを備える。
次に、図5を参照して、制御装置100の基本的な機能について説明する。制御装置100は、機能的には、要求フレーム送信部101、応答フレーム受信部102、運転モード設定部103、送信間隔制御部104、要求フレーム生成部107、設定可能値範囲特定部108を備える。
要求フレーム送信部101は、宅内電気通信網500を介して、被制御機器210、220、230に、処理の実行を要求する要求フレームを送信する。要求フレーム送信部101は、例えば、CPU11と宅内電気通信網インターフェース17とを備える。
応答フレーム受信部102は、宅内電気通信網500を介して、被制御機器210、220、230から、要求フレーム送信部101により送信された要求フレームに対する応答フレームを受信する。応答フレーム受信部102は、例えば、宅内電気通信網インターフェース17を備える。
運転モード設定部103は、制御装置100の運転モードを、本運転モードと試運転モードとのうちのいずれかに設定する。運転モード設定部103は、例えば、CPU11を備える。
送信間隔制御部104は、運転モード設定部103により運転モードが本運転モードに設定されている間、第1周期毎に、要求フレームの送信と応答フレームの受信とが実行されるように、要求フレーム送信部101による要求フレームの送信間隔を制御する。また、送信間隔制御部104は、運転モード設定部103により運転モードが試運転モードに設定されている間、第1周期とは異なる第2周期毎に、要求フレームの送信と応答フレームの受信とが実行されるように、要求フレーム送信部101による要求フレームの送信間隔を制御する。送信間隔制御部104は、例えば、CPU11を備える。
送信間隔制御部104は、最短周期計測部105と、第2周期決定部106と、を備える。
最短周期計測部105は、運転モード設定部103により運転モードが試運転モードに設定されたことに応答して、応答フレーム受信部102により正常な応答フレームが受信される最短周期を計測する。最短周期計測部105は、例えば、CPU11を備える。
第2周期決定部106は、最短周期計測部105により計測された最短周期に基づいて、第2周期を決定する。第2周期決定部106は、例えば、CPU11を備える。
ここで、最短周期計測部105は、要求フレーム送信部101が要求フレームを送信する周期が、第1周期を初期値として徐々に短くなるように、要求フレーム送信部101による要求フレームの送信間隔を制御する。そして、最短周期計測部105は、応答フレーム受信部102により正常な応答フレームが受信されなくなる直前の周期を、最短周期に決定する。
要求フレーム生成部107は、運転モード設定部103により運転モードが試運転モードに設定されている間、要求フレーム送信部101に送信させる要求フレームとして、被制御機器210、220、230に値の設定を要求する要求フレーム、又は、被制御機器210、220、230に設定されている値を含む応答フレームの送信を要求する要求フレームを生成する。要求フレーム生成部107は、例えば、CPU11を備える。
設定可能値範囲特定部108は、応答フレーム受信部102により受信された応答フレームの内容に基づいて、被制御機器210、220、230が設定可能な値の範囲を特定する。設定可能値範囲特定部108は、例えば、CPU11を備える。
次に、図6を参照して、本運転モードにおける送信間隔制御処理の流れについて説明する。なお、本運転モードは、通常時に設定される運転モードであって、制御システム1000が実行するべき本来の機能を実現するための運転モードである。一方、試運転モードは、本運転モードでない運転モードであり、例えば、制御システム1000に新たな構成(例えば、被制御機器210)が追加された直後に設定される運転モードであって、本来の機能よりも限定又は拡張した機能(調整機能など)を実現するための試験的な運転モードである。
まず、端末装置300は、ユーザから、本運転の指示操作を受け付けると(ST101)、制御装置100に対して、本運転モードの開始を指示する(ST102)一方、制御装置100は、本運転モードの開始を指示されると、運転モードを本運転モードに切り替える。
制御装置100は、運転モードが本運転モードである間、所定の周期(T1)毎に、被制御機器210、220、230のそれぞれに対して、要求フレームを送信する処理と、応答フレームを受信する処理とを実行する。つまり、制御装置100は、所定の周期(T1)毎に、ポーリング処理を実行する。なお、ポーリング処理は、被制御機器210などの制御や監視のために定期的に実行される処理である。また、運転モードが本運転モードである間、ポーリング周期は、T1である。
ここで、要求フレームは、制御装置100が被制御機器210などに対して、何らかの処理の実行を要求するフレームである。例えば、被制御機器210がエアコンである場合、要求フレームは、暖房処理、冷房処理、除湿処理、送風処理、設定温度変更処理、設定湿度変更処理、設定温度送信処理、設定湿度送信処理などを要求する。
また、応答フレームは、被制御機器210などが制御装置100に対して、要求フレームに対する何らかの応答を返すフレームである。例えば、被制御機器210がエアコンである場合、応答フレームは、要求フレームを正常に受信したか否か、要求フレームにより指定された要求を正常に実行可能か否か、要求フレームにより送信することが要求された設定温度や設定湿度、エラーコードなどを応答する。
本実施形態では、運転モードが本運転モードである間、要求フレームは値要求フレームであり、応答フレームは、値応答フレームであるものとして説明する。なお、値要求フレームは、例えば、被制御機器210などに設定されている値(例えば、設定温度や設定湿度)を送信することを要求する要求フレームである。一方、値応答フレームは、例えば、値要求フレームに対する応答フレームであり、被制御機器210などに設定されている値(例えば、設定温度や設定湿度)やエラーコードなどを応答する応答フレームである。
まず、制御装置100は、値要求フレームを被制御機器210に送信する(ST111)。一方、被制御機器210は、値要求フレームを制御装置100から受信したことに応答して、値応答フレームを制御装置100に送信する(ST112)。
そして、制御装置100は、値応答フレームを被制御機器210から受信したことに応答して、値要求フレームを被制御機器220に送信する(ST113)。一方、被制御機器220は、値要求フレームを制御装置100から受信したことに応答して、値応答フレームを制御装置100に送信する(ST114)。
さらに、制御装置100は、値応答フレームを被制御機器220から受信したことに応答して、値要求フレームを被制御機器230に送信する(ST115)。一方、被制御機器230は、値要求フレームを制御装置100から受信したことに応答して、値応答フレームを制御装置100に送信する(ST116)。
ここで、制御装置100は、値要求フレームを被制御機器210に最後に送信(ST111)してからT1が経過した後、値要求フレームを被制御機器210に送信する(ST121)。以降、ST112〜ST116と同様の処理が実行される。つまり、被制御機器210は値応答フレームを制御装置100に送信し(ST122)、制御装置100は値要求フレームを被制御機器220に送信し(ST123)、被制御機器220は値応答フレームを制御装置100に送信し(ST124)、制御装置100は値要求フレームを被制御機器230に送信し(ST125)、被制御機器230は値応答フレームを制御装置100に送信する(ST126)。
また、制御装置100は、値要求フレームを被制御機器210に最後に送信(ST121)してからT1が経過した後、値要求フレームを被制御機器210に送信する(ST131)。以降、被制御機器210は値応答フレームを制御装置100に送信し(ST132)、制御装置100は値要求フレームを被制御機器220に送信し(ST133)、被制御機器220は値応答フレームを制御装置100に送信し(ST134)、制御装置100は値要求フレームを被制御機器230に送信し(ST135)、被制御機器230は値応答フレームを制御装置100に送信する(ST136)。以降、ST131〜ST136と同様の処理が、T1毎に、実行される。
ポーリング周期は、例えば、制御装置100の処理速度や処理負荷、被制御機器210、220、230の処理速度や処理負荷、宅内電気通信網500の回線速度やトラヒックなど(以下、適宜「制御システム1000の通信能力」という。)を考慮して、適宜、調整される。ここで、ポーリング周期が制御システム1000の通信能力に対して短すぎる場合、制御システム1000が正常に動作しなくなることが予想される。また、ポーリング周期が制御システム1000の通信能力に対して長すぎる場合、制御システム1000における応答速度(制御速度やモニタリングの更新速度)が低下することが予想される。
従って、ポーリング周期は、制御システム1000の通信能力に応じて、適切に調整されることが望ましい。なお、制御システム1000の通信能力は、運転モードが本運転モードの場合と、運転モードが試運転モードの場合とで、異なることが予想される。従って、ポーリング周期も、運転モードに応じた適切な周期に設定されることが望ましい。
本実施形態では、試運転モードにおける制御システム1000の通信能力は、本運転モードにおける制御システム1000の通信能力よりも高いものとする。以下、図7を参照して、運転モードが試運転モードに切り替えられた後、試運転モードにおけるポーリング周期として、本運転モードにおけるポーリング周期(T1)よりも短いポーリング周期を求める手法について説明する。
図7は、試運転モードにおける最短周期計測処理の流れを示すシーケンス図である。
まず、端末装置300は、ユーザから、試運転の指示操作を受け付けると(ST201)、制御装置100に対して、試運転モードの開始を指示する(ST202)一方、制御装置100は、試運転モードの開始を指示されると、運転モードを試運転モードに切り替える。本実施形態では、制御装置100は、運転モードが試運転モードに切り替えた直後に、試運転モードにおけるポーリング周期を求める処理を実行するものとして説明する。なお、制御装置100が試運転モードにおけるポーリング周期を求める処理を実行する間、要求フレームは値要求フレームであり、応答フレームは値応答フレームであるものとして説明する。
まず、ST211〜ST226の処理は、ST111〜ST126と同様の処理である。つまり、制御装置100は値要求フレームを被制御機器210に送信し(ST211)、被制御機器210は値応答フレームを制御装置100に送信し(ST212)、制御装置100は値要求フレームを被制御機器220に送信し(ST213)、被制御機器220は値応答フレームを制御装置100に送信し(ST214)、制御装置100は値要求フレームを被制御機器230に送信し(ST215)、被制御機器230は値応答フレームを制御装置100に送信する(ST216)。
ここで、制御装置100は、値要求フレームを被制御機器210に最後に送信(ST211)してからT1が経過した後、値要求フレームを被制御機器210に送信する(ST221)。以後、被制御機器210は値応答フレームを制御装置100に送信し(ST222)、制御装置100は値要求フレームを被制御機器220に送信し(ST223)、被制御機器220は値応答フレームを制御装置100に送信し(ST224)、制御装置100は値要求フレームを被制御機器230に送信し(ST225)、被制御機器230は値応答フレームを制御装置100に送信する(ST226)。
ここで、制御装置100は、ポーリング周期をT1から、T1よりも短いT2に切り替える。つまり、制御装置100は、値要求フレームを被制御機器210に最後に送信(ST221)してからT2が経過した後、値要求フレームを被制御機器210に送信する(ST231)。以後、被制御機器210は値応答フレームを制御装置100に送信し(ST232)、制御装置100は値要求フレームを被制御機器220に送信し(ST233)、被制御機器220は値応答フレームを制御装置100に送信し(ST234)、制御装置100は値要求フレームを被制御機器230に送信し(ST235)、被制御機器230は値応答フレームを制御装置100に送信する(ST236)。
ここで、制御装置100は、ポーリング周期をT2から、T2よりも短いT3に切り替える。つまり、制御装置100は、値要求フレームを被制御機器210に最後に送信(ST231)してからT3が経過した後、値要求フレームを被制御機器210に送信する(ST241)。以後、被制御機器210は値応答フレームを制御装置100に送信し(ST242)、制御装置100は値要求フレームを被制御機器220に送信し(ST243)、被制御機器220は値応答フレームを制御装置100に送信し(ST244)、制御装置100は値要求フレームを被制御機器230に送信し(ST245)、被制御機器230は値応答フレームを制御装置100に送信する(ST246)。
このように、制御装置100は、ポーリング周期をT1から徐々に短い周期に切り替える。ここで、制御装置100は、ポーリング周期を短くした後、このポーリング周期で、制御システム1000が正常に動作可能か否かを判別する。この判別手法は、適宜、調整することができる。例えば、制御装置100は、ポーリング周期を短くした後に、正常な値応答フレームを被制御機器210、220、230から受信したか否かを判別することにより、このポーリング周期で、制御システム1000が正常に動作可能か否かを判別することができる。例えば、制御装置100は、値要求フレームの送信後、ポーリング周期以下の所定の時間が経過するまでの期間内に値応答フレームをできない場合、又は、エラーコードを含む値応答フレームを受信した場合、このポーリング周期で、制御システム1000が正常に動作可能でないと判別することができる。
図7に示す例では、例えば、制御装置100は、ST222の値応答フレーム、ST224の値応答フレーム、ST226の値応答フレームのいずれをも正常に受信し、且つ、それらの内容が異常でない場合、T1のポーリング周期で、制御システム1000が正常に動作可能であると判別することができる。
また、例えば、制御装置100は、ST232の値応答フレーム、ST234の値応答フレーム、ST236の値応答フレームのいずれをも正常に受信し、且つ、それらの内容が異常でない場合、T2のポーリング周期で、制御システム1000が正常に動作可能であると判別することができる。
一方、例えば、制御装置100は、ST242の値応答フレーム、ST244の値応答フレーム、ST246の値応答フレームのいずれかを正常に受信できず、又は、それらの内容のいずれかが異常である場合、T3のポーリング周期で、制御システム1000が正常に動作可能でないと判別することができる。
本実施形態では、正常に動作可能でないと判別されたポーリング周期の直前に設定されたポーリング周期であって、正常に動作可能であると判別された最後のポーリング周期であるT2が、試運転モードにおける通信可能な最短周期に設定される。そして、試運転モードにおける通信可能な最短周期に基づいて、試運転モードにおけるポーリング周期が設定され、設定されたポーリング周期で、試運転モードにおけるポーリング処理が実行される。以下、図8を参照して、試運転モードにおいて、設定されたポーリング周期で、値域確認処理が実行される例について説明する。
図8は、試運転モードにおける値域確認処理の流れを示すシーケンス図である。
まず、端末装置300は、ユーザから、値域確認の指示操作を受け付けると(ST301)、制御装置100に対して、値域確認の開始を指示する(ST302)。一方、制御装置100は、値域確認の開始を指示されると、値域確認処理を実行する。図8では、試運転モードにおけるポーリング周期は、試運転モードにおける通信可能な最短周期であるT2であるものとして説明する。ここで、被制御機器210が値域確認処理の対象であり、被制御機器220や被制御機器230は値域確認処理の対象でないものとする。
従って、端末装置300は、被制御機器210に関しては、値域確認のために、値設定要求フレームの送信及び値設定応答フレームの受信と、値要求フレームの送信及び値応答フレームの受信とを、T2毎に交互に繰り返す。一方、端末装置300は、被制御機器220、230に関しては、値域確認以外の制御や監視のために、値要求フレームの送信及び値応答フレームの受信を、T2毎に繰り返す。
なお、値設定要求フレームは、例えば、被制御機器210などに値(例えば、設定温度や設定湿度)を設定することを要求する要求フレームである。一方、値設定応答フレームは、例えば、値設定要求フレームに対する応答フレームであり、値設定要求フレームを正常に受信できたか否か、値設定要求フレームにより要求された処理を実行可能であるか否かなどを応答する応答フレームである。
まず、制御装置100は値要求フレームを被制御機器210に送信し(ST311)、被制御機器210は値応答フレームを制御装置100に送信する(ST312)。ここで、制御装置100は、受信した値応答フレームに含まれる現在値を待避(保存)する。なお、制御装置100が、被制御機器210に設定されている現在値を待避するのは、制御装置100が、値域確認のために、被制御機器210にテスト値を設定してしまうためである。なお、制御装置100は、値域確認を終了した後、待避した現在値を含む値設定要求フレームを用いて、待避した現在値を被制御機器210に設定する。
そして、制御装置100は値要求フレームを被制御機器220に送信し(ST313)、被制御機器220は値応答フレームを制御装置100に送信し(ST314)、制御装置100は値要求フレームを被制御機器230に送信し(ST315)、被制御機器230は値応答フレームを制御装置100に送信する(ST316)。
ここで、制御装置100は、値要求フレームを被制御機器210に最後に送信(ST311)してからT2が経過した後、値設定要求フレームを被制御機器210に送信する(ST321)。一方、被制御機器210は、値要求設定要求フレームを制御装置100から受信したことに応答して、値設定応答フレームを制御装置100に送信する(ST322)。ここで、値設定要求フレームは、上限値の確認時は、待避された現在値よりも大きいテスト値を含み、下限値の確認時は、待避された現在値よりも小さいテスト値を含む。本実施形態では、ST321〜ST356において、値域確認のうち、上限値の確認について説明する。
以後、制御装置100は値要求フレームを被制御機器220に送信し(ST323)、被制御機器220は値応答フレームを制御装置100に送信し(ST324)、制御装置100は値要求フレームを被制御機器230に送信し(ST325)、被制御機器230は値応答フレームを制御装置100に送信する(ST326)。
ここで、制御装置100は、値設定要求フレームを被制御機器210に最後に送信(ST321)してからT2が経過した後、値要求フレームを被制御機器210に送信する(ST331)。一方、被制御機器210は、値要求フレームを制御装置100から受信したことに応答して、値応答フレームを制御装置100に送信する(ST332)。ここで、制御装置100は、値応答フレームに含まれる値が、ST321において設定しようとしたテスト値であると判別した場合、テスト値が値域に含まれる(OK)と判別する。一方、制御装置100は、値応答フレームに含まれる値が、ST321において設定しようとしたテスト値でないと判別した場合、テスト値が値域に含まれない(NG)と判別する。ここでは、テスト値が値域に含まれる(OK)と判別されたものとして説明する。
以後、制御装置100は値要求フレームを被制御機器220に送信し(ST333)、被制御機器220は値応答フレームを制御装置100に送信し(ST334)、制御装置100は値要求フレームを被制御機器230に送信し(ST335)、被制御機器230は値応答フレームを制御装置100に送信する(ST336)。
ここで、制御装置100は、値要求フレームを被制御機器210に最後に送信(ST331)してからT2が経過した後、値設定要求フレームを被制御機器210に送信する(ST341)。一方、被制御機器210は、値要求設定要求フレームを制御装置100から受信したことに応答して、値設定応答フレームを制御装置100に送信する(ST342)。ここで、ST331の値設定要求フレームに含まれるテスト値は、ST341の値設定要求フレームに含まれるテスト値は、ST321の値設定要求フレームに含まれるテスト値よりも、大きな値であるものとする。
以後、制御装置100は値要求フレームを被制御機器220に送信し(ST343)、被制御機器220は値応答フレームを制御装置100に送信し(ST344)、制御装置100は値要求フレームを被制御機器230に送信し(ST345)、被制御機器230は値応答フレームを制御装置100に送信する(ST346)。
ここで、制御装置100は、値設定要求フレームを被制御機器210に最後に送信(ST341)してからT2が経過した後、値要求フレームを被制御機器210に送信する(ST351)。一方、被制御機器210は、値要求フレームを制御装置100から受信したことに応答して、値応答フレームを制御装置100に送信する(ST352)。ここで、制御装置100は、値応答フレームに含まれる値が、ST341において設定しようとしたテスト値であると判別した場合、テスト値が値域に含まれる(OK)と判別する。一方、制御装置100は、値応答フレームに含まれる値が、ST341において設定しようとしたテスト値でないと判別した場合、テスト値が値域に含まれない(NG)と判別する。ここでは、テスト値が値域に含まれる(NG)と判別されたものとして説明する。
以後、制御装置100は値要求フレームを被制御機器220に送信し(ST353)、被制御機器220は値応答フレームを制御装置100に送信し(ST354)、制御装置100は値要求フレームを被制御機器230に送信し(ST355)、被制御機器230は値応答フレームを制御装置100に送信する(ST356)。
なお、ST352においてNGと判別された場合、ST321の値設定要求フレームに含まれるテスト値が、値域の上限値として設定される。以上、ST321〜ST356において、初期値である現在値から徐々に大きくしたテスト値が正しく設定できたか否かの判別により値域の上限値が設定される例について説明した。以下、同様の手法により、初期値である現在値から徐々に小さくしたテスト値が正しく設定できたか否かの判別により値域の下限値が設定される。また、制御装置100は、値域の下限値が設定された後、待避した現在値(ST312の値応答フレームに含まれる値)を含む値設定要求フレームを、被制御機器210に送信する。
次に、図9に示すフローチャートを参照して、制御装置100が実行する送信間隔制御処理について説明する。なお、制御装置100は、電源が投入されたことに応答して、図9に示す送信間隔制御処理を開始する。
まず、CPU11は、運転モードを本運転モードに設定する(ステップS101)。例えば、CPU11は、RAM13に記憶されている運転モードを示す情報を、本運転モードを示す情報に更新する。このように、本実施形態では、電源投入直後、運転モードが本運転モードに設定される。
CPU11は、ステップS101の処理を完了すると、本運転モードで動作する(ステップS102)。なお、本運転モード時の動作は、図6に示すように、本運転モード用のポーリング周期(T1)によるポーリング処理により実現される制御や監視のための動作である。
CPU11は、ステップS102の処理を完了すると、試運転モードへの切替指示があるか否かを判別する(ステップS103)。具体的には、例えば、CPU11は、試運転モードへの切替を指示するタッチ操作がタッチスクリーン16により受け付けられたか否かを判別する。あるいは、CPU11は、試運転モードへの切替を指示する情報が、宅内電気通信網インターフェース17により受信されたか否かを判別する。試運転モードへの切替を指示する情報は、例えば、タッチスクリーン36に対するタッチ操作に基づく情報であって、端末装置300から制御装置100に送信された情報である。あるいは、CPU11は、自動プログラムに従って、試運転モードへの切替指示があるか否かを判別してもよい。
CPU11は、試運転モードへの切替指示がないと判別すると(ステップS103:NO)、ステップS102に処理を戻す。つまり、CPU11は、試運転モードへの切替指示があると判別するまで、本運転モードで動作する。
一方、CPU11は、試運転モードへの切替指示があると判別すると(ステップS103:YES)、運転モードを試運転モードに設定する(ステップS104)。例えば、CPU11は、RAM13に記憶されている運転モードを示す情報を、試運転モードを示す情報に更新する。
CPU11は、ステップS104の処理を完了すると、最短周期計測処理を実行する(ステップS105)。最短周期計測処理については、図10に示すフローチャートを参照して、詳細に説明する。
まず、CPU11は、第1周期をテスト周期に設定する(ステップS201)。ここで、第1周期は、本運転モードにおけるポーリング周期(T1)である。CPU11は、RAM13に記憶されているテスト周期を示す情報を、第1周期を示す情報に更新する。
CPU11は、ステップS201の処理を完了すると、タイマカウンタを再起動する(ステップS202)。例えば、CPU11は、タイマカウンタの値を0にセットするとともに、タイマカウンタにカウントアップを開始させる。なお、タイマカウンタは、例えば、CPU11やRAM13やRTC15などにより構成される。
CPU11は、ステップS202の処理を完了すると、被制御機器210、220、230の中から、未選択の被制御機器を選択する(ステップS203)。なお、未選択であるとは、ステップS202において最後にタイマカウンタが再起動されてから、ステップS203において未だに選択されていないことである。つまり、ステップS202の処理が実行される毎に、被制御機器210、220、230の全てが未選択に再設定される。被制御機器を選択する順序は、適宜、調整することができる。本実施形態では、被制御機器210→被制御機器220→被制御機器230の順に、被制御機器が選択されるものとする。
CPU11は、ステップS203の処理を完了すると、選択された被制御機器に値要求フレームを送信する(ステップS204)。例えば、CPU11は、宅内電気通信網インターフェース17を介して、被制御機器210などに値要求フレームを送信する。一方、被制御機器210などは、ポーリング周期(テスト周期)が短すぎる場合を除き、値要求フレームに応答する値応答フレームを制御装置100に送信することになる。なお、ポーリング周期(テスト周期)が短すぎる場合、例えば、被制御機器210などは、値応答フレームを被制御機器210に送信しなかったり、エラーコードを含む値応答フレームを被制御機器210に送信したりする。
CPU11は、ステップS204の処理を完了すると、正常な値応答フレームを受信したか否かを判別する(ステップS205)。例えば、CPU11は、宅内電気通信網インターフェース17に、エラーコードを含まない正常な値応答フレームが受信されたか否かを判別する。
CPU11は、正常な値応答フレームを受信したと判別した場合(ステップS205:YES)、被制御機器210、220、230のうち、未選択の被制御機器があるか否かを判別する(ステップS206)。
CPU11は、未選択の被制御機器があると判別すると(ステップS206:YES)、ステップS203に処理を戻す。一方、CPU11は、未選択の被制御機器がないと判別すると(ステップS206:NO)、テスト周期を通信可能周期に設定する(ステップS207)。なお、通信可能周期は、制御システム1000に異常を発生させずに通信が可能であるポーリング周期である。例えば、CPU11は、RAM13に記憶されている通信可能周期を示す情報を、現在のテスト周期を示す情報に更新する。
CPU11は、ステップS207の処理を完了すると、テスト周期を短縮する(ステップS208)。テスト周期を短縮する手法は、適宜、調整することができる。例えば、CPU11は、現在のテスト周期に、0よりも大きく1よりも小さい所定の割合を乗じることにより得られる周期を新たなテスト周期として採用することができる。もしくは、CPU11は、現在のテスト周期から、予め定められた値を減じることにより得られる周期を新たなテスト周期として採用することができる。CPU11は、RAM13に記憶されているテスト周期を示す情報を、短縮されたテスト周期を示す情報に更新する。
CPU11は、ステップS208の処理を完了すると、タイマカウンタの値がテスト周期に対応する値以上になるまで待機する(ステップS209)。つまり、CPU11は、ステップS202においてタイマカウンタを再起動してから、テスト周期以上経過するまで待機する。なお、CPU11は、この待機中に、種々の処理を実行することができる。CPU11は、ステップS209の処理を完了すると、ステップS202に処理を戻す。
一方、CPU11は、正常な値応答フレームを受信していないと判別した場合(ステップS205:NO)、通信可能周期を最短周期に設定する(ステップS210)。具体的には、CPU11は、RAM13に記憶されている最短周期を示す情報を、RAM13に記憶されている通信可能周期を示す情報に更新する。なお、最短周期は、ステップS207の処理において、ポーリング可能な周期として設定された通信可能周期のうち、最も短い周期である。つまり、最短周期は、ポーリング可能な最短の周期である。CPU11は、ステップS210の処理を完了すると、最短周期計測処理を完了する。
CPU11は、ステップS105の最短周期計測処理を完了すると、値域確認指示があるか否かを判別する(ステップS106)。値域確認指示は、被制御機器210、220、230のうちの少なくとも1つに対して、設定可能な値の範囲を確認することの指示である。例えば、CPU11は、タッチスクリーン16に値域の確認を指示するタッチ操作が受け付けられたか否か、宅内電気通信網インターフェース17により値域の確認を指示する情報が受信されたか否か、もしくは、自動プログラムに従って、値域確認指示があるか否かを判別する。
CPU11は、値域確認指示があると判別すると(ステップS106:YES)、上限値確認処理を実行する(ステップS107)。上限値確認処理については、図11に示すフローチャートを参照して、詳細に説明する。なお、上限値確認処理と下限値確認処理は、いずれも、値域確認処理の一部の処理である。値域確認処理は、例えば、エアコンにおける設定可能な温度や湿度の範囲を確認する処理である。例えば、制御装置100は、制御システム1000に新たにエアコン(被制御機器210)が追加された場合、試運転モードにおいて、このエアコンにおいて設定可能な温度や湿度の範囲を確認する。そして、制御装置100は、本運転モードにおいて、確認した設定可能な温度や湿度の範囲を超える値を設定するコマンドを端末装置300から受信した場合、適切な処理を実行することができる。適切な処理は、例えば、エアコンにコマンドを送信する代わりに、端末装置300にエラーコードを送信する処理である。
まず、CPU11は、最短周期に基づいて、第2周期を設定する(ステップS301)。例えば、CPU11は、最短周期よりも所定の時間長い周期を、第2周期に設定してもよい。なお、このように、第2周期を最短周期に設定するのではなく、第2周期を最短周期よりも長い時間に設定する(マージンを設ける)のは、例えば、何らかの原因により、制御システム1000の通信能力が僅かに低下した場合でも、制御システム1000が問題なく動作するようにするためである。
CPU11は、ステップS301の処理を完了すると、値域確認段階を、現在値待避段階に設定する(ステップS302)。例えば、CPU11は、RAM13に記憶されている値域確認段階を示す情報を、現在値待避段階を示す情報に更新する。値域確認段階は、値域確認のどの段階にあるのかを示す。現在値待避段階は、現在値を待避する段階である。
CPU11は、ステップS302の処理を完了すると、タイマカウンタを再起動する(ステップS303)。例えば、CPU11は、タイマカウンタの値を0にセットするとともに、タイマカウンタにカウントアップを開始させる。
CPU11は、ステップS303の処理を完了すると、被制御機器210、220、230の中から、未選択の被制御機器を選択する(ステップS304)。なお、未選択であるとは、ステップS303において最後にタイマカウンタが再起動されてから、ステップS304において未だに選択されていないことである。つまり、ステップS303の処理が実行される毎に、被制御機器210、220、230の全てが未選択に再設定される。
CPU11は、ステップS304の処理を完了すると、選択された被制御機器が対象機器であるか否かを判別する(ステップS305)。対象機器は、被制御機器210、220、230のうち、値域確認の対象となる被制御機器である。CPU11は、例えば、値域確認指示を参照することにより、対象機器を特定可能である。本実施形態では、対象機器は、被制御機器210であるものとして説明する。
CPU11は、選択された被制御機器が対象機器であると判別すると(ステップS305:YES)、対象機器フレーム通信処理を実行する(ステップS306)。対象機器フレーム通信処理については、図12に示すフローチャートを参照して、詳細に説明する。
まず、CPU11は、値域確認段階が現在値待避段階であるか否かを判別する(ステップS401)。CPU11は、RAM13に記憶されている値域確認段階を示す情報を参照して、値域確認段階が現在値待避段階であるか否かを判別することができる。
CPU11は、値域確認段階が現在値待避段階であると判別すると(ステップS401:YES)、値要求フレームを送信する(ステップS402)。具体的には、CPU11は、宅内電気通信網インターフェース17を介して、値要求フレームを被制御機器210に送信する。なお、この値要求フレームは、値域確認に関わる値を送信することを要求する要求フレームである。一方、被制御機器210は、値域確認に関わる値(例えば、設定温度や設定湿度など)の現在値を含む値応答フレームを、制御装置100に送信する。
CPU11は、ステップS402の処理を完了すると、値応答フレームを受信する(ステップS403)。具体的には、CPU11は、宅内電気通信網インターフェース17を介して、被制御機器210から値応答フレームを受信する。
CPU11は、ステップS403の処理を完了すると、現在値を保存する(ステップS404)。つまり、CPU11は、値応答フレームに含まれる現在値を、RAM13に記憶する。
CPU11は、ステップS404の処理を完了すると、現在値に基づいてテスト値を設定する(ステップS405)。例えば、CPU11は、RAM13に記憶されているテスト値を、現在値よりも所定単位だけ大きな値に更新する。例えば、現在値が28度である場合、テスト値は29度に設定される。
CPU11は、ステップS405の処理を完了すると、値域確認段階を値設定要求段階に設定する(ステップS406)。例えば、CPU11は、RAM13に記憶されている値域確認段階を示す情報を、値設定要求段階を示す情報に更新する。値設定要求段階は、例えば、被制御機器210にテスト値を設定することを要求する段階である。CPU11は、ステップS406の処理を完了すると、対象機器フレーム通信処理を終了する。
一方、CPU11は、値域確認段階が現在値待避段階でないと判別すると(ステップS401:NO)、値域確認段階が値設定要求段階であるか否かを判別する(ステップS407)。CPU11は、RAM13に記憶されている値域確認段階を示す情報を参照して、値域確認段階が値設定要求段階であるか否かを判別することができる。
CPU11は、値域確認段階が値設定要求段階であると判別すると(ステップS407:YES)、テスト値を含む値設定要求フレームを送信する(ステップS408)。例えば、CPU11は、宅内電気通信網インターフェース17を介して、RAM13に記憶されたテスト値を含む値設定要求フレームを被制御機器210に送信する。一方、被制御機器210は、値設定要求フレームを受信したことに応答して、値設定応答フレームを制御装置100に送信する。また、被制御機器210は、受信した値設定要求フレームに含まれるテスト値の設定を試みる。
CPU11は、ステップS408の処理を完了すると、値設定応答フレームを受信する(ステップS409)。具体的には、CPU11は、宅内電気通信網インターフェース17を介して、被制御機器210から値設定応答フレームを受信する。
CPU11は、ステップS409の処理を完了すると、値域確認段階を値確認段階に設定する(ステップS410)。例えば、CPU11は、RAM13に記憶されている値域確認段階を示す情報を、値確認段階を示す情報に更新する。値確認段階は、例えば、被制御機器210にテスト値が正しく設定されたか否かを確認する段階である。CPU11は、ステップS410の処理を完了すると、対象機器フレーム通信処理を終了する。
一方、CPU11は、値域確認段階が値設定要求段階でないと判別すると(ステップS407:NO)、値域確認段階が値確認段階であるか否かを判別する(ステップS411)。CPU11は、RAM13に記憶されている値域確認段階を示す情報を参照して、値域確認段階が値確認段階であるか否かを判別することができる。
CPU11は、値域確認段階が値確認段階であると判別すると(ステップS411:YES)、値要求フレームを送信する(ステップS412)。具体的には、CPU11は、宅内電気通信網インターフェース17を介して、値要求クレームを被制御機器210に送信する。一方、被制御機器210は、設定されている値を含む値応答フレームを、制御装置100に送信する。
CPU11は、ステップS412の処理を完了すると、値応答フレームを受信する(ステップS413)。具体的には、CPU11は、宅内電気通信網インターフェース17を介して、被制御機器210から値応答フレームを受信する。
CPU11は、ステップS413の処理を完了すると、値応答フレームに含まれる値がテスト値と一致するか否かを判別する(ステップS414)。例えば、CPU11は、値応答フレームに含まれる値が、RAM13に記憶されているテスト値と一致するか否かを判別する。
CPU11は、値応答フレームに含まれる値がテスト値と一致すると判別すると(ステップS414:YES)、テスト値を設定可能値に設定する(ステップS415)。例えば、CPU11は、RAM13に記憶されている設定可能値を、テスト値に更新する。
CPU11は、ステップS415の処理を完了すると、テスト値を増加させる(ステップS416)。例えば、CPU11は、RAM13に記憶されているテスト値を、現在のテスト値よりも所定単位だけ大きな値に更新する。例えば、現在のテスト値が29度である場合、新たなテスト値は30度に設定される。
CPU11は、ステップS416の処理を完了すると、値域確認段階を値設定要求段階に設定する(ステップS417)。例えば、CPU11は、RAM13に記憶されている値域確認段階を示す情報を、値設定要求段階を示す情報に更新する。CPU11は、ステップS417の処理を完了すると、対象機器フレーム通信処理を終了する。
一方、CPU11は、値応答フレームに含まれる値がテスト値と一致しないと判別すると(ステップS414:NO)、設定可能値を上限値に設定する(ステップS418)。例えば、CPU11は、RAM13に記憶されている設定可能値を、上限値としてRAM13に記憶する。
CPU11は、ステップS418の処理を完了すると、値域確認段階を現在値再設定段階に設定する(ステップS419)。例えば、CPU11は、RAM13に記憶されている値域確認段階を示す情報を、現在値再設定段階を示す情報に更新する。現在値再設定段階は、例えば、待避した現在値を被制御機器210に再設定する段階である。CPU11は、ステップS419の処理を完了すると、対象機器フレーム通信処理を終了する。
一方、CPU11は、値域確認段階が値確認段階でないと判別すると(ステップS411:NO)、現在値を含む値設定要求フレームを送信する(ステップS420)。例えば、CPU11は、宅内電気通信網インターフェース17を介して、ステップS404においてRAM13に記憶された現在値を含む値設定要求フレームを被制御機器210に送信する。一方、被制御機器210は、値設定要求フレームを受信したことに応答して、値設定応答フレームを制御装置100に送信する。また、被制御機器210は、受信した値設定要求フレームに含まれる現在値を設定する。なお、CPU11は、ステップS411において、値域確認段階が現在値再設定段階である場合、値域確認段階が値確認段階でないと判別する。
CPU11は、ステップS420の処理を完了すると、値設定応答フレームを受信する(ステップS421)。具体的には、CPU11は、宅内電気通信網インターフェース17を介して、被制御機器210から値設定応答フレームを受信する。
CPU11は、ステップS421の処理を完了すると、値域確認段階を終了段階に設定する(ステップS422)。例えば、CPU11は、RAM13に記憶されている値域確認段階を示す情報を、終了段階を示す情報に更新する。終了段階は、例えば、被制御機器210に対する値域の確認が終了した段階である。CPU11は、ステップS422の処理を完了すると、対象機器フレーム通信処理を終了する。
CPU11は、ステップS306の対象機器フレーム通信処理を完了すると、値域確認段階が終了段階であるか否かを判別する(ステップS307)。例えば、CPU11は、RAM13に記憶されている値域確認段階を示す情報を参照して、値域確認段階が終了段階であるか否かを判別することができる。CPU11は、値域確認段階が終了段階であると判別すると(ステップS307:YES)、上限値確認処理を終了する。
CPU11は、選択された被制御機器が対象機器ではないと判別すると(ステップS305:NO)、値要求フレームを送信する(ステップS308)。例えば、CPU11は、宅内電気通信網インターフェース17を介して、値要求フレームを、選択された、被制御機器220又は被制御機器230に送信する。一方、被制御機器220又は被制御機器230は、値要求フレームを受信したことに応答して、値要求フレームにより送信することが要求された値を含む値応答フレームを、制御装置100に送信する。
CPU11は、ステップS308の処理を完了すると、値応答フレームを受信する(ステップS309)。例えば、CPU11は、宅内電気通信網インターフェース17を介して、被制御機器220又は被制御機器230により送信された値応答フレームを受信する。
CPU11は、値域確認段階が終了段階でないと判別した場合(ステップS307:NO)、又は、ステップS309の処理を完了した場合、未選択の被制御機器があるか否かを判別する(ステップS310)。
CPU11は、未選択の被制御機器があると判別すると(ステップS310:YES)、ステップS304に処理を戻す。一方、CPU11は、未選択の被制御機器がないと判別すると(ステップS310:NO)、タイマカウンタの値が第2周期に対応する値以上になるまで待機する。つまり、CPU11は、ステップS303においてタイマカウンタを再起動してから、第2周期以上経過するまで待機する。なお、CPU11は、この待機中に、種々の処理を実行することができる。CPU11は、ステップS311の処理を完了すると、ステップS303に処理を戻す。
CPU11は、ステップS107の上限値確認処理を完了すると、下限値確認処理を実行する(ステップS108)。下限値確認処理は、基本的に、図11と図12との示した上限値確認処理と同様の手順により実行される。下限値確認処理では、例えば、CPU11は、ステップS405において、テスト値を、現在値よりも所定単位だけ小さな値に設定する。また、CPU11は、ステップS416において、テスト値を、現在のテスト値よりも所定単位だけ小さな値に設定する。また、CPU11は、ステップS418において、設定可能値を下限値に設定する。
CPU11は、ステップS108の処理を完了した場合、又は、値域確認指示がないと判別した場合(ステップS106:NO)、本運転モードへの切替指示があるか否かを判別する(ステップS109)。例えば、CPU11は、タッチスクリーン16に本運転モードへの切替を指示するタッチ操作が受け付けられたか否か、宅内電気通信網インターフェース17により本運転モードへの切替を指示する情報が受信されたか否か、もしくは、自動プログラムに従って、本運転モードへの切替指示があるか否かを判別する。
CPU11は、本運転モードへの切替指示があると判別すると(ステップS109:YES)、ステップS101に処理を戻す。一方、CPU11は、本運転モードへの切替指示がないと判別すると(ステップS109:NO)、ステップS106に処理を戻す。
本実施形態によれば、試運転モードにおけるポーリング周期を、本運転モードにおけるポーリング周期とは異なる周期に設定することができる。従って、本実施形態によれば、試運転モードにおいて、適切なポーリング周期を採用することができる。
また、本実施形態によれば、試運転モードにおいて、制御システム1000が正常に動作する最短のポーリング周期に基づくポーリング周期を採用することができる。従って、本実施形態によれば、試運転モードにおいて、制御システム1000が正常に動作する範囲で、適切なポーリング周期を採用することができる。
また、本実施形態によれば、ポーリング周期の候補は、本運転モードにおけるポーリング周期を初期値として徐々に短くされながら、適切であるか否かが判別される。従って、本実施形態によれば、効率的に、適切なポーリング周期を決定することができる。
また、本実施形態によれば、試運転モードにおいて、適切なポーリング周期により、被制御機器に対する設定可能な値の範囲が求められる。従って、本実施形態によれば、効率的に、被制御機器に対する設定可能な値の範囲が求められる。
(第2の実施形態)
第1の実施形態では、被制御機器210、220、230のいずれに対しても、同一のポーリング周期が決定される例について説明した。本発明において、被制御機器210、220、230のそれぞれに対して、優先度などに応じた異なるポーリング周期が設定されてもよい。以下、第2の実施形態では、被制御機器210、220、230のそれぞれに対して、優先度などに応じた異なるポーリング周期が設定される例について説明する。なお、以下では、基本的に、第2の実施形態に係る制御装置100が第1の実施形態に係る制御装置100と異なる部分について説明する。また、第2の実施形態に係る制御装置100は、物理的な構成に関しては、第1の実施形態に係る制御装置100と同様である。
まず、本実施形態では、送信間隔制御部104は、運転モード設定部103により運転モードが試運転モードに設定されている間、第1優先度の被制御機器210に対しては、第2周期毎に、第1優先度よりも低い優先度である第2優先度の被制御機器220、230に対しては、第2周期の2以上の整数倍の周期毎に、要求フレームの送信と応答フレームの受信とが実行されるように、要求フレーム送信部101による要求フレームの送信間隔を制御する。
図13は、被制御機器の優先度毎のポーリング周期で実行される値域確認処理の流れを示すシーケンス図である。
まず、端末装置300は、ユーザから、値域確認の指示操作を受け付けると(ST401)、制御装置100に対して、値域確認の開始を指示する(ST402)一方、制御装置100は、値域確認の開始を指示されると、値域確認処理を実行する。ここで、被制御機器210が値域確認処理の対象であり、被制御機器220や被制御機器230は値域確認処理の対象でないものとする。
また、図13に示すように、試運転モードにおいて、被制御機器210に対するポーリング周期を、試運転モードにおける通信可能な最短周期であるT2とし、被制御機器220、230のそれぞれに対するポーリング周期は、T2の2倍のT4とすることができる。
具体的には、制御装置100は値要求フレームを被制御機器210に送信し(ST411)、被制御機器210は値応答フレームを制御装置100に送信する(ST412)。ここで、制御装置100は、受信した値応答フレームに含まれる現在値を待避する。
そして、制御装置100は値要求フレームを被制御機器220に送信し(ST413)、被制御機器220は値応答フレームを制御装置100に送信する(ST414)。
ここで、制御装置100は、値要求フレームを被制御機器210に最後に送信(ST411)してからT2が経過した後、待避した現在値よりも大きなテスト値を含む値設定要求フレームを被制御機器210に送信する(ST421)。一方、被制御機器210は、値要求設定要求フレームを制御装置100から受信したことに応答して、値応答フレームを制御装置100に送信する(ST422)。
以後、制御装置100は値要求フレームを被制御機器220に送信し(ST425)、被制御機器220は値応答フレームを制御装置100に送信する(ST426)。
ここで、制御装置100は、値設定要求フレームを被制御機器210に最後に送信(ST421)してからT2が経過した後、値要求フレームを被制御機器210に送信する(ST431)。一方、被制御機器210は、値要求フレームを制御装置100から受信したことに応答して、値応答フレームを制御装置100に送信する(ST432)。ここで、制御装置100は、テスト値が値域に含まれるか否かを判別する。ここでは、テスト値が値域に含まれる(OK)と判別されたものとして説明する。
以後、制御装置100は値要求フレームを被制御機器220に送信し(ST433)、被制御機器220は値応答フレームを制御装置100に送信し(ST434)。
ここで、制御装置100は、値要求フレームを被制御機器210に最後に送信(ST431)してからT2が経過した後、ST421の値設定要求フレームに含まれるテスト値よりも大きなテスト値を含む値設定要求フレームを被制御機器210に送信する(ST441)。一方、被制御機器210は、値要求設定要求フレームを制御装置100から受信したことに応答して、値応答フレームを制御装置100に送信する(ST442)。
以後、制御装置100は値要求フレームを被制御機器230に送信し(ST445)、被制御機器230は値応答フレームを制御装置100に送信する(ST446)。
ここで、制御装置100は、値設定要求フレームを被制御機器210に最後に送信(ST441)してからT2が経過した後、値要求フレームを被制御機器210に送信する(ST451)。一方、被制御機器210は、値要求フレームを制御装置100から受信したことに応答して、値応答フレームを制御装置100に送信する(ST452)。ここで、制御装置100は、テスト値が値域に含まれるか否かを判別する。ここでは、テスト値が値域に含まれない(NG)と判別されたものとして説明する。
以後、制御装置100は値要求フレームを被制御機器220に送信し(ST453)、被制御機器220は値応答フレームを制御装置100に送信する(ST454)。
なお、ST452においてNGと判別された場合、ST421の値設定要求フレームに含まれるテスト値が、値域の上限値として設定される。以上、ST421〜ST454において、初期値である現在値から徐々に大きくしたテスト値が正しく設定できたか否かの判別により値域の上限値が設定される例について説明した。以下、同様の手法により、初期値である現在値から徐々に小さくしたテスト値が正しく設定できたか否かの判別により値域の下限値が設定される。また、制御装置100は、値域の下限値が設定された後、待避した現在値(ST412の値応答フレームに含まれる値)を含む値設定要求フレームを、被制御機器210に送信する。
本実施形態によれば、相対的に優先度が低い被制御機器220、230に対するポーリング周期を、相対的に優先度が高い被制御機器210に対するポーリング周期の2以上の整数倍に設定することができる。本実施形態によれば、制御システム1000の通信能力が多少変動しても、制御システム1000が異常になりにくくなることが期待できる。
(変形例)
以上、本発明の実施形態を説明したが、本発明を実施するにあたっては、種々の形態による変形及び応用が可能である。
本発明において、上記実施形態において説明した構成、機能、動作のどの部分を採用するのかは任意である。また、本発明において、上述した構成、機能、動作のほか、更なる構成、機能、動作が採用されてもよい。
第1の実施形態では、基本的に、制御システム1000とユーザとのユーザインターフェースが、制御装置100や端末装置300である例について説明した。本発明において、例えば、制御システム1000とユーザとのユーザインターフェースが、被制御機器210、220、230などであってもよい。
第1の実施形態では、被制御機器210、220、230のうち、被制御機器210のみが値域確認の対象である例について説明した。本発明において、被制御機器210、220、230のうち、任意の1つ以上が値域確認の対象であってもよい。
本発明に係る制御装置100の動作を規定する動作プログラムを既存のパーソナルコンピュータや情報端末装置に適用することで、当該パーソナルコンピュータ等を本発明に係る制御装置100として機能させることも可能である。
また、このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。