(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-09
(45)【発行日】2024-05-17
(54)【発明の名称】洗濯機、制御方法、及び、制御システム
(51)【国際特許分類】
D06F 33/32 20200101AFI20240510BHJP
【FI】
D06F33/32
(21)【出願番号】P 2021079723
(22)【出願日】2021-05-10
【審査請求日】2023-09-25
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100109210
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】成瀬 隼人
(72)【発明者】
【氏名】藤原 慶鐘
【審査官】粟倉 裕二
(56)【参考文献】
【文献】米国特許出願公開第2011/0153089(US,A1)
【文献】国際公開第2019/063118(WO,A1)
【文献】特開2019-91460(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
D06F 33/32-33/42
D06F 33/52-33/68
(57)【特許請求の範囲】
【請求項1】
外部機器と通信可能な洗濯機であって、
前記外部機器から洗濯情報を受信する通信部と、
前記洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、
前記洗濯機能部を制御する制御装置と、を備え、
前記洗濯情報は、それぞれが前記洗濯機能部の運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含み、
前記制御装置は、
(i)前記洗濯情報に含まれる前記複数の制御情報を分類ルールに基づいて1以上の洗濯工程に分類し、かつ、(ii)前記1以上の洗濯工程のうちの第1洗濯工程に、前記第1洗濯工程に含まれる1以上の第1制御情報で共通する制御に関する共通情報を追加することで、前記洗濯情報を修正し、
修正後の洗濯情報を実行することで前記洗濯情報に基づく運転を前記洗濯機能部に実行させ、
前記1以上の第1制御情報は、前記順番において連続している
洗濯機。
【請求項2】
さらに、
前記洗濯機能部の運転状態を検出する検出部を備え、
前記共通情報は、前記第1洗濯工程が実行されている間における前記運転状態を、前記検出部から前記制御装置が取得するための検出情報を含み、
前記制御装置は、
前記検出情報を実行することで、前記第1洗濯工程が実行されている間における前記運転状態を、前記検出部から取得し、
取得した前記運転状態が所定の条件を満たしたまま前記第1洗濯工程が終了した場合、前記第1洗濯工程の次に第2洗濯工程を前記洗濯機能部に実行させ、
取得した前記運転状態が前記所定の条件を満たさない場合、前記第1洗濯工程を中止して前記第2洗濯工程とは異なる第3洗濯工程を前記洗濯機能部に実行させる
請求項1に記載の洗濯機。
【請求項3】
前記第2洗濯工程は、前記複数の制御情報のうちの、前記順番において前記1以上の第1制御情報の次の第2制御情報を含む
請求項2に記載の洗濯機。
【請求項4】
前記検出情報は、前記第1洗濯工程が実行されている間における前記運転状態を、前記検出部から前記制御装置が逐次的に取得するための情報であり、
前記制御装置は、前記検出情報を実行することで、前記第1洗濯工程が実行されている間における前記運転状態を、前記検出部から逐次的に取得する
請求項2または3に記載の洗濯機。
【請求項5】
前記第1洗濯工程は、給水工程または排水工程であり、
前記検出情報は、前記給水工程または前記排水工程において、前記洗濯機が備える水槽内の水位の変化速度に関する速度情報を検出するための情報であり、
前記所定の条件は、前記速度情報が所定の速度情報の範囲に含まれることであり、
前記制御装置は、
前記速度情報を前記運転状態として前記検出部から取得し、
取得した前記速度情報が前記所定の速度情報の範囲に含まれたまま前記給水工程または前記排水工程が終了した場合、前記給水工程または前記排水工程の次に前記第2洗濯工程を前記洗濯機能部に実行させ、
取得した前記速度情報が前記所定の速度情報の範囲に含まれない場合、前記給水工程または前記排水工程を中止して前記第2洗濯工程とは異なる前記第3洗濯工程を洗濯機能部に実行させる
請求項2から4のいずれか1項に記載の洗濯機。
【請求項6】
前記第1洗濯工程は、給水工程または撹拌工程であり、
前記検出情報は、前記給水工程または前記撹拌工程において、前記洗濯機が備える水槽内の泡の発生状況を検出するための情報であり、
前記所定の条件は、前記泡の発生を検出していないことであり、
前記制御装置は、
前記泡の発生状況を前記運転状態として前記検出部から取得し、
取得した前記泡の発生状況が前記泡の発生を検出していないことを示すまま前記給水工程または前記撹拌工程が終了した場合、前記給水工程または前記撹拌工程の次に前記第2洗濯工程を前記洗濯機能部に実行させ、
取得した前記泡の発生状況が前記泡の発生を検出したことを示す場合、前記給水工程または前記撹拌工程を中止して前記第2洗濯工程とは異なる前記第3洗濯工程を洗濯機能部に実行させる
請求項2から4のいずれか1項に記載の洗濯機。
【請求項7】
前記第1洗濯工程は、乾燥工程であり、
前記検出情報は、前記乾燥工程において、前記洗濯機が備える水槽内へ送風する送風ファンのファンモータの電流値を検出するための情報であり、
前記所定の条件は、前記電流値が第1の閾値以下であることであり、
前記制御装置は、
前記電流値を前記運転状態として前記検出部から取得し、
取得した前記電流値が前記第1の閾値以下のまま前記乾燥工程が終了した場合、前記乾燥工程の次に前記第2洗濯工程を前記洗濯機能部に実行させ、
取得した前記電流値が前記第1の閾値を超えた場合、前記乾燥工程を中止して前記第2洗濯工程とは異なる前記第3洗濯工程を洗濯機能部に実行させる
請求項2から4のいずれか1項に記載の洗濯機。
【請求項8】
前記第1洗濯工程は、脱水工程であり、
前記検出情報は、前記脱水工程において、前記洗濯機が備える水槽の振動の大きさを検出するための情報であり、
前記所定の条件は、前記振動の大きさが第2の閾値以下であることであり、
前記制御装置は、
前記振動の大きさを前記運転状態として前記検出部から取得し、
取得した前記振動の大きさが前記第2の閾値以下のまま前記脱水工程が終了した場合、前記脱水工程の次に前記第2洗濯工程を前記洗濯機能部に実行させ、
取得した前記振動の大きさが前記第2の閾値を超えた場合、前記脱水工程を中止して前記第2洗濯工程とは異なる前記第3洗濯工程を洗濯機能部に実行させる
請求項2から4のいずれか1項に記載の洗濯機。
【請求項9】
さらに、
前記第1洗濯工程の開始からの経過時間を計測する計時部と、
表示部と、を備え、
前記共通情報は、前記第1洗濯工程の開始からの経過時間を前記計時部に計測させ、かつ、前記計時部により計測された前記経過時間に関する時間情報を前記表示部に提示させるための計時情報を含み、
前記制御装置は、前記計時情報を実行することで、前記計時部から得られた前記経過時間に関する時間情報を前記表示部に表示させる
請求項1から8のいずれか1項に記載の洗濯機。
【請求項10】
前記制御装置は、前記1以上の洗濯工程のそれぞれについて、当該洗濯工程を当該洗濯工程用の修正ルールに基づいて修正する
請求項1から9のいずれか1項に記載の洗濯機。
【請求項11】
外部機器と通信可能な洗濯機であって、
前記外部機器から洗濯情報を受信する通信部と、
前記洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、
前記洗濯機能部を制御する制御装置と、
前記洗濯機能部の運転状態を検出する検出部と、を備え、
前記洗濯情報は、それぞれが前記洗濯機能部の運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含み、
前記制御装置は、
前記洗濯情報に含まれる前記複数の制御情報を分類ルールに基づいて1以上の洗濯工程に分類し、
前記1以上の洗濯工程のうちの第1洗濯工程が実行されている間における前記運転状態が所定の条件を満たすか否かに応じて、前記洗濯機能部に前記第1洗濯工程の次に実行させる洗濯工程を決定するための決定情報を前記第1洗濯工程に追加することで、前記洗濯情報を修正し、
修正後の洗濯情報を実行することで前記洗濯情報に基づく運転を前記洗濯機能部に実行させ、
前記1以上の第1制御情報は、前記順番において連続している
洗濯機。
【請求項12】
外部機器と通信可能な洗濯機において実行される制御方法であって、
それぞれが洗濯に関する運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含む洗濯情報を、前記外部機器から受信し、
(i)前記洗濯情報に含まれる前記複数の制御情報を分類ルールに基づいて1以上の洗濯工程に分類し、かつ、(ii)前記1以上の洗濯工程のうちの第1洗濯工程に、前記第1洗濯工程に含まれる1以上の第1制御情報で共通する制御に関する共通情報を追加することで、前記洗濯情報を修正し、
修正後の洗濯情報を実行することで前記洗濯情報に基づく運転を実行し、
前記1以上の第1制御情報は、前記順番において連続している
制御方法。
【請求項13】
外部機器と、前記外部機器と通信可能な洗濯機とを備える制御システムであって、
前記洗濯機は、
前記外部機器から洗濯情報を受信する通信部と、
前記洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、
前記洗濯機能部を制御する制御装置と、を備え、
前記洗濯情報は、それぞれが前記洗濯機能部の運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含み、
前記制御装置は、
(i)前記洗濯情報に含まれる前記複数の制御情報を分類ルールに基づいて1以上の洗濯工程に分類し、かつ、(ii)前記1以上の洗濯工程のうちの第1洗濯工程に、前記第1洗濯工程に含まれる1以上の第1制御情報で共通する制御に関する共通情報を追加することで、前記洗濯情報を修正し、
修正後の洗濯情報を実行することで前記洗濯情報に基づく運転を前記洗濯機能部に実行させ、
前記1以上の第1制御情報は、前記順番において連続している
制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、洗濯機、制御方法、及び、制御システムに関する。
【背景技術】
【0002】
従来、家庭用電化製品及び住宅設備等は、その製造者等によって予め用意された運転条件(制御プログラム)に従って制御される。特許文献1には、ユーザが実施したい洗濯の運転条件を設定可能な洗濯機が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来技術では、製品の製造者等によって予め開発された制御プログラムが製品に予め格納されていなければならず、多様なユーザの望みに合わせて制御プログラムをカスタマイズ及びアップデートすることは難しい。
【0005】
そこで、本開示は、より簡単かつ安全に、多種多彩な制御プログラムを実行することができる洗濯機などを提供する。
【課題を解決するための手段】
【0006】
本開示の一態様に係る洗濯機は、外部機器と通信可能な洗濯機であって、前記外部機器から洗濯情報を受信する通信部と、前記洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、前記洗濯機能部を制御する制御装置と、を備え、前記洗濯情報は、それぞれが前記洗濯機能部の運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含み、前記制御装置は、(i)前記洗濯情報に含まれる前記複数の制御情報を分類ルールに基づいて1以上の洗濯工程に分類し、かつ、(ii)前記1以上の洗濯工程のうちの第1洗濯工程に、前記第1洗濯工程に含まれる1以上の第1制御情報で共通する制御に関する共通情報を追加することで、前記洗濯情報を修正し、修正後の洗濯情報を実行することで前記洗濯情報に基づく運転を前記洗濯機能部に実行させ、前記1以上の第1制御情報は、前記順番において連続している。
【0007】
また、本開示の他の一態様に係る洗濯機は、外部機器と通信可能な洗濯機であって、前記外部機器から洗濯情報を受信する通信部と、前記洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、前記洗濯機能部を制御する制御装置と、前記洗濯機能部の運転状態を検出する検出部と、を備え、前記洗濯情報は、それぞれが前記洗濯機能部の運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含み、前記制御装置は、前記洗濯情報に含まれる前記複数の制御情報を分類ルールに基づいて1以上の洗濯工程に分類し、前記1以上の洗濯工程のうちの第1洗濯工程が実行されている間における前記運転状態が所定の条件を満たすか否かに応じて、前記洗濯機能部に前記第1洗濯工程の次に実行させる洗濯工程を決定するための決定情報を前記第1洗濯工程に追加することで、前記洗濯情報を修正し、修正後の洗濯情報を実行することで前記洗濯情報に基づく運転を前記洗濯機能部に実行させ、前記1以上の第1制御情報は、前記順番において連続している。
【0008】
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0009】
本開示の一態様に係る洗濯機は、より簡単かつ安全に、多種多彩な制御プログラムを実行することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施の形態1におけるシステムのハードウェア構成図である。
【
図2A】
図2Aは、実施の形態1におけるクラウドサーバのハードウェア構成図である。
【
図2B】
図2Bは、実施の形態1における装置のハードウェア構成図である。
【
図2C】
図2Cは、実施の形態1における端末のハードウェア構成図である。
【
図3】
図3は、実施の形態1におけるシステムの機能構成図である。
【
図4】
図4は、洗濯機の構成の一例を示す図である。
【
図5】
図5は、洗濯機の機能構成の一例を示すブロック図である。
【
図6A】
図6Aは、実施の形態1におけるアプリケーションを規定するブロックの第1の例を示す。
【
図6B】
図6Bは、実施の形態1におけるアプリケーションを規定するブロックの第2の例を示す。
【
図6C】
図6Cは、実施の形態1におけるアプリケーションを規定するブロックの第3の例を示す。
【
図6D】
図6Dは、実施の形態1におけるアプリケーションを規定するブロックの第4の例を示す。
【
図6E】
図6Eは、実施の形態1におけるアプリケーションを規定するブロックの第5の例を示す。
【
図6F】
図6Fは、実施の形態1におけるアプリケーションを規定するブロックの第6の例を示す。
【
図6G】
図6Gは、実施の形態1におけるアプリケーションを規定するブロックの第7の例を示す。
【
図6H】
図6Hは、実施の形態1におけるアプリケーションを規定するブロックの第8の例を示す。
【
図6I】
図6Iは、実施の形態1におけるアプリケーションを規定するブロックの第9の例を示す。
【
図6J】
図6Jは、実施の形態1におけるアプリケーションを規定するブロックの第10の例を示す。
【
図6K】
図6Kは、実施の形態1におけるアプリケーションを規定するブロックの第11の例を示す。
【
図6L】
図6Lは、実施の形態1におけるアプリケーションを規定するブロックの第12の例を示す。
【
図6M】
図6Mは、実施の形態1におけるアプリケーションを規定するブロックの第13の例を示す。
【
図6N】
図6Nは、実施の形態1におけるアプリケーションを規定するブロックの第14の例を示す。
【
図6O】
図6Oは、実施の形態1におけるアプリケーションを規定するブロックの第15の例を示す。
【
図6P】
図6Pは、実施の形態1におけるアプリケーションを規定するブロックの第16の例を示す。
【
図7】
図7は、実施の形態1におけるシステムのシーケンス図である。
【
図8】
図8は、実施の形態1におけるデバイスデータベースの一例を示す。
【
図9】
図9は、実施の形態1における実行内容宣言の一例を示す。
【
図10】
図10は、実施の形態1における実行前確認処理のフローチャートを示す。
【
図11】
図11は、実施の形態1におけるルールデータベースの一例を示す。
【
図12】
図12は、実施の形態1における実行内容宣言の修正の第1の例を示す。
【
図13】
図13は、実施の形態1における実行内容宣言の修正の第2の例を示す。
【
図14】
図14は、実施の形態1における実行内容宣言の修正の第3の例を示す。
【
図15】
図15は、実施の形態1における実行内容宣言の修正の第4の例を示す。
【
図16】
図16は、実施の形態1における実行内容宣言の修正の第5の例を示す。
【
図17】
図17は、実施の形態1における実行内容宣言の修正の第6の例を示す。
【
図18】
図18は、実施の形態1における実行内容宣言の修正の第7の例を示す。
【
図19】
図19は、実施の形態1における実行内容宣言の修正の第8の例を示す。
【
図20】
図20は、実施の形態1における実行内容宣言の修正の第9の例を示す。
【
図21】
図21は、実施の形態1の変形例1における分類ルールの一例を示す図である。
【
図22】
図22は、実施の形態1の変形例1における実行前確認処理のフローチャートである。
【
図23A】
図23Aは、実施の形態1の変形例1における実行内容宣言の修正を示す。
【
図23B】
図23Bは、実施の形態1の変形例1における実行内容宣言の修正を示す。
【
図23C】
図23Cは、実施の形態1の変形例1における実行内容宣言の修正を示す。
【
図24】
図24は、実施の形態1の変形例2における実行前確認処理のフローチャートである。
【
図25A】
図25Aは、実施の形態1の変形例2における実行内容宣言の修正の第1の例を示す。
【
図25B】
図25Bは、実施の形態1の変形例2における実行内容宣言の修正の第1の例を示す。
【
図25C】
図25Cは、実施の形態1の変形例2における実行内容宣言の修正の第1の例を示す。
【
図25D】
図25Dは、実施の形態1の変形例2における実行内容宣言の修正の第1の例を示す。
【
図26A】
図26Aは、実施の形態1の変形例2における実行内容宣言の修正の第2の例を示す。
【
図26B】
図26Bは、実施の形態1の変形例2における実行内容宣言の修正の第2の例を示す。
【
図26C】
図26Cは、実施の形態1の変形例2における実行内容宣言の修正の第2の例を示す。
【
図26D】
図26Dは、実施の形態1の変形例2における実行内容宣言の修正の第2の例を示す。
【
図27A】
図27Aは、実施の形態1の変形例4におけるシステムのシーケンス図である。
【
図27B】
図27Bは、実施の形態1の変形例5におけるシステムのシーケンス図である。
【
図27C】
図27Cは、実施の形態1の変形例6におけるシステムのシーケンス図である。
【
図27D】
図27Dは、実施の形態1の変形例7におけるシステムのシーケンス図である。
【
図27E】
図27Eは、実施の形態1の変形例8におけるシステムのシーケンス図である。
【
図28】
図28は、実施の形態2における実行前確認処理のフローチャートを示す。
【
図29】
図29は、実施の形態3における実行前確認処理のフローチャートを示す。
【
図30】
図30は、実施の形態4における実行前確認処理のフローチャートを示す。
【
図31】
図31は、実施の形態4におけるルールデータベースの一例を示す。
【発明を実施するための形態】
【0011】
(本開示の基礎となった知見)
本願発明者らが本開示に至るまでの経緯を説明する。アクチュエータ及び/又は加熱器を有する家庭用電化製品等において、多様なユーザの望みに合わせて制御プログラムを開発するためには、開発環境のオープン化が求められる。すなわち、制御プログラムの開発の難度を低下させて、サードパーティが制御プログラムの開発に容易に参加できる環境が求められる。このような環境では、例えば、アパレル企業が、自社の販売する衣服を洗濯するための洗濯機の制御プログラムを開発することも可能となる。
【0012】
そこで、本発明者らは、製品に含まれるアクチュエータ及び加熱器の制御を抽象化した機能ブロックを用いて、安全面の担保を維持しながら、制御プログラムを開発可能な環境を構築し、複数の機能ブロックの組み合わせからなる制御プログラムをパッケージ化してアプリケーションとして配信可能な仕組みを検討した。これにより、多種多彩なアプリケーションの配信が可能となり、より多様なユーザの望みに応えて製品をカスタマイズ及びアップデートすることが可能となる。しかしながら、このような環境では、危険なアプリケーション(つまり、製品を安全に制御することができないアプリケーション)が配信される可能性があり、製品の安全性が低下する。
【0013】
例えば、家庭用電化製品等に含まれるプログラムは、アクチュエータ及び/又は加熱器を直接制御するための機器に組込まれ、かつ、製造者により開発されたプログラムと、サードパーティにより開発されたプログラムとを互いに入り交じった状態で含むことが想定される。このとき、製造者は、サードパーティに、ノウハウを含む全ての家庭用電化製品等の情報を公開しない可能性が高い。例えば、アクチュエータ及び加熱器を駆動するパラメータ又はタイミングは、製造者の家庭用電化製品等の性能に関わるノウハウである。よって、競争力の低下につながる恐れがあるため、製造者は、サードパーティに、家庭用電化製品等を自在に駆動できるようにノウハウをオープンにする可能性は低い。
【0014】
そのため、サードパーティは、家庭用電化製品等の情報不足により、製造者が想定しない制御の組み合わせ、又はパラメータ範囲を含むアプリケーション、すなわち、安全性が担保されないアプリケーションを作成する可能性がある。このようなアプリケーションがユーザに提供されることは、ユーザに望ましくない。
【0015】
また、家庭用電化製品等の製造者は、新たな制御プログラムを提供することで、ユーザのくらしのアップデートを試みることが考えられる。しかしながら、多種多様な新たな制御プログラムの開発には、パラメータの調整、またはハードの性能評価などの膨大な工数がかかる。家庭用電化製品等は、アクチュエータ及び/又は加熱器のハードが物理的に駆動するため、家庭用電化製品等のプログラムは、スマートフォンのプログラムと比較して、性能評価などの工数が大きくなることが容易に予想される。しかし、大量生産ではなく、ユーザ一人一人の生活に応じたオンデマンド開発が求められる時代において、スマートフォンのプログラムと同様に、家庭用電化製品等の多種多様な制御プログラム開発することが求められる。そのため、製造者は、膨大な工数を低減した上で、製品の安全性を担保する多種多様なアプリケーションを作成しなければならない。
【0016】
さらに、製造者は、サードパーティが提供するアプリケーションを用いて家庭用電化製品等が動作した場合でも、安全に動作することを保証することを望むことが考えられる。このとき、多種多様なアプリケーションを家庭用電化製品等で実際に駆動させて安全性を検証する作業の量を低減することが望まれる。
【0017】
そこで、本開示は、アクチュエータ及び/又は加熱器を駆動する複数の機能ブロックで規定された多種多彩なアプリケーションを、より簡単かつ安全に実行することができる装置等を提供する。
【0018】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0019】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、請求の範囲を限定する主旨ではない。
【0020】
また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化する。
【0021】
(実施の形態1)
[1.1 ハードウェア構成]
本実施の形態におけるシステム1のハードウェア構成について、
図1~
図2Cを参照しながら説明する。
図1は、実施の形態1におけるシステム1のハードウェア構成図である。
図2Aは、実施の形態1におけるクラウドサーバ10のハードウェア構成図である。
図2Bは、実施の形態1における装置20のハードウェア構成図である。
図2Cは、実施の形態1における端末30のハードウェア構成図である。
【0022】
図1及び
図3に示すように、本実施の形態におけるシステム1は、クラウドサーバ10と、施設2a~2dで用いられる装置20a~20hと、端末30a~30dと、を備える。施設2a~2dは、例えば住宅であるが、これに限定されない。施設2a~2dは、例えばマンション、店舗、オフィス等であってもよい。システム1は、制御システムの一例である。
【0023】
クラウドサーバ10は、コンピュータネットワーク(例えばインターネット)を介して提供される仮想的なサーバである。クラウドサーバ10は、コンピュータネットワークを介して、装置20a~20h及び端末30a~30dに通信可能に接続される。なお、クラウドサーバ10の代わりに物理サーバが用いられてもよい。クラウドサーバ10は、外部機器の一例である。
【0024】
図2Aに示すように、クラウドサーバ10は、仮想的に、プロセッサ11と、プロセッサ11に接続されたメモリ12と、を備える。プロセッサ11は、メモリ12に格納されたインストラクション又はソフトウェアプログラムが実行されたときに、後述するシーケンスマネージャ及びデバイスマネージャとして機能する。
【0025】
装置20a~20hは、施設2a~2dで利用される電気機械器具である。なお、
図1では、施設2b~2dで利用される装置20c~20hの図示が省略されている。以下において、装置20a~20hの区別が不要な場合には装置20と記載する。
【0026】
装置20としては、家庭用電化製品(家電)及び住宅設備等を用いることができる。家庭用電化製品(家電)及び住宅設備等は、住宅内で使用される機器に限られず、事業に用いられる機器も含む。なお、本開示では、家庭用電化製品及び住宅設備等を家庭用電化製品等と省略して記載することがある。家電としては、例えば、電子レンジ、炊飯器、ミキサー(Blender)、電気オーブン、電気トースター、電気ポット、ホットプレート、IH(Induction heating)調理器、ロースター、ベーカリー、電気圧力調理なべ、電気無水調理なべ、マルチクッカー、コーヒーメーカー、冷蔵庫、洗濯機、食洗器、掃除機、エアコン、空気清浄機、加湿器、ドライヤー、扇風機、及びイオン発生器等が用いられる。住宅設備としては、例えば、電動シャッター、電子ロック、及び浴槽用の電気湯沸し器等が用いられる。なお、装置20は、これらの機器に限定されない。
【0027】
図2Bに示すように、装置20は、筐体21と、アクチュエータ22と、加熱器23と、制御部24と、を備える。なお、装置20は、アクチュエータ22及び加熱器23の少なくとも1つを備えればよく、アクチュエータ22及び加熱器23の両方を備えなくてもよい。
【0028】
筐体21は、アクチュエータ22と、加熱器23と、制御部24と、を収容する。また、筐体21は、対象物を処理するための内部空間を有してもよい。例えば、洗濯機の洗濯槽、電子レンジの加熱室、及び炊飯器の内釜等が、対象物を処理するための内部空間に相当する。
【0029】
アクチュエータ22は、電気信号に基づいて入力エネルギーを物理的運動に変換する機械要素である。アクチュエータ22としては、例えば電気モータ、油圧シリンダ及び空気圧アクチュエータ等を用いることができるが、これらに限定されない。
【0030】
加熱器23は、電気エネルギーを熱エネルギーに変換する電気加熱器である。加熱器23は、例えばジュール加熱、誘導加熱及び誘電加熱等により対象物を加熱する。加熱器23としては、例えば、ニクロム線、コイル及びマグネトロン等を用いることができる。
【0031】
ここで、本開示の装置20が、アクチュエータ22及び/又は加熱器23を備える理由の一例を説明する。家庭用電化製品等の製造者が、アクチュエータ22及び加熱器23を駆動するパラメータ、駆動の組み合わせを全て自由に制御可能な開発環境をサードパーティに提供した場合を考える。このとき、サードパーティは、製造者が想定しているアクチュエータ22及び/又は加熱器23を安全に駆動できるパラメータ範囲、又はアクチュエータ22及び/又は加熱器23の駆動制限を逸脱して制御するプログラムを作成することが可能になる。特に、物理的に運動するアクチュエータ22、又は熱エネルギーを出力する加熱器23の、製造者の想定していない駆動は、安全性の担保の課題が大きい。製造者の想定していない駆動としては、例えば、アクチュエータの一例である電気モータの高速回転、及び、加熱器23への過電流の供給が挙げられる。本願発明者らは、過度に安全面を考慮することで、ユーザに多種多様なアプリケーションを提供できる環境の構築を阻害しないことを目指した。そこで、物理的に運動するアクチュエータ22、又は熱エネルギーを出力する加熱器23に特化して、安全面を担保することを想定し、本開示の装置20を対象としている。
【0032】
制御部24は、アクチュエータ22及び/又は加熱器23を制御するコントローラであり、後述するデバイスとして機能する。制御部24は、例えば、集積回路で構成される。
【0033】
端末30a~30dは、施設2a~2dでそれぞれ利用され、ユーザインタフェースとして機能する。なお、
図1では、施設2b~2dで利用される端末30b~30dの図示が省略されている。以下において、端末30a~30dの区別が不要な場合には端末30と記載する。
【0034】
端末30は、コンピュータネットワークを介してクラウドサーバ10及び装置20に接続され、後述するユーザインタフェース(UI)として機能する。端末30としては、スマートフォン及びタブレットコンピュータ等の持ち運び可能な情報端末を用いることができる。なお、端末30は、施設2a~2dの壁、床又は天井に固定された端末であってもよい。また、端末30は、装置20に含まれてもよい。例えば、端末30は、各装置20a~20hに内蔵されたディスプレイ等を有する表示端末として実現されてもよい。
【0035】
図2Cに示すように、端末30は、ディスプレイ31と、入力デバイス32と、を備える。ディスプレイ31としては、例えば液晶ディスプレイ及び有機ELディスプレイを用いることができる。入力デバイス32としては、例えばタッチパネル、キーボード、マウス及び機械式ボタン等を用いることができる。また、入力デバイス32として、音声入力デバイスが用いられてもよい。ディスプレイ31と入力デバイス32とは、タッチスクリーンとして一体で実装されてもよい。または、入力デバイス32として、ジェスチャー入力デバイスが用いられてもよい。ジェスチャー入力デバイスは、例えば、カメラと認識部とを有する。カメラはジェスチャーを含む画像を撮像し、認識部は画像を用いてジェスチャーを認識する。
【0036】
[1.2 機能構成]
次に、本実施の形態におけるシステム1の機能構成について、
図3を参照しながら説明する。
図3は、実施の形態1におけるシステム1の機能構成図である。
【0037】
クラウドサーバ10は、シーケンスマネージャ100と、デバイスマネージャ200と、を備える。装置20a~20hは、デバイス300a~300hをそれぞれ備える。端末30a~30dは、UI400a~400dをそれぞれ備える。
【0038】
以下において、デバイス300a~300hの区別が不要な場合にはデバイス300と記載する。また、UI400a~400dの区別が不要な場合にはUI400と記載する。
【0039】
シーケンスマネージャ100は、複数のアプリケーションを管理している。複数のアプリケーションは、例えばユーザの操作によって、アプリケーション配信プラットフォームからシーケンスマネージャ100にダウンロードされる。または、アプリケーション配信プラットフォームに含まれるアプリケーションは、シーケンスマネージャ100にダウンロードされなくてもよい。その場合、シーケンスマネージャ100のデータベースに、アプリケーション配信プラットフォームに含まれるアプリケーションが紐づけていることを示す情報が記録されてもよい。アプリケーションの詳細については後述する。
【0040】
デバイスマネージャ200は、複数の施設2a~2d及び各施設2a~2dで利用されるデバイス300及びUI400を管理するためのデータベースを有する。デバイスマネージャ200は、データベースに、施設2a~2dに紐づくデバイス情報及びUI情報を記録することにより、デバイス300及びUI400を管理する。デバイス情報及びUI情報は、例えば、制御機能及び駆動機能、並びに稼働状況などを含む。例えば、デバイスマネージャ200は、デバイス300の稼働状況を管理して、デバイス300の稼働スケジュールを把握することができる。また、デバイスマネージャ200は、デバイス300のログ情報を管理してもよい。
【0041】
なお、このようなデータベースは、デバイスマネージャ200の代わりにシーケンスマネージャ100が有してもよく、シーケンスマネージャ100及びデバイスマネージャ200の両方が有してもよい。
【0042】
デバイス300は、装置20の制御機能及び駆動機能を有する。デバイス300は、デバイスマネージャ200からの指示に従って装置20を駆動することができる。
【0043】
UI400は、ユーザに情報を提供し、ユーザから入力を受け付ける。
【0044】
次に、装置20の一例として洗濯機500の構成について、
図4および
図5を参照しながら説明する。
図4は、洗濯機500の構成の一例を示す図である。
図5は、洗濯機500の機能構成の一例を示すブロック図である。
【0045】
洗濯機500は、内部空間を有する筐体501を備える。筐体501の前側には、開口が設けられ、筐体501の開口には開閉自在なドア505が設けられている。筐体501の開口には、ドア505のロックをするためのドアロック機構506が設けられている。
【0046】
筐体501の内部には、筐体501に弾性支持された水槽502が設けられている。水槽502は、洗濯機500が備える槽の一例である。水槽502の内部には、前側の一端に開口が形成され、かつ、後側の他端に底が形成されている有底円筒状の洗濯槽503(ドラムとも言う)が回転軸Ax1で回転自在に設けられている。水槽502の内面と洗濯槽503の外面との間には、隙間が形成されている。洗濯槽503の回転軸Ax1は、例えば、洗濯槽503の開口が底よりも上になるように傾斜している。
【0047】
洗濯槽503は、洗濯槽503の側面を貫通する複数の孔が設けられている。水槽502の後面には、洗濯槽503を回転駆動する洗濯モータ504が設けられている。洗濯モータ504は、例えば、直流モータであり、インバータ制御によって回転速度を自在に制御することができる。
【0048】
水槽502の上部には、振動センサ507が設けられている。振動センサ507は、水槽502の振動の度合いを検知する。
【0049】
水槽502の上部には、給水管512が接続されている。給水管512は、水道に接続される。給水管512には、水道からの水の流入を止める給水弁511が設けられている。給水弁511は、例えば、制御信号が入力されることにより電動で開閉する電磁弁である。給水管512には、洗濯槽503内に投入される液体洗剤及び/又は柔軟剤が収容された自動投入機513が設けられている。自動投入機513は、アクチュエータを用いて制御信号に応じた量の液体洗剤及び/又は柔軟剤を計量し、計量した液体洗剤及び/又は柔軟剤を給水管512に投入する装置である。このため、水道からの水と自動投入機513により投入された所定量の液体洗剤及び/又は柔軟剤とは、給水管512において混ざり合って洗濯水となり、水槽502に流入する。なお、自動投入機513は、液体洗剤を投入するためのアクチュエータと、柔軟剤を投入するためのアクチュエータとの両方を有していてもよい。
【0050】
また、洗濯機500には、水槽502の水位を検出する水位センサ(図示せず)が設けられている。水位センサは、水槽502に接続されている給水管512とは別の管に配置され、水槽502の内圧を検出する圧力センサであってもよい。つまり、水槽502の水位は、圧力センサの検出結果を用いて検出される。
【0051】
また、水槽502の上部には、風呂水配管517が接続されている。風呂水配管517には、家庭内の浴槽に貯められた水を導入するためのホースが接続される。風呂水配管517には、浴槽に貯められた水を汲み上げるバスポンプ516が接続されている。バスポンプ516を駆動することで、浴槽からホースを介して浴槽内の水を水槽502の内部に導入するバスポンプによる給水を行うことができる。
【0052】
水槽502の下部には、排水管521が接続されている。排水管521は、洗濯機500の外部に洗濯水を排出する排水ホースに接続されている。排水管521には、排水管521を流れる水の中の異物を取り除くための排水フィルタ522と、排水管521から排水ホースへの水が流れることを止める排水弁523とが設けられている。排水弁523は、例えば、制御信号が入力されることにより電動で開閉する電磁弁である。
【0053】
また、排水管521には、循環用配管525が接続されている。循環用配管525は、一端が排水管521に接続され、他端が水槽502の前側下部に接続されている。排水管521を流れ排水フィルタ522を通過した水を水槽502に戻すための配管である。循環用配管525には、水槽502内の水を循環させる循環ポンプ524が接続されている。循環ポンプ524が駆動すると、排水管521を流れたあと循環用配管525に流入した洗濯水は、循環ポンプ524によって水槽502内に戻される。
【0054】
また、水槽502の前側の上部にはダクト533の一端が接続されており、水槽502の後側の上部にはダクト533の他端が接続されている。ダクト533には、ダクト533内の空気を冷却した後に加熱するヒートポンプ532と、ダクト533の空気を循環させる循環ファン534とが設けられている。ヒートポンプ532は、図示しない冷媒回路により構成され、冷媒回路は、コンプレッサ、凝縮器、膨張弁および蒸発器を有する。冷媒回路内では、コンプレッサが駆動することにより冷媒が循環する。ヒートポンプ532では、ダクト533内の空気は、蒸発器で冷却された後に凝縮器で加熱される。蒸発器で冷却されることで、ダクト533内の空気中の水分が取り除かれ、その後、凝縮器で加熱されることでダクト533内の空気は、温められ乾燥した高温の空気となる。温められ乾燥した高温の空気は、循環ファン534により、水槽502の内部に送風される。これにより、水槽502の内部の衣類などの洗濯物の乾燥が促進される。
【0055】
ダクト533の上流側には、吸気センサ531が設けられる。吸気センサ531は、ダクト533の上流側を流れる空気の温度を検知するセンサである。
【0056】
ダクト533の下流側には、温風センサ535が設けられる。温風センサ535は、ダクト533内の空気の温度を検知する。
【0057】
ダクト533の下流側には、洗濯槽503内の洗濯物を除菌する除菌装置536が設けられる。除菌装置536は、帯電微粒子水などの効能物質を生成する。除菌装置536により生成された効能物質が含まれる空気は、循環ファン534により洗濯槽503の内部に吹き出されるため、洗濯槽503の内部の洗濯物は、効能物質により除菌される。
【0058】
また、水槽502の内部には、水槽502の内部に泡が発生したことを検知する第1泡センサ541および第2泡センサ542が設けられている。第1泡センサ541は、水槽502の内部に第1の量よりも多い泡が発生したことを検知する。第2泡センサ542は、水槽502の内部に第2の量よりも多い泡が発生したことを検知する。第1の量は、第2の量よりも多い。つまり、第1泡センサ541は、第2泡センサ542よりも多くの泡が発生したことを検知する。
【0059】
また、水槽502の下部には、水槽502の洗濯水を加熱するための温水ヒータ543が設けられている。また、水槽502の下部には、水槽502内の洗濯水の温度が所定温度よりも高い温度であることを検知する温水センサ544が設けられている。
【0060】
筐体501の前側上部には、ユーザから洗濯機500の操作のための入力を受け付ける操作パネル560が設けられている。操作パネル560は、ユーザからの入力を受け付けた結果に応じた表示を行ってもよいし、当該結果に応じた音を出力してもよい。また、操作パネル560は、制御装置550による演算結果を表示してもよいし、当該演算結果を示す音を出力してもよい。また、操作パネル560は、洗濯機500の動作状態を表示してもよいし、当該動作状態を示す音を出力してもよい。通信部570は、外部機器と通信可能であり、例えば、コンピュータネットワークに通信可能に接続される通信インタフェースである。通信部570は、無線LAN(Local Area Network)インタフェースであってもよいし、有線LAN(Local Area Network)インタフェースであってもよいし、携帯電話通信網に接続するためのインタフェースであってもよい。また、通信部570は、クラウドサーバ10に通信可能に接続されているハブ機器(図示せず)と通信可能に接続されていてもよい。つまり、通信部570は、ハブ機器を経由してクラウドサーバ10と通信可能に接続されていてもよい。通信部570は、ハブ機器との間で、赤外線・近距離無線通信などによって通信を行ってもよいし、上記で例示した通信インタフェースで通信を行ってもよい。
【0061】
筐体501には、制御装置550が設けられている。制御装置550は、振動センサ507、水位センサ515、吸気センサ531、温風センサ535、第1泡センサ541、第2泡センサ542、及び、温水センサ544の各種センサからの検知結果を取得する。制御装置550は、検知結果に応じて、洗濯モータ504、ドアロック機構506、給水弁511、自動投入機513、バスポンプ516、排水弁523、循環ポンプ524、ヒートポンプ532、循環ファン534、除菌装置536、温水ヒータ543、及び、操作パネル560の動作を制御する。なお、洗濯モータ504、ドアロック機構506、給水弁511、自動投入機513、バスポンプ516、排水弁523、循環ポンプ524、ヒートポンプ532、循環ファン534、除菌装置536、及び、温水ヒータ543は、洗濯物に対して洗濯に関する運転を行う洗濯機能部の一例であり、また、アクチュエータ22又は加熱器23の一例である。また、振動センサ507、水位センサ515、吸気センサ531、温風センサ535、第1泡センサ541、第2泡センサ542、及び、温水センサ544などの各種センサは、洗濯機能部の運転状態を検出する検出部の一例である。また、制御装置550は、洗濯機能部を制御するため、洗濯機能部の運転状態を検出する検出部として機能してもよい。例えば、制御装置550は、洗濯機能部の各動作の経過時間を、洗濯機能部の運転状態として計測してもよい。
【0062】
ここで、アプリケーションについて説明する。本実施の形態では、アプリケーション(以下、略してアプリということもある)とは、アクチュエータ22及び/又は加熱器23を駆動する複数の機能ブロック(以下、略してブロック)で規定される制御プログラムを意味する。複数のブロックの各々は、アクチュエータ22又は加熱器23を駆動するためのパラメータを含むことができる。具体的には、複数のブロックの各々は、アクチュエータ22又は加熱器23の制御を抽象化したものである。なお、複数のブロックの各々は、制御情報の一例である。
【0063】
なお、アプリケーションは、アクチュエータ22及び/又は加熱器23を駆動する複数のブロックに加えて、アクチュエータ22及び/又は加熱器23を駆動しないブロックを含んでもよい。アクチュエータ22及び/又は加熱器23を駆動しないブロックの一例は、デバイス300の有するインタフェースを用いた情報表示、デバイス300の有するブザーを用いた音声出力、デバイス300の有するランプの点灯または消灯などを含む。また、ブロックは、アクチュエータ22又は加熱器23の駆動を開始する条件を含んでもよい。例えば、第1ブロック、第2ブロックを含むアプリケーションを例に説明する。ここで、第1ブロックの実行中に、第2ブロックに切り替える際に、第2ブロックに含まれる開始条件を満たしたときに、第1ブロックから第2ブロックに切り替える。また、ブロックは、開始条件ではなく、終了条件を含んでいてもよい。第1ブロックの実行中に、第2ブロックに切り替える際に、第1ブロックに含まれる終了条件を満たしたときに、第1ブロックから第2ブロックに切り替える。
【0064】
次に、洗濯機500のアプリケーションを規定するブロックの具体例について
図6A~
図6Oを用いて説明する。
図6A~
図6Oで示されるブロックのそれぞれは、洗濯機能部の運転を制御するパラメータに関する制御情報である。
【0065】
図6Aは、実施の形態1におけるアプリケーションを規定するブロックの第1の例を示す。
図6Aに示すブロック1000は、洗濯槽503に投入された衣類などの洗濯物の量を検知する洗濯量検知動作を制御するブロックである。洗濯量検知動作では、例えば、洗濯モータ504を駆動させることで洗濯モータ504に流れるトルク電流を検出することで、検出したトルク電流に予め対応付けられた洗濯量を制御装置550のメモリを参照することで特定し、特定した洗濯量を洗濯槽503内の洗濯量として検知する。
【0066】
図6Bは、実施の形態1におけるアプリケーションを規定するブロックの第2の例を示す。
図6Bに示すブロック1010は、水槽502への給水動作を制御するブロックであり、パラメータ1011、1012を含む。パラメータ1011は、水槽502内への給水量を給水後の水位で示す値を含む。パラメータ1011は、アクチュエータ22及び/又は加熱器23の動作タイミングを示すとも言い換えることができる。制御装置550は、例えば、水位センサ515により検知された水槽502の水位がパラメータ1011で示される水位になるまで給水を継続しておき、パラメータ1011で示される水位になったときに給水を停止する制御を行う。パラメータ1012は、給水経路を指定するパラメータを含む。パラメータ1012は、具体的には、給水弁511を開にすることで給水管512から給水する第1の給水経路での給水か、バスポンプ516を駆動することで風呂水配管517から給水する第2の給水経路での給水かを指定するパラメータである。第1の給水経路での給水の場合、制御装置550は、給水弁511を開にすることで給水を開始し、給水弁511を閉にすることで給水を停止する。第2の給水経路での給水の場合、制御装置550は、バスポンプ516の駆動を開始することで給水を開始し、バスポンプ516の駆動を停止することで給水を停止する。
【0067】
なお、給水動作において第2の給水経路で給水が行われる場合において、所定期間(例えば、5~10分間)経過してもパラメータ1011で示される水位にならなかった場合、制御装置550は、第2の給水経路から第1の給水経路に切り替えて給水を行ってもよい。
【0068】
図6Cは、実施の形態1におけるアプリケーションを規定するブロックの第3の例を示す。
図6Cに示すブロック1020は、水槽502への注水濯ぎ動作を制御するブロックであり、パラメータ1021~1025を含む。注水濯ぎ動作は、水槽502へ水を供給しながら洗濯槽503を回転させて洗濯物および水を撹拌することで洗濯物を濯ぐ動作である。注水濯ぎ動作では、例えば、上限水位から下限水位までの間で、給水または排水を繰り返すことで水槽502内の水位を上下させながら、洗濯槽503を回転させて洗濯物を濯ぐ動作である。パラメータ1021は、注水濯ぎ動作において水槽502へ給水するときの水位の上限を示す値を含む。パラメータ1021は、給水を停止し、かつ、排水弁523を開にする動作のトリガとなる水位を示すとも言い換えることができる。パラメータ1022は、水槽502へ給水するときの水位の下限を示す値を含む。パラメータ1022は、給水を開始し、かつ、排水弁523を閉にする動作のトリガとなる水位を示すとも言い換えることができる。このように、パラメータ1021、1022は、アクチュエータ22及び/又は加熱器23の動作タイミングを示すとも言い換えることができる。パラメータ1023は、注水濯ぎ動作の動作時間を示す値を含む。パラメータ1023は、アクチュエータ22及び/又は加熱器23の駆動時間を示すとも言い換えることができる。パラメータ1024は、洗濯槽503の回転数(回転速度)、つまり、洗濯モータ504の回転速度を示す値を含む。パラメータ1025は、撹拌強さを示す値を含む。撹拌強さを示す値は、例えば、濯ぎ動作における1回の洗濯槽503の回転が開始されてからパラメータ1024で示される回転速度に到達させるまでの時間を示す値である。パラメータ1024、1025は、アクチュエータ22及び/又は加熱器23の駆動の強度を示すとも言い換えることができる。
【0069】
図6Dは、実施の形態1におけるアプリケーションを規定するブロックの第4の例を示す。
図6Dに示すブロック1030は、洗剤投入動作を制御するブロックであり、パラメータ1031を含む。洗剤投入動作は、自動投入機513のアクチュエータを駆動することで給水管512に所定量の液体洗剤を自動的に投入する動作である。パラメータ1031は、給水管512への液体洗剤の投入量を示す値を含む。パラメータ1031は、自動投入機513の液体洗剤を投入するアクチュエータの動作量を示すとも言い換えることができる。
【0070】
図6Eは、実施の形態1におけるアプリケーションを規定するブロックの第5の例を示す。
図6Eに示すブロック1040は、柔軟剤投入動作を制御するブロックであり、パラメータ1041を含む。柔軟剤投入動作は、自動投入機513のアクチュエータを駆動することで給水管512に所定量の柔軟剤を自動的に投入する動作である。パラメータ1041は、給水管512への柔軟剤の投入量を示す値を含む。パラメータ1041は、自動投入機513の柔軟剤を投入するアクチュエータの動作量を示すとも言い換えることができる。
【0071】
図6Fは、実施の形態1におけるアプリケーションを規定するブロックの第6の例を示す。
図6Fに示すブロック1050は、洗濯機の撹拌動作を制御するブロックであり、パラメータ1051~1058を含む。パラメータ1051は、撹拌の種類を示す情報(例えば、通常、もみ洗い、揺り)を含む。パラメータ1051は、機能の種類を示すとも言い換えることができる。パラメータ1052は、ドラム(洗濯槽503)の回転数(回転速度)、つまり、洗濯モータ504の回転速度を示す値を含む。パラメータ1052は、アクチュエータ22及び/又は加熱器23の駆動の強度を示すとも言い換えることができる。パラメータ1053は、撹拌動作における1回の洗濯槽503の回転時間、つまり、洗濯モータ504の駆動時間を示す値を含む。パラメータ1054は、撹拌動作における洗濯槽503の1回の回転動作と次の回転動作の間の回転を停止している時間、つまり、洗濯モータ504の停止時間を示す値を含む。パラメータ1055は、撹拌動作の動作時間を示す値を含む。パラメータ1053~1055は、アクチュエータ22及び/又は加熱器23の駆動時間を示すとも言い換えることができる。パラメータ1056は、水槽502内への給水を開始することを示す値を含む。つまり、パラメータ1056は、給水弁511を開状態にすることを示す値を含む。パラメータ1056は、アクチュエータ22及び/又は加熱器23の駆動後の状態を示すとも言い換えることができる。パラメータ1057は、循環ポンプの回転方向(正転又は反転)を示す値を含む。パラメータ1058は、撹拌強さを示す値を含む。撹拌強さを示す値は、例えば、濯ぎ動作における1回の洗濯槽503の回転が開始されてからパラメータ1052で示される回転速度に到達させるまでの時間を示す値である。なお、ブロック1050は、水槽502内の水温が所定の温度に上昇するまで温水ヒータ543を駆動するパラメータを含んでいてもよい。
【0072】
制御装置550は、撹拌動作において、パラメータ1051で示される種類の撹拌を行う。制御装置550は、パラメータ1052で示される回転数で洗濯モータ504をパラメータ1056で示される撹拌強さで回転させ、撹拌動作の開始からパラメータ1055で示される動作時間が経過すると洗濯モータ504を停止する。また、制御装置550は、撹拌動作において、パラメータ1056に基づいて給水弁511を開にする。また、制御装置550は、撹拌動作において、パラメータ1057で示される回転方向に循環ポンプ524を動作させる。
【0073】
図6Gは、実施の形態1におけるアプリケーションを規定するブロックの第7の例を示す。
図6Gに示すブロック1060は、ドラム回転動作を制御するブロックであり、パラメータ1061~1065を含む。パラメータ1061は、ドラム(洗濯槽503)の回転数(回転速度)、つまり、洗濯モータ504の回転速度を示す値を含む。パラメータ1061は、アクチュエータ22及び/又は加熱器23の駆動の強度を示すとも言い換えることができる。パラメータ1062は、ドラム(洗濯槽503)の回転方向を示す値を含む。パラメータ1062は、アクチュエータ22及び/又は加熱器23の動作の種類を示すとも言い換えることができる。パラメータ1063は、自動投入機513のアクチュエータを駆動することで給水管512に所定量の液体洗剤を自動的に投入する動作をONにするかOFFにするかを示す値を含む。パラメータ1064は、水槽502内への給水を開始することを示す値を含む。つまり、パラメータ1064は、給水弁511を開状態にすることを示す値を含む。パラメータ1064は、アクチュエータ22及び/又は加熱器23の駆動後の状態を示すとも言い換えることができる。パラメータ1065は、循環ポンプ524の回転方向(正転又は反転)を示す値を含む。なお、ブロック1060は、水槽502内の水温が所定の温度に上昇するまで温水ヒータ543を駆動するパラメータを含んでいてもよい。
【0074】
制御装置550は、ドラム回転動作において、パラメータ1061で示される回転数で洗濯モータ504をパラメータ1062で示される回転方向で回転させる。また、制御装置550は、ドラム回転動作において、パラメータ1063に基づいて給水弁511を開にする。また、制御装置550は、ドラム回転動作において、パラメータ1064に基づく方向に循環ポンプ524を動作させる。
【0075】
図6Hは、実施の形態1におけるアプリケーションを規定するブロックの第8の例を示す。
図6Hに示すブロック1070は、脱水動作を制御するブロックであり、パラメータ1071、1072を含む。パラメータ1071は、ドラム(洗濯槽503)の回転数(回転速度)、つまり、洗濯モータ504の回転速度を示す値を含む。パラメータ1071は、アクチュエータ22及び/又は加熱器23の駆動の強度を示すとも言い換えることができる。パラメータ1072は、脱水動作の動作時間を示す値を含む。制御装置550は、脱水動作において、パラメータ1071に示される回転数で洗濯モータ504を回転させ、脱水動作の開始からパラメータ1072で示される動作時間が経過すると洗濯モータ504を停止する。
【0076】
図6Iは、実施の形態1におけるアプリケーションを規定するブロックの第9の例を示す。
図6Iに示すブロック1080は、水槽502からの排水動作を制御するブロックであり、パラメータ1081、1082を含む。パラメータ1081は、排水弁523の開状態又は閉状態を示す値を含む。パラメータ1082は、排水を停止するトリガとなる水位を示す値を含む。制御装置550は、排水動作において、排水弁523を開状態に動作させることで水槽502内の洗濯水を洗濯機500外への排水動作を開始する。制御装置550は、その後水位センサにより水槽502の水位がパラメータ1082で示される水位であることが検知されると排水弁523を閉状態に動作させて、排水動作を終了する。
【0077】
図6Jは、実施の形態1におけるアプリケーションを規定するブロックの第10の例を示す。
図6Jに示すブロック1090は、ドアロック動作を制御するブロックであり、パラメータ1091を含む。パラメータ1091は、ドアロック機構506をロック状態にするかロック解除状態にするかを示す値を含む。パラメータ1091は、アクチュエータ22及び/又は加熱器23の駆動後の状態を示すとも言い換えることができる。制御装置550は、パラメータ1091がドアロック機構506をロック状態にすることが示されている場合で、ドアロック機構506がロック解除状態である場合、ドアロック機構506をロック状態に切り替える。制御装置550は、パラメータ1091がドアロック機構506をロック解除状態にすることが示されている場合で、ドアロック機構506がロック状態である場合、ドアロック機構506をロック解除状態に切り替える。
【0078】
図6Kは、実施の形態1におけるアプリケーションを規定するブロックの第11の例を示す。
図6Kに示すブロック1100は、浸漬動作を制御するブロックであり、パラメータ1101、1102を含む。パラメータ1101は、循環ポンプ524の回転方向(正転又は反転)を示す値を含む。パラメータ1102は、浸漬動作の動作時間を示す値を含む。制御装置550は、パラメータ1101で示される回転方向に循環ポンプ524を動作させ、浸漬動作の開始からパラメータ1102で示される動作時間が経過すると循環ポンプ524を停止する。
【0079】
図6Lは、実施の形態1におけるアプリケーションを規定するブロックの第12の例を示す。
図6Lに示すブロック1110は、除菌・抗菌動作を制御するブロックであり、パラメータ1111、1112を含む。パラメータ1111は、除菌装置536及び循環ファン534を駆動させる動作時間を示す値を含む。パラメータ1112は、循環ファン534の回転数(回転速度)を示す値を含む。制御装置550は、除菌・抗菌動作において、除菌装置536及び循環ファン534を駆動させ、パラメータ1111で示される動作時間が経過すると除菌装置536及び循環ファン534を停止する。除菌・抗菌動作において、制御装置550は、循環ファン534をパラメータ1112で示される回転数(回転速度)で駆動する。
【0080】
図6Mは、実施の形態1におけるアプリケーションを規定するブロックの第13の例を示す。
図6Mに示すブロック1120は、ブザー動作を制御するブロックであり、パラメータ1121を含む。パラメータ1121は、操作パネル560のスピーカを駆動させる動作時間を示す値を含む。制御装置550は、ブザー動作において、ブザー音を出力し、ブザー音の出力を開始してからパラメータ1121で示される動作時間が経過するとブザー音の出力を停止する。
【0081】
図6Nは、実施の形態1におけるアプリケーションを規定するブロックの第14の例を示す。
図6Nに示すブロック1130は、送風動作を制御するブロックであり、パラメータ1131、1132を含む。パラメータ1131は、循環ファン534を駆動させる動作時間を示す値を含む。パラメータ1132は、循環ファン534により水槽502内に送風される空気の温度を示す値を含む。制御装置550は、送風動作において、循環ファン534を駆動させ、循環ファン534の駆動を開始してからパラメータ1131で示される動作時間が経過すると循環ファン534を停止する。または、制御装置550は、送風動作において、循環ファン534を駆動させ、循環ファン534の駆動を開始してからパラメータ1132で示される温度以下に低下したことが温風センサ535で検知されると循環ファン534を停止する。
【0082】
図6Oは、実施の形態1におけるアプリケーションを規定するブロックの第15の例を示す。
図6Oに示すブロック1140は、乾燥動作を制御するブロックであり、パラメータ1141を含む。パラメータ1141は、低温、標準、しっかりなどの乾燥動作のパターン(動作モード)を示す値を含む。具体的には、低温のパターンでは、洗濯槽503内の温度が所定温度より低い低温での乾燥が行われる。標準のパターンでは、洗濯槽503内の温度が所定温度より高い標準の温度での乾燥が行われる。しっかりのパターンでは、洗濯槽503内が乾燥状態であることが検知された後から一定時間の乾燥が継続される。制御装置550は、吸気センサ531により検出された吸気側の温度と、温風センサ535により検出された排気側の温度との差が所定の差未満である場合に、乾燥状態であると判断する。なお、それぞれのパターンは、乾燥動作の時間[m]、循環ファン534のファン回転数[rpm]、吸気センサ531及び/又は温風センサ535による乾燥検知温度[deg]、パラメータ1051と同じ撹拌種類、パラメータ1052と同じドラム回転数[rpm]、パラメータ1053と同じドラムON時間[s]、パラメータ1054と同じドラムOFF時間[s]などの組み合わせにより構成されていてもよい。
【0083】
図6Pは、実施の形態1におけるアプリケーションを規定するブロックの第16の例を示す。
図6Pに示すブロック1150は、泡生成動作を制御するブロックであり、パラメータ1151~1153を含む。パラメータ1151は、洗濯槽503の回転数(回転速度)、つまり、洗濯モータ504の回転速度を示す値を含む。パラメータ1152は、ドラム(洗濯槽503)の回転方向を示す値を含む。パラメータ1152は、アクチュエータ22及び/又は加熱器23の動作の種類を示すとも言い換えることができる。パラメータ1153は、泡生成動作の動作時間を示す値を含む。制御装置550は、泡生成動作において、パラメータ1153に示される回転数で洗濯モータ504を回転させ、泡生成動作の開始からパラメータ1153で示される動作時間が経過すると洗濯モータ504を停止する。
【0084】
アプリケーションを規定するためには、
図6A~
図6Oで示したようなブロックが複数用いられる。なお、
図6A~
図6Oに示す複数のブロックは例示であり、洗濯機500のためのブロックは、これらに限定されない。例えば、複数のブロックは、抽象化レベルによって階層化されてもよい。
【0085】
例えば、製造者向けの階層と製造者以外向けの階層とで抽象化レベルを変更してもよい。製造者以外の例は、他の製造者向けの階層、サードパーティ向けの階層である。
【0086】
この時、製造者向けの階層は、製造者以外向けの階層より抽象度が低い。抽象度が低いことは、アクチュエータ及び加熱器を駆動するパラメータに近い内容が制御されることを意味する。
【0087】
一方、製作者は、ノウハウ及び安全性を担保する最小の抽象化レベルを有するブロックを製造者以外向けに提供することで、製造者以外がアプリケーションを開発可能にする。製造者は、一般ユーザに、さらに高い抽象化レベルを有するブロックを提供することで、より多くの人がアプリケーションを開発可能にできる。さらに高い抽象化レベルは、例えば、一般ユーザ自身が専門的な知識がなくても理解できる用語で規定されたブロックに対応する。専門的な知識がなくても理解できる用語は、例えば、家庭用電化製品等の機能自体に対応する内容である。具体的には、洗濯機においての「洗い」ブロック中の水量に関するパラメータとして「たっぷり」を選択した場合に、一つの具体化されたレイヤーにおいては、給水ブロックにおける水位パラメータを60mmから100mmに上げ、撹拌ブロックにおける回転量パラメータを120rpmから100rpmに下げるなどの変更が行われる。上記より、抽象度の高いレベルにおけるブロックの並べ替え及びパラメータ変更は、より抽象度の低いブロックで実現することができる。これらのブロックにより、アクチュエータ及び加熱器の駆動に関する安全性、秘匿性を担保しながら、その組替、パラメータ調整によって自由にアプリケーション開発を行うことができる。
【0088】
[1.3 処理]
次に、以上のように構成されたシステム1の処理について
図7を参照しながら説明する。
図7は、実施の形態1におけるシステム1のシーケンス図である。
【0089】
[1.3.1 準備フェーズF100]
まず、準備フェーズF100について説明する。
【0090】
(ステップS110)
シーケンスマネージャ100は、デバイスマネージャ200にシーケンスマネージャ情報を送信する。このシーケンスマネージャ情報の送信は、例えばシステム管理者の命令により行われる。デバイスマネージャ200は、受信したシーケンスマネージャ情報を例えばシーケンスマネージャデータベースに登録する。なお、シーケンスマネージャ情報がシーケンスマネージャデータベースに予め登録されている場合は、このステップはスキップされてもよい。
【0091】
シーケンスマネージャ情報は、例えばシーケンスマネージャ100の識別子及び/又はアドレス(例えばURL(Uniform Resource Locator)、IP(Internet Protocol)アドレス等)を含む。さらに、シーケンスマネージャ情報は、任意の情報を含んでもよい。
【0092】
(ステップS112)
デバイス300は、デバイスマネージャ200にデバイス情報1201を送信する。このデバイス情報1201の送信は、例えばデバイス300がコンピュータネットワークに接続されたときに行われる。デバイスマネージャ200は、受信したデバイス情報1201をデバイスデータベース1200に登録する。なお、デバイス情報1201がデバイスデータベース1200に予め登録されている場合は、このステップはスキップされてもよい。
【0093】
なお、デバイス情報1201は、UI400に送信されてから、UI400を介してデバイスマネージャ200に登録されてもよい。
【0094】
デバイス情報1201は、デバイス300の識別子及び/又はアドレスを含む。さらに、デバイス情報1201は、任意の情報を含んでもよい。
図8は、実施の形態1におけるデバイスデータベースの一例を示す。
図8のデバイスデータベース1200には、デバイス情報1201を含む複数のデバイス情報が登録されている。各デバイス情報は、デバイスIDと、アドレスと、種別と、製造者名と、アクチュエータ/加熱器と、劣化レベルと、を含む。アクチュエータ/加熱器は、デバイス300を構成するアクチュエータ22及び/又は加熱器23の識別情報である。劣化レベルは、デバイス300を構成するアクチュエータ22及び/又は加熱器23が劣化しているか否かを示す劣化情報の一例である。ここでは、劣化レベルは、値が増加すればより劣化していることを示す。デバイス情報1201に、実行可能なブロックの情報が含まれていてもよい。実行可能なブロックに関する情報とは、データベースに含まれるブロックが実行可能又は実行不可能が対応付けられた情報でもよいし、実行可能なブロックのみの情報でもよい。また、ブロックが実行可能か否かは、デバイス情報1201に含まれるアクチュエータ/加熱器などの情報に基づいて予め準備され得る。
【0095】
なお、デバイス情報1201は、施設2a~2dを特定可能な情報を含んでもよい。
【0096】
(ステップS114)
UI400は、デバイスマネージャ200にUI情報を送信する。このUI情報の送信は、例えばユーザの指示により行われる。デバイスマネージャ200は、受信したUI情報を例えばUIデータベースに登録する。なお、UI情報がUIデータベースに予め登録されている場合は、このステップはスキップされてもよい。
【0097】
UI情報は、例えばUI400の識別子及び/又はアドレスを含む。さらに、UI情報は、任意の情報を含んでもよい。
【0098】
なお、UI情報は、施設2a~2dを特定可能な情報を含んでもよい。
【0099】
以上の処理により、シーケンスマネージャ100、デバイスマネージャ200、デバイス300及びUI400は、互いに紐づけられ、互いに接続を確立することができる。このより、準備フェーズF100が終了する。
【0100】
[1.3.2 アプリ実行前フェーズF200]
次に、アプリ実行前フェーズF200について説明する。なお、アプリ実行前フェーズF200の前には、UI400を介したユーザからの指示に従って、アプリケーション配信プラットフォームからシーケンスマネージャ100にアプリケーションがダウンロードされている。このようにシーケンスマネージャ100にアプリケーションがダウンロードされた状態で以下の処理が行われる。
【0101】
(ステップS210)
UI400は、ユーザからアプリ実行要求を受け付け、アプリケーションの識別情報を含むアプリ実行要求をシーケンスマネージャ100に送信する。例えば、ユーザは、UI400を介して、シーケンスマネージャ100にダウンロードされている複数のアプリケーションの中からアプリケーションを選択し、選択したアプリケーションの実行を指示する。
【0102】
なお、UI400からシーケンスマネージャ100に送信されるアプリ実行要求は、施設2a~2dを特定可能な情報とセットで送信される。
【0103】
なお、アプリ実行要求は、ユーザから明示的に受け付けられなくてもよい。例えば、ユーザの行動又は状態を検出し、検出結果に基づいて自動的にアプリ実行要求がシーケンスマネージャ100に送信されてもよい。
【0104】
(ステップS212)
シーケンスマネージャ100は、アプリ実行要求によって識別されたアプリケーションの実行内容宣言をデバイスマネージャ200に送信する。実行内容宣言は、実行するアプリケーションを規定する複数のブロックの情報及び施設2a~2dを特定可能な情報を含む。
【0105】
図9は、実施の形態1における実行内容宣言の一例を示す図である。
図9には、
図6A~
図6Oに示す洗濯機のための複数のブロックを組み合わせて規定されたアプリケーションのための実行内容宣言1300が表されている。実行内容宣言1300は、複数のブロック1301、及び、各ブロック1301の実行に必要なデバイスに関する情報1302、及び、各ブロック1301を実行する順番に関する順番情報1303を含む。実行内容宣言1300は、洗濯情報の一例である。
【0106】
なお、実行内容宣言1300は、デバイスに関する情報1302を含まなくてもよい。その場合、複数のブロック1301の情報から、受け取った施設情報が示す施設で該当ブロックを実行可能なデバイスを、デバイスマネージャ200が検索してデバイス割付けを行う必要がある。
【0107】
なお、
図9では、デバイスに関する情報1302は、デバイス300の型番を示しているが、これに限定されない。デバイスに関する情報1302は、ブロックに割付可能なデバイス300の条件を示すことができれば、どのような情報であってもよい。例えば、デバイスに関する情報1302は、複数の型番を含んでもよいし、デバイスの種別、使用目的、配置場所、又は、これらの任意の組み合わせのみを含んでもよい。
【0108】
(ステップS214)
デバイスマネージャ200は、実行内容宣言1300に含まれる各ブロックに対して、施設2a~2dを特定可能な情報を基にして、デバイスマネージャ200に紐付けられているデバイス300を割り付ける。例えば、デバイスマネージャ200は、
図9に示す複数のブロック1301の各々に、
図8のデバイスデータベース1200に、受け取った施設情報が示す施設に接続済として登録されている、型番WM-0001を有するデバイスDEV001を割り付ける。なお、デバイス300の稼働状態又はクラウドへの接続状態が管理されている場合には、稼働中のデバイス300の割り付けが禁止されてもよい。
【0109】
なお、例えば
図9に示す複数のブロックが、受け取った施設情報が示す施設に接続済として登録されていない場合、すなわち、該当施設において対象デバイスが存在していない場合、デバイスマネージャ200は実行内容宣言されたアプリケーションの実行が不可であることをシーケンスマネージャ100に通知する。
【0110】
(ステップS215)
デバイスマネージャ200は、デバイス割り付けの結果をデバイス300に通知する。これにより、アプリケーションに含まれる複数のブロックが、それぞれ割り付けられたデバイス300に送信される。
【0111】
(ステップS216)
デバイス300は、ブロックの実行前にブロックを確認する。つまり、デバイス300は、ブロックを実行する前に、ブロックが実行されたときにデバイス300で問題が生じないかをチェックする。例えばデバイス300は、安全及び/又は効率上の問題をチェックする。
【0112】
そして、デバイス300は、確認結果に基づいて、ブロックを変更する。これにより、問題が生じないようにブロックが修正される。
【0113】
このような実行前確認処理について、
図10を参照しながら、さらに詳細に説明する。
図10は、実施の形態1における実行前確認処理のフローチャートを示す。
【0114】
(ステップS2165)
デバイス300は、ブロックに対応するルールを取得する。ルールは、洗濯の順番に関するルールである。ルールでは、第1ブロック(第1の制御情報)の次に第2ブロック(第2の制御情報)が実行される実行内容宣言1300が許容されるか否かが規定されている。つまり、ルールでは、実行内容宣言1300で規定されている複数のブロック1301の内の連続して実行される2つのブロックの順番が許容されるか否かが規定されている。例えば、デバイス300は、ルールデータベースを参照して、連続して実行される2つのブロックの順番が許容されない条件を取得する。ルールデータベースは、例えばデバイス300に含まれてもよいし、シーケンスマネージャ100又はデバイスマネージャ200に含まれてもよい。
【0115】
以下、ルールデータベース1400で規定されるルールについて
図11を参照しながら、具体的に説明する。
図11は、実施の形態1におけるルールデータベースの一例を示す。
図11のルールデータベース1400には、第1のルール1401、第2のルール1402、第3のルール1403、第4のルール1404、及び、第5のルール1405が登録されている。第1のルール1401、第2のルール1402、第3のルール1403、第4のルール1404、及び、第5のルール1405の各々は、第1ブロック(第1の制御情報)の次に第2ブロック(第2の制御情報)が実行されることが許容されないことが規定されている。つまり、第1のルール1401、第2のルール1402、第3のルール1403、第4のルール1404、及び、第5のルール1405の各々は、洗濯の順番に関するルールである。
【0116】
第1のルール1401では、例えば、第1ブロックが洗濯機500の水槽502への給水に関するパラメータを含み、かつ、第2ブロックが禁水環境で実行される運転を制御するパラメータを含むことが許容されない。この場合の第1ブロックは、例えば、ブロック1010、1020、1050、1060である。禁水環境で実行される運転は、水槽502に水が貯められているときに実行されることが許容されない運転を含む。禁水環境は、具体的には、水槽502の水位が所定の水位(例えば、水位センサが検知可能な最低水位)よりも低い水位であることである。つまり、水槽502に水が貯められているときとは、水槽502の水位が所定の水位以上の水位であることである。第2ブロックは、例えば、ブロック1000、1070、1110などである。ブロック1000の洗濯量検知動作が禁水環境で実行される運転であるのは、洗濯物が浸水している状態では、精度よく洗濯物の量を検知することが難しいからである。また、ブロック1070の脱水動作が禁水環境で実行される運転であるのは、洗濯物が浸水している状態では、効果的に脱水することが難しいからである。また、ブロック1110の除菌・抗菌動作が禁水環境で実行される運転であるのは、洗濯物が浸水している状態では、帯電微粒子水などの効能物質が含まれる空気を洗濯槽503へ放出しても効能物質の性能が十分に得られないからである。
【0117】
第2のルール1402では、例えば、第1ブロックが洗濯機500の水槽502内の加熱に関するパラメータを含み、かつ、第2ブロックが禁熱環境で実行される運転を制御するパラメータを含むことが許容されない。この場合の第1ブロックは、例えば、ブロック1140である。また、この場合の第1ブロックは、温水ヒータ543を水槽502内の洗濯水の温度が所定の水温(例えば60度)以上になるまで駆動するパラメータを含む場合のブロック1050、1060などであってもよい。禁熱環境で実行される運転は、水槽502内の温度が所定の温度以上のときに実行されることが許容されない運転を含む。禁熱環境は、具体的には、水槽502内の空間の温度が所定の温度未満となること、または、水槽502内の洗濯水の温度が所定の水温未満となることである。第2ブロックは、例えば、パラメータ1081が排水弁523を示す場合のブロック1080、パラメータ1091がドアロックを解除することを示す場合のブロック1090などである。ブロック1080の排水動作が禁熱環境で実行される運転であるのは、高温水が洗濯機500の外部の排水管に流れることで、排水管が熱で変形したり破損したりすることを防止するためである。ブロック1090のドアロックの解除動作が禁熱環境で実行される運転であるのは、ユーザがドア505を開けて洗濯槽503内の洗濯物を取り出そうとしたときにユーザが高温の洗濯物に触れることを防止するためである。
【0118】
第3のルール1403では、例えば、第1ブロックが水が貯められている洗濯機500の洗濯槽503の回転に関するパラメータを含み、かつ、第2ブロックが禁動環境で実行される運転を制御するパラメータを含むことが許容されない。この場合の第1ブロックは、例えば、ブロック1050、1060、1070などである。禁動環境で実行される運転は、水槽502(または洗濯槽503)内の水面を動かすことが許容されない運転を含む。禁動環境は、具体的には、水槽502(または洗濯槽503)が所定の振幅(または所定の変位)未満で振動または静止していることである。第2ブロックは、例えば、ブロック1010、1020などである。ブロック1010が禁動環境で実行される運転であるのは、水面が動いている状態では正確に水位を検知することが難しいからである。
【0119】
なお、図示していないが、例えば、撹拌動作を実行しながら給水動作を実行するブロックにおいて撹拌動作を開始して所定時間後に給水動作を開始する場合、撹拌動作のサブブロックを第1ブロックとみなし、給水動作のサブブロックを第2ブロックとみなしてもよい。
【0120】
第4のルール1404では、例えば、第1ブロックが洗濯機500の水槽502(または洗濯槽503)内への送風に関するパラメータを含み、かつ、第2ブロックが禁動環境で実行される運転を制御するパラメータを含むことが許容されない。この場合の第1ブロックは、例えば、ブロック1130、1140などである。禁動環境で実行される運転は、水槽502(または洗濯槽503)内の水面を動かすことが許容されない運転を含む。禁動環境は、具体的には、水槽502(または洗濯槽503)内の水位が所定の振幅(または所定の変位)未満で振動または静止していることである。第2ブロックは、例えば、ブロック1010、1020などである。ブロック1010が禁動環境で実行される運転であるのは、水面が動いている状態では正確に水位を検知することが難しいからである。
【0121】
第5のルール1405では、例えば、第1ブロックが洗濯機500の洗濯槽503を第1の回転で回転させるパラメータを含み、かつ、第2ブロックが第1の回転とは異なる第2の回転で洗濯槽503を回転させるパラメータを含むことが許容されない。ここで、第1の回転と第2の回転との回転が異なるとは、それぞれの回転速度が互いに異なることであってもよい。つまり、第1の回転における第1回転速度は、第2の回転の第2回転速度と異なっていてもよい。また、第1の回転と第2の回転との回転が異なるとは、それぞれの回転の向きが互いに異なることであってもよい。つまり、第1の回転の向きは、第2の回転の向きと異なっていてもよい。
【0122】
この場合の第1ブロックは、例えば、ブロック1050、1060、1070などである。第2ブロックは、例えば、第1ブロックとは回転が異なるブロック1050、1060、1070などである。
【0123】
なお、
図11では、第1のルール1401、第2のルール1402、第3のルール1403、第4のルール1404、及び、第5のルール1405の各々は、第1ブロックの次に第2ブロックが実行されることが許容されないことが規定されているとしたが、第1ブロックの次に第2ブロックが実行されることが許容されることが規定されていてもよい。この場合であっても、ルールとして規定されていない組み合わせの第1ブロックおよび第2ブロックの組み合わせの実行が許容されないこととして定義することができる。
【0124】
例えば、アクチュエータ22又は加熱器23は、筐体21の内部空間などのデバイス300の環境に応じて安全に駆動できるパラメータが変わり、許容されるブロックの順番はアクチュエータ22又は加熱器23自体の性能のみに依存しない場合がある。したがって、いずれの環境でも安全に駆動するために、安全性を考慮する比重が高い順番になり、多種多様なアプリケーションの開発の余地が低減することになる。そこで、ルールは、アプリケーションと独立して、デバイス300等の情報と対応付けられてもよい。そのようなルールが用いられることで、安全性及び多種多様なアプリケーションの開発を両立できる。
【0125】
ルールは、アクチュエータ22又は加熱器23が安全に駆動できる順番で組み合わせられた複数のブロックに関連する。安全に駆動できる順番で組み合わせられた複数のブロックは、ブロックの開始条件又は終了条件を考慮された順番であってもよい。第2ブロックの開始条件に達するまで、第1ブロックを実行することで、アクチュエータ22又は加熱器23の安全性に影響がある負荷かかる場合を想定したブロックが実行される順番が設定され得る。つまり、ブロックが実行される順番は、アクチュエータ22又は加熱器23の性能、ブロックの開始条件又は終了条件などに依存する。
【0126】
第1のルール1401、第2のルール1402、第3のルール1403、第4のルール1404、及び、第5のルール1405の各々は、さらに、種別と、製造者名と、アクチュエータ/加熱器と、を有していてもよい。これにより、デバイス300は、ルールデータベース1400から、ブロックで駆動されるアクチュエータ22又は加熱器23に対応するルールを取得することができる。
【0127】
(ステップS2166)
デバイス300は、第1ブロックの次に第2ブロックを実行することが許容されるか否かを判定する。ここで、第1ブロックの次に第2ブロックを実行することが許容されないと判定された場合(S2166のNo)、デバイス300は、以降のステップS2167をスキップして実行前確認処理を終了する。一方、第1ブロックの次に第2ブロックを実行することが許容されると判定された場合(S2166のYes)、デバイス300は、次のステップS2167に進む。
【0128】
(ステップS2167)
デバイス300は、ルールデータベース1400のルールに基づいて実行内容宣言1300を修正し、実行前確認処理を終了する。実行内容宣言1300の修正とは、例えば、実行内容宣言1300に、第1ブロックの次に実行される順番の制御情報として第3ブロック(第3の制御情報)を追加することである。実行内容宣言1300の修正とは、例えば、実行内容宣言1300に、第1ブロックに含まれるパラメータに関する情報、又は、第2ブロックに含まれるパラメータに関する情報を修正することである。実行内容宣言1300の修正とは、例えば、第2ブロックの実行を制限することである。または、実行内容宣言1300の修正とは、上記のブロックの追加、パラメータの修正、及び、第2ブロックの実行の制限の任意の組み合わせであってもよい。
【0129】
このような実行内容宣言1300の修正の具体例について
図12~
図20を参照しながら説明する。
【0130】
図12は、実施の形態1における実行内容宣言の修正の第1の例を示す。
図12では、実行内容宣言において、給水動作のブロック1010の次に禁水環境で実行される運転である脱水動作のブロック1070が実行されることが示されている。これは、第1のルール1401で許容されないため、制御装置550は、ブロック1010の次に実行される順番の制御情報として水槽502からの排水に関するパラメータを含む排水動作のブロック1080を追加する。つまり、給水動作の次に脱水動作が実行されることが設定されていたとしても、制御装置550は、給水動作と脱水動作との間に排水動作を追加する。このため、脱水動作が開始される前に水槽502を禁水環境とすることができ、効果的に脱水することができる。
【0131】
なお、
図12において、脱水動作のブロック1070の代わりに除菌・抗菌動作のブロック1110が設定されていたとしても同様に、ブロック1070とブロック1110との間に排水動作のブロック1080を追加してもよい。これにより、除菌・抗菌動作が開始される前に水槽502を禁水環境とすることができ、効果的に洗濯物を除菌することができる。
【0132】
また、
図12において、給水動作のブロック1010の代わりに、注水動作のブロック1020や、給水動作のパラメータを含む、撹拌動作のブロック1050、ドラム回転動作のブロック1060が設定されている場合も上記と同様に、その直後に排水動作のブロック1080を追加することで上記と同様の効果が得られる。
【0133】
図13は、実施の形態1における実行内容宣言の修正の第2の例を示す。
図13では、
図12と同様に実行内容宣言において、給水動作のブロック1010の次に禁水環境で実行される運転である脱水動作のブロック1070が実行されることが示されている。これは、第1のルール1401で許容されないため、制御装置550は、ブロック1070の直前に水槽502からの排水に関するパラメータ1073を追加するように、ブロック1070を修正することでブロック1070Aを新たに生成してもよい。パラメータ1073は、排水弁523を開に制御することを示すパラメータである。このため、脱水動作が開始される前に水槽502を禁水環境とすることができ、効果的に脱水することができる。
【0134】
なお、
図13において、脱水動作のブロック1070の代わりに除菌・抗菌動作のブロック1110が設定されていたとしても同様に、パラメータ1073をブロック1110の直前に追加するようにブロック1110を修正してもよい。これにより、除菌・抗菌動作が開始される前に水槽502を禁水環境とすることができ、効果的に洗濯物を除菌することができる。
【0135】
また、
図13において、給水動作のブロック1010の代わりに、注水動作のブロック1020や、給水動作のパラメータを含む、撹拌動作のブロック1050、ドラム回転動作のブロック1060が設定されている場合も上記と同様に、その直後のブロックに当該ブロックの動作が行われる直前に排水が行われるようにパラメータ1073を追加することで上記と同様の効果が得られる。
【0136】
図14は、実施の形態1における実行内容宣言の修正の第3の例を示す。
図14では、実行内容宣言において、給水動作のブロック1010の次に禁水環境で実行される運転である洗濯量検知動作のブロック1000が実行されることが示されている。これは、第1のルール1401で許容されないため、制御装置550は、ブロック1010の次に実行される順番のブロック1000の実行を制限する。具体的には、制御装置550は、ブロック1000を削除する、または、ブロック1000の実行をスキップする。また、制御装置550は、逐次ブロックを読み込んで実行している場合、ブロック1010の実行が終了した後に、運転を停止することでブロック1000の実行を制限してもよい。このため、精度よく洗濯物の量を検知することが難しい環境下において、洗濯量検知動作が行われることを抑制することができる。よって、洗濯量検知動作に係る消費電力を低減することができる。
【0137】
図15は、実施の形態1における実行内容宣言の修正の第4の例を示す。
図15では、実行内容宣言において、乾燥動作のブロック1140の次に禁熱環境で実行される運転であるドアロック解除動作のブロック1090が実行されることが示されている。これは、第2のルール1402で許容されないため、制御装置550は、ブロック1140の次に実行される順番の制御情報として洗濯槽503内の放熱に関するパラメータを含む送風動作のブロック1130を追加する。つまり、乾燥動作の次にドアロック解除動作が実行されることが設定されていたとしても、制御装置550は、乾燥動作とドアロック解除動作との間に送風動作を追加する。このため、ドアロック解除動作が開始される前に洗濯槽503内の温度を所定の温度未満に低下させることができ、ユーザが高温の洗濯物に触れることを抑制することができる。なお、送風動作のブロック1130を追加する代わりに、送風動作がドアロック解除動作の直前に行われるように、送風動作を行うパラメータをドアロック解除動作のブロック1090に追加してもよいし、乾燥動作のブロック1140に追加してもよい。
【0138】
図16は、実施の形態1における実行内容宣言の修正の第5の例を示す。
図16では、実行内容宣言において、所定の水温以上の高温水での撹拌動作のブロック1050の次に禁熱環境で実行される運転である排水動作のブロック1080が実行されることが示されている。これは、第2のルール1402で許容されないため、制御装置550は、ブロック1050の次に実行される順番の制御情報として放熱に関するパラメータを含む待機動作のブロック1150を追加する。ブロック1150による待機動作では、制御装置550は、所定期間(例えば10分間)が経過するまで次のブロック1080の実行を待機する。つまり、高温水での撹拌動作の次に排水動作が実行されることが設定されていたとしても、制御装置550は、高温水での撹拌動作と排水動作との間に待機動作を追加する。このため、排水動作が開始される前に水槽502内の洗濯水の温度を所定の水温未満に低下させることができ、高温水が洗濯機500の外部の排水管に流れることを抑制することができる。なお、待機動作のブロック1150を追加する代わりに、待機動作が排水動作の直前に行われるように、待機動作を行うパラメータを排水動作のブロック1080に追加してもよいし、撹拌動作のブロック1050に追加してもよい。なお、放熱するための動作の一例として待機動作を挙げたがこれに限らずに、給水動作の後に排水動作を行うことで放熱を行ってもよい。
【0139】
図17は、実施の形態1における実行内容宣言の修正の第6の例を示す。
図17では、実行内容宣言において、撹拌動作のブロック1050の次に禁動環境で実行される運転である給水動作のブロック1010が実行されることが示されている。これは、第3のルール1403で許容されないため、制御装置550は、ブロック1050の次に実行される順番の制御情報として所定期間(例えば1分間)何もせずに待機する動作に関するパラメータを含む待機動作のブロック1150を追加する。つまり、撹拌動作の次に給水動作が実行されることが設定されていたとしても、制御装置550は、撹拌動作と給水動作との間に待機動作を追加する。このため、給水動作が開始される前に水槽502(または洗濯槽503)が所定の振幅(または所定の変位)未満で振動または静止させることができ、水面の揺れを低減することができる。なお、待機動作のブロック1150を追加する代わりに、待機動作が給水動作の直前に行われるように、待機動作を行うパラメータを給水動作のブロック1010に追加してもよいし、撹拌動作のブロック1050に追加してもよい。
【0140】
なお、
図17において、給水動作のブロック1010の代わりに注水動作のブロック1120や、給水動作のパラメータを含む、撹拌動作のブロック1050、ドラム回転動作のブロック1060が設定されていたとしても同様に、撹拌動作と給水動作のパラメータを含むブロックとの間に待機動作のブロック1150を追加してもよい。これにより、給水動作が開始される前に水槽502を禁動環境とすることができ、給水動作において効果的に水槽502の水位を検知することができる。
【0141】
また、
図17において、撹拌動作のブロック1050の代わりに、ドラム回転動作のブロック1060のブロックが設定されている場合も上記と同様に、その直後に待機動作のブロック1150を追加することで上記と同様の効果が得られる。
【0142】
図18は、実施の形態1における実行内容宣言の修正の第7の例を示す。
図18では、実行内容宣言において、送風動作のブロック1130の次に禁動環境で実行される運転である給水動作のブロック1010が実行されることが示されている。これは、第4のルール1404で許容されないため、制御装置550は、ブロック1130の次に実行される順番の制御情報として所定期間(例えば1分間)何もせずに待機する動作に関するパラメータを含む待機動作のブロック1150を追加する。つまり、送風動作の次に給水動作が実行されることが設定されていたとしても、制御装置550は、送風動作と給水動作との間に待機動作を追加する。このため、給水動作が開始される前に水面の揺れを低減することができる。なお、待機動作のブロック1150を追加する代わりに、待機動作が給水動作の直前に行われるように、待機動作を行うパラメータを給水動作のブロック1010に追加してもよいし、送風動作のブロック1130に追加してもよい。
【0143】
なお、
図18において、給水動作のブロック1010の代わりに注水動作のブロック1120や、給水動作のパラメータを含む、撹拌動作のブロック1050、ドラム回転動作1060のブロックが設定されていたとしても同様に、送風動作と給水動作のパラメータを含むブロックとの間に待機動作のブロック1150を追加してもよい。これにより、給水動作が開始される前に水槽502を禁動環境とすることができ、給水動作において効果的に水槽502の水位を検知することができる。
【0144】
図19は、実施の形態1における実行内容宣言の修正の第8の例を示す。
図19では、実行内容宣言において、脱水動作のブロック1070の次に脱水動作とは異なる回転を用いた運転である撹拌動作のブロック1050が実行されることが示されている。これは、第5のルール1405で許容されないため、制御装置550は、ブロック1070の次に実行される順番の制御情報として所定期間(例えば30秒間)何もせずに待機する動作に関するパラメータを含む待機動作のブロック1150を追加する。つまり、脱水動作の次に脱水動作とは異なる回転を用いた撹拌動作が実行されることが設定されていたとしても、制御装置550は、脱水動作と撹拌動作との間に待機動作を追加する。このため、撹拌動作が開始される前に洗濯槽503を停止させることができ、容易に他の回転の撹拌動作に切り替えることができる。なお、待機動作のブロック1150を追加する代わりに、待機動作が撹拌動作の直前に行われるように、待機動作を行うパラメータを撹拌動作のブロック1050に追加してもよいし、脱水動作のブロック1070に追加してもよい。なお、2つのブロックは脱水動作と撹拌動作との組み合わせに適用されることに限らない。撹拌動作、ドラム回転動作および脱水動作のうちの2つの組み合わせに適用されてもよいし、撹拌動作の次に異なる回転の撹拌動作の組み合わせに適用されてもよいし、ドラム回転動作の次に異なる回転のドラム回転動作の組み合わせに適用されてもよいし、脱水動作の次に異なる回転の脱水動作の組み合わせに適用されてもよい。なお、待機動作を追加する代わりに、洗濯槽503の回転を制動する動作を追加することで洗濯槽503の回転を停止させてもよい。
【0145】
図20は、実施の形態1における実行内容宣言の修正の第9の例を示す。
図20では、実行内容宣言において、脱水動作のブロック1070を含むブロック1070Bの次に、脱水動作とは異なる回転を用いた運転である撹拌動作のブロック1050を含むブロック1050Bが実行されることが示されている。ブロック1070Bは、脱水動作のブロック1070の直後に待機するパラメータ1074をさらに含む。また、ブロック1050Bは、撹拌動作のブロック1050の直前に待機するパラメータ1057をさらに含む。このように、ブロック1070Bの次に実行される順番に設定されているブロック1050Bにおいて、パラメータ1074およびパラメータ1057が重複している。この場合、制御装置550は、重複しているパラメータ1074を削除する。なお、制御装置550は、パラメータ1074を削除する代わりにパラメータ1057を削除してもよい。
【0146】
【0147】
(ステップS217)
デバイス300は、実行前確認の結果をデバイスマネージャ200に送信する。ブロックが変更されている場合には、変更されたブロックがデバイスマネージャ200に送信されてもよい。
【0148】
(ステップS218)
デバイスマネージャ200は、デバイス割り付けの結果をシーケンスマネージャ100に回答する。また、実行前確認においてブロックが変更されている場合には、変更されたブロックを含むアプリケーションがシーケンスマネージャ100に送信されてもよい。
【0149】
(ステップS220)
シーケンスマネージャ100は、デバイスマネージャ200からの割付結果通知を受けて、UI400を介してユーザに実行準備完了を通知する。
【0150】
(ステップS222)
UI400は、アプリケーションが実行されるデバイスの一覧を表示するとともに、ユーザからアプリケーション実行の確認の入力を受け付けるためのグラフィカルユーザインタフェース(GUI)を表示する。なお、UI400は、ユーザからデバイスの割り付けの変更を受け付けてもよい。また、UI400は、デバイスの一覧を表示しなくてもよい。
【0151】
(ステップS224)
UI400は、ユーザから実行確認の入力を受けて、デバイスマネージャ200にアプリ開始指示を送信する。デバイスマネージャ200は、アプリ開始指示をシーケンスマネージャ100に転送する。
【0152】
なお、ステップS220、S222、及びS224は、アプリケーションが実行される前にユーザに改めて情報を提供しているが、ユーザの作業が増える可能性があるため、省略されてもよい。
【0153】
以上により、アプリ実行前フェーズF200が終了する。
【0154】
[1.3.3 アプリ実行フェーズF300]
次に、アプリ実行フェーズF300について説明する。
【0155】
(ステップS310)
シーケンスマネージャ100は、アプリ開始指示を受けて、アプリケーションに含まれる複数のブロックの中から最初のブロック(第1ブロック)を選択する。そして、シーケンスマネージャ100は、選択した第1ブロックの実行指示をデバイスマネージャ200に送信する。
【0156】
なお、複数のブロックが連続して動作される場合、シーケンスマネージャ100は、複数のブロックの実行指示をまとめてデバイスマネージャ200に送信してもよい。
【0157】
デバイスマネージャ200は、シーケンスマネージャ100から受信した第1ブロックの実行指示に基づいて、第1ブロックに割り付けられたデバイス300に第1ブロックの実行指示を送信する。
【0158】
(ステップS312)
デバイスマネージャ200は、第1ブロックの実行指示を受けて、各デバイスのスケジュール(使用予定時間)を更新する。
【0159】
(ステップS314)
デバイス300は、第1ブロックの実行指示を受けて、第1ブロックを実行する。
【0160】
(ステップS316)
デバイス300は、第1ブロックの実行が完了したときに、完了通知をデバイスマネージャ200に送信する。なお、第1ブロックの実行中にエラーが発生した場合には、デバイス300は、エラー情報をデバイスマネージャ200に送信してもよい。また、デバイス300は、第1ブロックの実行中に、イベント情報をデバイスマネージャ200に送信してもよい。イベント情報としては、例えば、センサの出力値又は機器操作等を用いることができるが、これに限定されない。デバイスマネージャ200は、デバイス300から受信した完了通知及び/又は各種情報をシーケンスマネージャ100に転送する。
【0161】
(ステップS318)
シーケンスマネージャ100は、第1ブロックの完了通知を受けて、アプリケーションの進捗を更新し、次のブロック(第2ブロック)を選択する。また、シーケンスマネージャ100は、エラー情報を受信した場合に、エラー情報に対応する処理(例えば、1つ前のブロックに戻る、最初のブロックに戻る、待機等)を実行する。エラー情報に対応する処理の情報は、例えば、シーケンスマネージャ100に予め保持されてもよいし、UI400を介してユーザから受け付けられてもよい。また、シーケンスマネージャ100は、イベント情報を受信した場合に、イベント情報に対応する処理を実行する。例えば、イベント情報に水位センサの出力値が含まれる場合、シーケンスマネージャ100は、実行中のブロックに含まれる水位を表示するための水位パラメータを更新する。
【0162】
(ステップS320)
シーケンスマネージャ100は、選択した第2ブロックの実行指示をデバイスマネージャ200に送信する。
【0163】
なお、第2ブロックの実行指示は、第1ブロックの実行指示(S310)と同一のデバイスに対する指示でもよいし、異なるデバイスへの指示でもよい。
【0164】
なお、第2ブロックの実行指示は、第1ブロックの実行指示と同様に、複数のブロックの実行指示をまとめてデバイスマネージャ200に送信してもよい。
【0165】
以降の処理は第1ブロックのための処理(S312~S318)と同様であるので、図示及び説明を省略する。アプリケーションに含まれるブロックが順に実行され、最後のブロックの実行が完了すれば、アプリ実行フェーズF300が終了する。
【0166】
なお、ここでは、ブロックの実行は1つずつ順に指示されているが、これに限定されない。例えば、同一のデバイスが割り付けられた複数のブロックの実行は、まとめて指示されてもよい。その場合、あらかじめ各ブロックが機能実行のパラメータ範囲を満たすかの確認を行ったり、変更に対応するブロックを実行前にデバイス側にダウンロードしたりしてもよい。また、例えば、複数のデバイスに対して各々のブロック実行指示を行ってもよい。
【0167】
[1.4 効果など]
以上のように、ブロックを含むアプリケーションとルールデータベースとにより、多様多種なアプリケーションを開発可能な環境を提供し、その環境下で自由に開発したアプリケーションに対して、物理的に運動するアクチュエータ22、又は熱エネルギーを出力する加熱器23の安全な駆動することを可能にしている。言い換えると、アプリケーションを自由に開発可能な環境を提供するとともに、アプリケーションと独立して安全性を担保するための機能を提供できる。その結果、例えば、自由度の高い多様多種なアプリケーションの開発と、安全性を担保するためのルールデータベースの開発とを並行して作成することが可能になり、多様多種なアプリケーションを早期に開発することが可能にすることができる。
【0168】
また、アプリケーションの提供後においても、ルールデータベースを変更することで、より安全性を担保したアプリケーションへの変更も可能になる。また、事前に製造者が想定しない状況の改善が必要になった場合においても、多様多種なアプリケーション自体を変更せずとも、アプリケーションとは独立して、ルールデータベースを規定していることで、ルールデータベースを更新することで、全てのアプリケーションへの対応が可能になる。
【0169】
アプリケーション自体を変更せずに、アプリケーションが実行されたときの状態を検知することでエラー処理のルールベースを保持する対処方法も考えられる。しかし、この対処方法は、常にエラーの状態になった後に対処することになり、家電に負荷がかかる状況、又は安全性が担保できない状況になることを許容することを意味する。そこで、アプリケーションとは独立にルールデータベースを保有し、ルールデータを参照してアプリケーションの内容を変更することで、安全性を担保することを可能にしている。
【0170】
本実施の形態における洗濯機500は、クラウドサーバ10(外部機器)と通信可能な洗濯機500である。洗濯機500は、クラウドサーバ10から実行内容宣言(洗濯情報)を受信する通信部570と、洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、洗濯機能部を制御する制御装置550とを備える。実行内容宣言は、それぞれが洗濯機能部の運転を制御するパラメータに関する制御情報である複数のブロック、及び、複数のブロックを実行する順番に関する順番情報を含む。制御装置550は、洗濯の順番に関するルールに基づいて実行内容宣言を修正し、修正後の実行内容宣言に含まれる制御情報を実行することで実行内容宣言に基づく運転を洗濯機能部に実行させる。
【0171】
これによれば、複数のブロックで規定されたアプリケーションに基づいて洗濯機能部を駆動させることができる。従って、洗濯機500の制御を抽象化したブロックを用いたアプリケーションの開発が可能となり、多種多彩なアプリケーションを製造者だけではなく、サードパーティも開発することができ、これらのアプリケーションを洗濯機500で簡単に実行することが可能となる。さらに、アプリケーションに基づいて洗濯機能部が駆動される前に、許容されない実行内容宣言を修正することができる。したがって、洗濯機能部が許容されない順番の動作を実行することを抑制することができる。つまり、もしアプリケーション開発者が誤って洗濯機能部が許容されない順番の動作を実行するよう指示を行った場合でも、洗濯機500を安全に制御することができないアプリケーションが実行されることを抑制することができる。また、洗濯機500が非効率的に動作することを抑制することができる。したがって、アプリケーション開発者は、洗濯機能部の安全性の担保よりもユーザに適することを重視したアプリケーションを作成した場合でも、アプリケーションで制御される洗濯機500の安全性を向上させることができる。また、洗濯機500の動作効率を向上させることができ、消費電力を低減することができる。
【0172】
また例えば、制御装置550は、実行内容宣言に含まれる第1ブロック、及び、順番情報において第1ブロックの次に実行される順番に設定されている第2ブロックの実行がルールで許容されない場合、実行内容宣言に、第1ブロックの次に実行される順番の制御情報として第3ブロックを追加してもよい。
【0173】
これによれば、連続して実行される2つのブロックが許容されない場合、当該2つのブロックの間の順番に第3ブロックを追加することができるので、洗濯機能部が許容されない順番の2つのブロックの動作を実行することを防止することができる。
【0174】
また例えば、制御装置550は、実行内容宣言に含まれる第1ブロック、及び、順番情報において第1ブロックの次に実行される順番に設定されている第2ブロックの実行がルールで許容されない場合、第1ブロックに含まれるパラメータに関する情報、又は、第2ブロックに含まれるパラメータに関する情報を修正してもよい。
【0175】
これによれば、連続して実行される2つのブロックが許容されない場合、当該2つのブロック内のいずれかに含まれるパラメータに関する情報を修正することができるので、洗濯機能部が許容されない順番の2つのブロックの動作を実行することを防止することができる。
【0176】
また例えば、制御装置550は、実行内容宣言に含まれる第1ブロック、及び、順番情報において第1ブロックの次に実行される順番に設定されている第2ブロックの実行がルールで許容されない場合、第2ブロックの実行を制限してもよい。
【0177】
これによれば、連続して実行される2つのブロックが許容されない場合、第2ブロックの実行を制限することができるので、洗濯機能部が許容されない順番の2つのブロックの動作を実行することを防止することができる。
【0178】
また例えば、第1のルールでは、第1ブロックが洗濯機500の水槽502への給水に関するパラメータを含み、かつ、第2ブロックが禁水環境で実行される運転を制御するパラメータを含むことが許容されなくてもよい。例えば、禁水環境で実行される運転は、水槽502に水が貯められているときに実行されることが許容されない運転を含んでもよい。このため、水槽502に水がある状態で実行されても十分な効果が得られない第2ブロックに基づく運転が実行されることを防止することができる。これにより、無駄な運転を抑制でき、消費電力を低減することができる。
【0179】
また例えば、第2のルールでは、第1ブロックが洗濯機500の水槽502内の加熱に関するパラメータを含み、かつ、第2ブロックが禁熱環境で実行される運転を制御するパラメータを含むことが許容されなくてもよい。例えば、禁熱環境で実行される運転は、水槽502内の温度が所定の温度以上のときに実行されることが許容されない運転を含んでもよい。このため、水槽502内の温度が所定の温度以上であるときに実行されることを抑制できるため、水槽502内の高温環境が洗濯機500の外部に悪影響を与えることを低減することができ、安全性を担保することができる。
【0180】
また例えば、第3のルールでは、第1ブロックが水が貯められている洗濯槽503の回転に関するパラメータを含み、かつ、第2ブロックが禁動環境で実行される運転を制御するパラメータを含むことが許容されなくてもよい。例えば、禁動環境で実行される運転は、洗濯槽503内の水面を動かすことが許容されない運転を含んでもよい。このため、水面の揺れを低減した状態で第2ブロックの運転を制御することができるため、効果的に第2ブロックの運転を制御することができる。
【0181】
また例えば、第4のルールでは、第1ブロックが洗濯機500の洗濯槽503内への送風に関するパラメータを含み、かつ、第2ブロックが禁動環境で実行される運転を制御するパラメータを含むことが許容されなくてもよい。このため、水面の揺れを低減した状態で第2ブロックの運転を制御することができるため、効果的に第2ブロックの運転を制御することができる。
【0182】
また例えば、第5のルールでは、第1ブロックが洗濯機500の洗濯槽503を第1の回転で回転させるパラメータを含み、かつ、第2ブロックが第1の回転とは異なる第2の回転で洗濯槽503を回転させるパラメータを含むことが許容されなくてもよい。例えば、第1の回転における第1回転速度は、第2の回転の第2回転速度と異なっていてもよい。また例えば、第1の回転の向きは、第2の回転の向きと異なっていてもよい。このため、異なる回転の運転が連続して実行されることを抑制でき、効果的に洗濯槽503の回転を切り替えることができる。
【0183】
また例えば、制御装置550は、第1ブロックが洗濯機500の水槽502への給水に関するパラメータを含み、かつ、第2ブロックが禁水環境で実行される運転を制御するパラメータを含む場合、第1のルールに基づいて、実行内容宣言に、第1ブロックと第2ブロックとの間に実行される順番の制御情報として、水槽502からの排水に関するパラメータを含む第3ブロックを追加する。このため、禁水環境で実行される運転が開始される前に排水することで水槽502を禁水環境とすることができ、効果的に第2ブロックの動作を実行することができる。
【0184】
また例えば、制御装置550は、第1ブロックが洗濯機500の水槽502への給水に関するパラメータを含み、かつ、第2ブロックが禁水環境で実行される運転を制御するパラメータを含む場合、第1のルールに基づいて、禁水環境で実行される運転を制御するパラメータの直前に水槽502からの排水に関するパラメータを追加するように、第2ブロックを修正してもよい。このため、禁水環境で実行される運転が開始される前に排水することで水槽502を禁水環境とすることができ、効果的に第2ブロックの動作を実行することができる。
【0185】
また例えば、制御装置550は、第1ブロックが洗濯機500の水槽502内の加熱に関するパラメータを含み、かつ、第2ブロックが禁熱環境で実行される運転を制御するパラメータを含む場合、第2のルールに基づいて、実行内容宣言に、第1ブロックと第2ブロックとの間に実行される順番の制御情報として、水槽502の放熱に関するパラメータを含む第3ブロックを追加してもよい。このため、禁熱環境で実行される運転が開始される前に放熱することで水槽502の温度を低下させて禁熱環境とすることができ、効果的に第2ブロックの動作を実行することができる。
【0186】
また例えば、制御装置550は、第1ブロックが洗濯機500の水槽502内の加熱に関するパラメータを含み、かつ、第2ブロックが禁熱環境で実行される運転を制御するパラメータを含む場合、第2のルールに基づいて、禁熱環境で実行される運転を制御するパラメータの直前に水槽502の放熱に関するパラメータを追加するように、第2ブロックを修正してもよい。このため、禁熱環境で実行される運転が開始される前に放熱することで水槽502の温度を低下させて禁熱環境とすることができ、効果的に第2ブロックの動作を実行することができる。
【0187】
また例えば、制御装置550は、ルールに基づき、実行内容宣言に含まれる第1ブロック、及び、順番情報において第1ブロックの次に実行される順番に設定されている第2ブロックが重複する場合、(i)第1ブロックもしくは第2ブロックを削除する、又は、(ii)第1ブロックに含まれるパラメータに関する情報もしくは第2ブロックに含まれるパラメータに関する情報を削除してもよい。このため、重複している動作のブロックまたはパラメータを削除するため、無駄な動作を実行することを低減することができる。よって、消費電力を低減することができる。
【0188】
また例えば、本実施の形態における装置20において、制御部24は、第1のルールを参照して、第1パラメータ範囲に含まれるパラメータを、アクチュエータ22及び加熱器23の少なくとも1つの駆動が許容される範囲に含まれるパラメータに変更することで、アプリケーションを変更してもよい。
【0189】
これによれば、許容されない第1パラメータ範囲に含まれるパラメータを許容される範囲に含まれるパラメータに変更することができるので、例えば、アプリケーションの開発者は、アクチュエータ22及び加熱器23が安全に駆動することを考慮する優先度を下げて自由にアプリケーションを開発ができ、さらにアクチュエータ22及び加熱器23を制御する装置20に組み込まれるソフトウェアの開発者は、アプリケーション一つ一つの安全性を毎回チェックすることなくブロックを実行でき、アクチュエータ22及び/又は加熱器23が許容されないパラメータで駆動されることを防止することができる。
【0190】
また例えば、本実施の形態における装置20において、制御部24は、第1のルールを参照して、第1パラメータ範囲に含まれるパラメータを、アクチュエータ22及び加熱器23の少なくとも1つの駆動が許容される範囲に含まれるパラメータに変更し、かつ、複数のブロックに新たなブロックを追加することで、アプリケーションを変更してもよい。
【0191】
これによれば、許容されない第1パラメータ範囲に含まれるパラメータを許容される範囲に含まれるパラメータに変更することができるので、アクチュエータ22及び/又は加熱器23が許容されないパラメータで駆動されることを防止することができる。さらに、新たなブロックを追加することもできるので、パラメータの変更によって低下した機能を新たなブロックで補完することも可能となる。
【0192】
また例えば、本実施の形態における装置20において、制御部24は、第1パラメータ範囲に含まれるパラメータを有するブロックを削除することで、アプリケーションを変更してもよい。
【0193】
これによれば、許容されない第1パラメータ範囲に含まれるパラメータを有するブロックを削除することができるので、アクチュエータ22及び/又は加熱器23が許容されないパラメータで駆動されることを防止することができる。例えば、アクチュエータ22及び加熱器23が、アプリケーション開発者が指定したパラメータをそもそも実行することができない場合に、削除を行うことで、デバイスが混乱することなく制御を行うことができる。一方で、削除された旨をユーザに通知を行ってもよい。
【0194】
また例えば、本実施の形態における装置20において、制御部24は、第1のルールを参照して、複数のブロックに含まれる複数のパラメータの各々が、第1パラメータ範囲に含まれるか否かを判定し、パラメータが第1パラメータ範囲に含まれると判定された場合、当該パラメータを有するブロックを変更してもよい。
【0195】
これによれば、より確実に、許容されない第1パラメータ範囲に含まれるパラメータを有するブロックを変更することができる。
【0196】
また例えば、本実施の形態における装置20において、アプリケーションは、複数のブロックのそれぞれが実行される順番情報と、複数のブロックのそれぞれが実行されるタイミングの情報とを含んでもよい。各ブロックのタイミングの情報は、例えば、当該ブロックの開始タイミングと、他のブロック(例えば1番目のブロック)の開始又は終了のタイミングとの間の時間を示す。
【0197】
これによれば、アプリケーションは、順番及びタイミングの情報を含むことができ、各ブロックの持つパラメータ範囲を確認しながら、シーケンシャルに判断して実行することができる。
【0198】
また例えば、本実施の形態における装置20において、第1パラメータ範囲は、アクチュエータ22及び加熱器23の少なくとも1つを耐久温度に到達させるパラメータの範囲であってもよい。
【0199】
これによれば、アプリケーションが実行されたときにアクチュエータ22及び/又は加熱器23が耐久温度に到達することを抑制することができ、アプリケーションで制御される装置20の安全性を向上させることができる。
【0200】
また例えば、本実施の形態における装置20は、内部空間を有する筐体21を備えてもよく、第1パラメータ範囲は、内部空間を耐久温度に到達させるパラメータの範囲であってもよい。
【0201】
これによれば、アプリケーションが実行されたときに筐体21の内部空間が耐久温度に到達することを抑制することができ、アプリケーションで制御される装置20の安全性を向上させることができる。
【0202】
(実施の形態1の変形例)
(変形例1)
実行内容宣言1300(洗濯情報)の修正では、制御装置550は、実施の形態1で説明した具体例に限らずに、以下に説明する処理を行ってもよい。
【0203】
具体的には、制御装置550は、実行内容宣言1300に含まれる複数のブロック1301を、分類ルールに基づいて1以上の洗濯工程に分類し、その後に、1以上の洗濯工程のうちの第1洗濯工程に、第1洗濯工程に含まれる1以上の第1ブロックで共通する共通情報を追加することで、実行内容宣言1300を修正してもよい。制御装置550は、複数のブロック1301のそれぞれを、1以上の洗濯工程のいずれかに分類する。1以上の洗濯工程は、例えば、給水工程、撹拌工程、排水工程、脱水工程、乾燥工程、送風工程、除菌・抗菌工程、浸漬工程などを含む。第1洗濯工程に含まれる1以上の第1ブロックは、実行内容宣言1300に含まれる順番情報により示される順番において連続している。共通情報は、1つの洗濯工程が実行されている間における運転状態を、振動センサ507、水位センサ515、吸気センサ531、温風センサ535、第1泡センサ541、第2泡センサ542、及び、温水センサ544などの各種センサから制御装置550が取得するための検出情報を含む。
【0204】
制御装置550による各ブロックを1以上の洗濯工程に分類する分類方法及び共通情報を追加する処理について説明する。
図21は、実施の形態1の変形例1における分類ルールの一例を示す図である。
図22は、実施の形態1の変形例1における実行前確認処理のフローチャートである。
【0205】
まず、制御装置550は、複数のブロック1301の属性を、分類ルール1410を用いて特定する(S2171)。制御装置550は、複数のブロック1301のそれぞれについて、当該ブロックの名称が分類ルール1410に対応付けられている属性を、当該ブロックの属性として特定してもよい。分類ルール1410では、
図21に示されるように、ブロックの名称と、属性とが対応付けられている。分類ルール1410では、1以上の洗濯工程に分類するための属性として無属性を含んでいてもよい。つまり、制御装置550は、分類ルールで無属性と対応付けられたブロックの属性を、無属性として特定してもよい。なお、制御装置550は、分類ルールでブロックに対応する属性を特定できない場合、つまり、分類ルールにおいてブロックに合致する属性が無い場合、当該ブロックを無属性と決定してもよい。
【0206】
なお、制御装置550は、他の分類ルールを用いて、当該ブロックに予め付与されている識別子に基づいて当該ブロックの属性を特定してもよい。他の分類ルールでは、ブロックの識別子と属性とが対応付けられている。
【0207】
また、制御装置550は、さらに他の分類ルールを用いて、当該ブロックに含まれる1以上のパラメータの種類の組み合わせに基づいて当該ブロックの属性を特定してもよい。さらに他の分類ルールでは、ブロックに含まれる1以上のパラメータの種類の組み合わせと属性とが対応付けられている。例えば、さらに他の分類ルールでは、給水に関するパラメータと、貯水された洗濯槽の一方向への回転(つまり、左回転または右回転)に関するパラメータとの組み合わせ、及び、給水工程を示す属性が対応付けられている。また、例えば、さらに他の分類ルールでは、給水に関するパラメータと、貯水された洗濯槽の両方向への回転(つまり、左回転及び右回転)に関するパラメータとの組み合わせ、及び、撹拌工程を示す属性が対応付けられている。
【0208】
次に、制御装置550は、特定した属性に基づいて、複数のブロックを1以上の洗濯工程に分類する(S2172)。具体的には、制御装置550は、複数のブロック1301を順番情報で示される順番において同じ属性で連続する1以上のブロックを1つの洗濯工程に分類する。つまり、制御装置550は、順番情報で示される順番において、第1属性のブロックが複数連続している場合、連続している第1属性の複数のブロックを第1属性に対応する第1洗濯工程に分類する。
【0209】
なお、制御装置550は、順番情報で示される順番において、無属性のブロックが第1属性のブロックに挟まれている場合、無属性のブロックを第1属性のブロックとみなして、第1属性に対応する第1洗濯工程に分類してもよい。また、制御装置550は、順番情報で示される順番において、無属性のブロックが第1属性のブロックと、第2属性のブロックとに挟まれている場合、無属性のブロックを第1属性のブロックとみなして、第1属性に対応する第1洗濯工程に分類してもよいし、第2属性に対応する第2洗濯工程に分類してもよい。ここで、第1洗濯工程に分類されるか第2洗濯工程に分類されるかは、予め定められていてもよい。第2属性は、第1属性とは異なる属性である。第2洗濯工程は、第1洗濯工程とは異なる工程であり、第1洗濯工程の次の洗濯工程である。
【0210】
また、制御装置550は、各ブロックを1以上の洗濯工程に分類した後に、
図11に示したルールデータベース1400で規定されるルールを用いて、各洗濯工程に含まれる複数のブロックを修正する処理の実行を試みてもよい。複数のブロックの修正方法は、実施の形態1と同様である。制御装置550は、例えば、給水工程に分類した複数のブロックに第1のルール1401を適用することで、給水工程に分類した複数のブロックを修正する処理の実行を試みてもよい。また、制御装置550は、例えば、撹拌工程に分類した複数のブロックにおいて、第2のルール1402を適用することで、撹拌工程に分類した複数のブロックを修正する処理の実行を試みてもよい。制御装置550は、例えば、給水工程または撹拌工程に分類した複数のブロックに第3のルール1403を適用することで、給水工程または撹拌工程に分類した複数のブロックを修正する処理の実行を試みてもよい。制御装置550は、例えば、乾燥工程に分類した複数のブロックに第4のルール1404を適用することで、乾燥工程に分類した複数のブロックを修正する処理の実行を試みてもよい。
【0211】
また、制御装置550は、給水工程に含まれる複数のブロックを修正するための第1のルール1401に示すように、各洗濯工程に対応するルールが設定されていてもよい。つまり、制御装置550は、各洗濯工程について、当該洗濯工程を当該洗濯工程用の修正ルールに基づいて修正してもよい。これにより、制御装置550は、各洗濯工程を当該洗濯工程用の修正ルールのみを参照すれば、当該洗濯工程に含まれる複数のブロックを修正することができるため、他の修正ルールを参照する必要がなくなり、処理負荷を低減することができる。
【0212】
次に、制御装置550は、各洗濯工程に共通情報を追加する(S2173)。
【0213】
図23A~
図23Cは、実施の形態1の変形例1における実行内容宣言の修正を示す。
図23Aでは、実行内容宣言において、洗濯量検知動作のブロック1000、ドラム回転動作のブロック1060、泡生成動作のブロック1150、撹拌動作のブロック1050、および、給水動作のブロック1010がこの順番で実行されることが示されている。制御装置550は、分類ルール1410に基づいて、洗濯量検知動作のブロック1000の属性が洗濯量判定工程であることを特定し、ドラム回転動作のブロック1060、泡生成動作のブロック1150、ドラム回転動作のブロック1060、および、給水動作のブロック1010の属性が給水工程であることを特定する。なお、制御装置550は、分類ルール1410に基づいて撹拌動作のブロック1050が給水工程または撹拌工程のいずれかであり、撹拌動作のブロック1050が給水工程の属性のブロック1150、1010に挟まれているため、撹拌動作のブロック1050の属性が給水工程であるとみなす。
【0214】
そして、制御装置550は、
図23Bに示すように、洗濯量検知動作のブロック1000を洗濯量判定工程1500に分類し、ドラム回転動作のブロック1060、泡生成動作のブロック1150、撹拌動作のブロック1050、および、給水動作のブロック1010を給水工程1510に分類する。
【0215】
次に、制御装置550は、
図23Cに示すように、給水工程1510に、給水工程1510に含まれるドラム回転動作のブロック1060、泡生成動作のブロック1150、撹拌動作のブロック1050、および、給水動作のブロック1010で共通する制御に関する共通情報1511を追加する。共通情報1511は、給水工程1510において、給水工程1510の開始から、水位センサにより検出される水槽502の水位が所定水位になるまでの時間を計測するための検出情報を含んでいてもよいし、水位センサにより検出される水槽502の水位の単位時間当たりの変化量(増加量)を取得するための検出情報を含んでいてもよい。
【0216】
制御装置550は、給水工程1510において、給水工程1510の開始から所定水位になるまでの時間が所定時間を超えるか否かを判定し、この時間が所定時間を超えると判定した場合、給水工程1510を中止し、エラーが発生したことを操作パネル560に提示させてもよい。なお、制御装置550は、この場合、エラーが発生したことを、通信部570を介してユーザの端末へ通知してもよい。制御装置550は、給水工程1510において、給水工程1510の開始から所定水位になるまでの時間が所定時間を超えないと判定した場合、給水工程1510を継続する。
【0217】
また、制御装置550は、給水工程1510において、水槽502の水位の単位時間当たりの変化量(つまり、変化速度)が所定の速度範囲内であるか否かを判定し、この変化速度が所定の速度範囲外であると判定した場合、給水工程1510を中止し、エラーが発生したことを操作パネル560に提示させてもよい。なお、制御装置550は、この場合、エラーが発生したことを、通信部570を介してユーザの端末へ通知してもよい。制御装置550は、給水工程1510において、水槽502の水位の単位時間当たりの変化量(つまり、変化速度)が所定の速度範囲内であると判定した場合、給水工程1510を継続する。
【0218】
本変形例における洗濯機500において、制御装置550は、(i)実行内容宣言(洗濯情報)に含まれる複数のブロックを分類ルールに基づいて1以上の洗濯工程に分類し、かつ、(ii)1以上の洗濯工程のうちの第1洗濯工程に、第1洗濯工程に含まれる1以上のブロックで共通する制御に関する共通情報を追加することで、洗濯情報を修正する。そして、制御装置550は、修正後の実行内容宣言を実行することで実行内容宣言に基づく運転を洗濯機能部に実行させる。第1洗濯工程に含まれる1以上のブロックは、順番情報で示される順番において連続している。
【0219】
このため、ユーザは、洗濯機500に実行させようとする複数のブロックを指定するだけで、制御装置550は、複数のブロックのうちで第1洗濯工程に含まれる1以上のブロックで共通する制御に関する共通情報を追加する。このため、第1洗濯工程の実行中に並行して実行することが効果的な制御を洗濯機能部に行わせることができ、ユーザは、専門的な知識を有していなくても洗濯機500を効率的に動作させることができる。
【0220】
(変形例2)
実行内容宣言1300(洗濯情報)の修正では、制御装置550は、実施の形態1及びその変形例1で説明した具体例に限らずに、以下に説明する処理を行ってもよい。
【0221】
具体的には、制御装置550は、実行内容宣言1300に含まれる複数のブロック1301を分類ルールに基づいて1以上の洗濯工程に分類し、その後に、1以上の洗濯工程のうちの第1洗濯工程が実行されている間における運転状態が所定の条件を満たすか否かに応じて、洗濯機能部に第1洗濯工程の次に実行させる洗濯工程を決定するための決定情報を第1洗濯工程に追加することで、実行内容宣言1300を修正してもよい。1以上の洗濯工程は、変形例1と同様である。決定情報は、具体的には、第1洗濯工程において運転状態が所定の条件を満たしたまま第1洗濯工程が終了した場合、第1洗濯工程の次に第2洗濯工程を洗濯機能部に実行させ、第1洗濯工程において運転状態が所定の条件を満たさない場合、第1洗濯工程を中止して第2洗濯工程とは異なる第3洗濯工程を洗濯機能部に実行させるための情報である。つまり、決定情報は、運転状態に応じて第1洗濯工程を継続して第1洗濯工程終了後に第2洗濯工程に移行するか、第1洗濯工程を中止して第3洗濯工程に移行するかを制御装置550が判定するために用いる情報である。なお、第2洗濯工程は、実行内容宣言1300に含まれる複数のブロックのうちの、順番情報で示される順番において第1洗濯工程の最後のブロックの次のブロックを含む。つまり、第2洗濯工程は、第1洗濯工程の次の順番のブロックを含む。
【0222】
制御装置550は、検出情報を実行することで、第1洗濯工程が実行されている間における洗濯機能部の運転状態を、各種センサなどから取得する。制御装置550は、制御装置550は、取得した運転状態が所定の条件を満たすか否かを判定し、運転状態が所定の条件を満たしたまま第1洗濯工程が終了した場合、第1洗濯工程の次に第2洗濯工程を洗濯機能部に実行させる。一方で、制御装置550は、取得した運転状態が所定の条件を満たさない場合、第1洗濯工程を中止して第2洗濯工程とは異なる第3洗濯工程を洗濯機能部に実行させる。
【0223】
検出情報は、第1洗濯工程が実行されている間における洗濯機能部の運転状態を、各種センサなどから制御装置550が逐次的に取得するための情報であってもよい。つまり、制御装置550は、検出情報を実行することで、第1洗濯工程が実行されている間における洗濯機能部の運転状態を、各種センサなどから逐次的に取得してもよい。
【0224】
制御装置550による決定情報を追加する処理について説明する。
図24は、実施の形態1の変形例2における実行前確認処理のフローチャートである。
【0225】
まず、制御装置550は、複数のブロック1301の属性を、分類ルール1410を用いて特定する(S2171)。
【0226】
次に、制御装置550は、特定した属性に基づいて、複数のブロックを1以上の洗濯工程に分類する(S2172)。
【0227】
次に、制御装置550は、各洗濯工程に決定情報を追加する(S2173a)。
【0228】
図25A~
図25Dは、実施の形態1の変形例2における実行内容宣言の修正の第1の例を示す。
図25Aでは、実行内容宣言において、脱水動作のブロック1070が実行されることが示されている。制御装置550は、分類ルールに基づいて、脱水動作のブロック1070の属性が脱水工程であることを特定する。
【0229】
そして、制御装置550は、
図25Bに示すように、脱水動作のブロック1070を脱水工程1520に分類する。
【0230】
次に、制御装置550は、
図25Cに示すように、脱水工程1520が実行されている間における運転状態が所定の条件を満たすか否かに応じて、洗濯機能部に脱水工程の次に実行させる洗濯工程を決定するための決定情報1521を脱水工程1520に追加する。決定情報1521は、例えば、脱水工程1520が実行されている間において布の偏りが検知されていない場合に、脱水工程1520を継続させ、布の偏りが検知された場合に脱水工程を中止して濯ぎ工程に移行することを示す情報である。なお、制御装置550は、振動センサ507により検出された振動の大きさを振動センサ507から逐次取得し、取得した振動の大きさが第2の閾値を超えたことで布の偏りを検出してもよい。なお、振動センサ507により検出された振動の大きさは、運転状態の一例である。また、振動の大きさが第2の閾値以下であることは、所定の条件の一例である。
【0231】
このため、修正後の実行内容宣言を制御装置550が実行し、脱水工程1520が実行されている間において、布の偏りが検知された場合、つまり、振動センサ507により検出された振動の大きさが第2の閾値を超えた場合、制御装置550は、
図25Dに示すように、決定情報1521に基づいて、脱水工程1520を中止して濯ぎ工程1530に移行してもよい。濯ぎ工程1530は、第2洗濯工程とは異なる第3洗濯工程の一例である。
【0232】
なお、濯ぎ工程1530には、濯ぎ工程1530の次に脱水工程1520を再度実行することを示す決定情報が含まれていてもよい。これにより、制御装置550は、濯ぎ工程1530が終了すると、再度脱水工程1520を実行する。このように、制御装置550は、布の偏りが検知された場合に、脱水工程1520を中止して濯ぎ工程1530を実行するため、布の偏りを脱水工程1520の前に解消することができる。
【0233】
なお、再度実行する脱水工程1520にも、初めに行われた脱水工程1520と同様に決定情報1521が追加される。これにより、制御装置550は、脱水工程1520が布の偏りが検知されることなく終了するまで、濯ぎ工程1530を間に追加する制御を行うこととなる。
【0234】
一方で、制御装置550は、脱水工程1520が実行されている間において、布の偏りが検知されなかった場合、つまり、振動センサ507により検出された振動の大きさが第2の閾値以下のまま脱水工程が終了した場合、脱水工程の次に予定されている第2洗濯工程を洗濯機能部に実行させる。第2洗濯工程は、実行内容宣言において脱水動作のブロック1070の次に行う予定になっていた動作のブロックを含む洗濯工程である。第2洗濯工程が無い場合には、制御装置550は、洗濯の制御を終了してもよい。
【0235】
なお、図示していないが、制御装置550は、脱水動作のブロック1070を脱水工程1520に分類した後に、変形例1と同様に、共通情報を脱水工程1520に追加してもよい。共通情報は、脱水工程1520において、振動センサ507により検出された振動の大きさを検出するための検出情報を含んでいてもよい。
【0236】
図26A~
図26Dは、実施の形態1の変形例2における実行内容宣言の修正の第2の例を示す。
図26Aでは、実行内容宣言において、予備脱水動作のブロック1070a、脱水動作のブロック1070、および、乾燥動作のブロック1140が実行されることが示されている。なお、予備脱水動作のブロック1070aは、脱水動作のブロック1070のパラメータと同じパラメータを含み、パラメータの数値が異なるブロックである。このため、予備脱水動作のブロック1070aは、洗濯工程の分類では、脱水動作のブロック1070と同様に扱われる。制御装置550は、分類ルールに基づいて、予備脱水動作のブロック1070aおよび脱水動作のブロック1070の属性が脱水工程であることを特定し、乾燥動作のブロック1140が乾燥工程であることを特定する。
【0237】
そして、制御装置550は、
図26Bに示すように、予備脱水動作のブロック1070aおよび脱水動作のブロック1070を脱水工程1522に分類し、乾燥工程のブロック1140を乾燥工程1540に分類する。
【0238】
次に、制御装置550は、
図26Cに示すように、脱水工程1522が実行されている間における運転状態が所定の条件を満たすか否かに応じて、洗濯機能部に脱水工程の次に実行させる洗濯工程を決定するための決定情報1523を脱水工程1522に追加する。決定情報1523は、例えば、脱水工程1522のうちの予備脱水動作が実行されている間において布の偏りが検知された場合に、脱水工程を中止して濯ぎ工程に移行することを示し、かつ、脱水動作が実行されている間において布の偏りが検知された場合に、脱水工程を中止して再度脱水工程に移行することを示す情報である。また、決定情報1523は、脱水工程1522において布の偏りが検知されていない場合に、脱水工程1522を継続させることを示す情報である。
【0239】
このため、修正後の実行内容宣言を制御装置550が実行し、脱水工程1522の予備脱水動作が実行されている間において、布の偏りが検知された場合、つまり、振動センサ507により検出された振動の大きさが第2の閾値を超えた場合、制御装置550は、決定情報1523に基づいて、脱水工程1522を中止して濯ぎ工程に移行してもよい。また、制御装置550は、脱水工程1522の脱水動作が実行されている間において、布の偏りが検知された場合、つまり、振動センサ507により検出された振動の大きさが第2の閾値を超えた場合、制御装置550は、
図26Dに示すように、決定情報1523に基づいて、脱水工程1522を中止して脱水工程1524に移行してもよい。脱水工程1524は、第2洗濯工程とは異なる第3洗濯工程の一例である。
【0240】
なお、脱水工程1524には、脱水工程1524の次に乾燥工程1540を再度実行することを示す決定情報1525が含まれていてもよい。この決定情報1525は、さらに、布の偏りが検知された場合に脱水工程1524を中止して再度脱水工程を実行することを示していてもよいし、布の偏りが検知された場合に脱水工程1524を中止して濯ぎ工程を実行することを示していてもよい。これにより、制御装置550は、布の偏りが検知されずに脱水工程1524が終了すると、乾燥工程1540を実行する。
【0241】
なお、乾燥工程1540にも、決定情報1541が追加されてもよい。決定情報1541は、例えば、乾燥工程1540が実行されている間においてフィルタのつまりが検知されていない場合に、脱水工程1520を継続させ、フィルタのつまりが検知された場合に乾燥工程1540を中止してエラー表示を行う提示工程に移行することを示す情報である。この場合、制御装置550は、循環ファン534のファンモータの電流値を当該ファンモータに設けられた電流センサから逐次取得し、取得した電流値が第1の閾値を超えたことでフィルタのつまりを検出してもよい。第1の閾値は、乾燥工程1540開始時における電流値を基準とし、当該電流値に所定の差分値を加算または減算することで算出されてもよいし、予め定められた固定値であってもよい。なお、電流センサにより検出されたファンモータの電流値は、運転状態の一例である。また、電流値が第1の閾値以下であることは、所定の条件の一例である。
【0242】
ここで、決定情報1541は、フィルタのつまりが検知された場合に乾燥工程1540を中止してエラー表示を行う提示工程に移行するとしたが、これに限らずに、乾燥工程1540を中止せずに継続し、乾燥工程1540が終了した後、または、乾燥工程1540に続く洗濯工程が終了した後に提示工程に移行してもよい。
【0243】
また、決定情報1541は、温風センサ535の検出値の現在時刻を基準とした所定期間における移動平均と、乾燥工程1540の開始時における温風センサ535の検出値との差が第3の閾値以上であるか否かを判定し、当該差が第3の閾値以上である場合に乾燥工程1540の終了を制御装置550が決定し、そうでない場合に乾燥工程1540の継続を制御装置550が決定するための情報であってもよい。
【0244】
一方で、制御装置550は、脱水工程1522が実行されている間において、布の偏りが検知されなかった場合、つまり、振動センサ507により検出された振動の大きさが第2の閾値以下のまま脱水工程が終了した場合、脱水工程の次に予定されている乾燥工程1540を洗濯機能部に実行させる。
【0245】
なお、図示していないが、制御装置550は、予備脱水動作のブロック1070a、および、脱水動作のブロック1070を脱水工程1522に分類した後に、変形例1における第1の例と同様に、共通情報を脱水工程1522に追加してもよい。共通情報は、脱水工程1520において、振動センサ507により検出された振動の大きさを検出するための検出情報を含んでいてもよい。
【0246】
本変形例における洗濯機500において、共通情報は、第1洗濯工程が実行されている間における運転状態を、各種センサなどから制御装置550が取得するための検出情報を含む。制御装置550は、検出情報を実行することで、第1洗濯工程が実行されている間における運転状態を、各種センサなどから取得する。制御装置550は、取得した運転状態が所定の条件を満たしたまま第1洗濯工程が終了した場合、第1洗濯工程の次に第2洗濯工程を洗濯機能部に実行させる。制御装置550は、取得した運転状態が所定の条件を満たさない場合、第1洗濯工程を中止して第2洗濯工程とは異なる第3洗濯工程を洗濯機能部に実行させる。
【0247】
これによれば、制御装置550は、取得した運転状態に応じて、第1洗濯工程を継続するか、第1洗濯工程を中止して第3洗濯工程に移行するかを決定するため、運転状態に適切な洗濯工程を洗濯機能部に実行させることができる。
【0248】
また例えば、第2洗濯工程は、複数のブロックのうちの、順番情報で示される順番において1以上の第1ブロックの次の第2ブロックを含む。このため、制御装置550は、第1洗濯工程を継続して第1洗濯工程が終了した場合、第1洗濯工程に含まれる1以上の第1ブロックの次の第2ブロックを含む第2洗濯工程を洗濯機能部に実行させることができる。
【0249】
また例えば、検出情報は、第1洗濯工程が実行されている間における運転状態を、各種センサなどから制御装置550が逐次的に取得するための情報である。制御装置550は、検出情報を実行することで、第1洗濯工程が実行されている間における運転状態を、各種センサなどから逐次的に取得する。このため、制御装置550は、逐次的に取得した運転状態に応じて、第1洗濯工程を継続するか、第1洗濯工程を中止して第3洗濯工程に移行するかを決定するため、そのときの運転状態に適切な洗濯工程を洗濯機能部に実行させることができる。
【0250】
(変形例3)
実行内容宣言1300(洗濯情報)の修正では、制御装置550は、実施の形態1、その変形例1および変形例2で説明した具体例に限らずに、以下に説明する処理を行ってもよい。
【0251】
制御装置550は、実施の形態1の変形例1で説明した共通情報を実行することで第1洗濯工程において取得した運転状態の結果を用いて、実施の形態1の変形例2で説明したように、第1洗濯工程を継続して次の第2洗濯工程を洗濯機能部に実行させるか、第1洗濯工程を中止して第3洗濯工程を洗濯機能部に実行させるかを決定するための、決定情報を第1洗濯工程に追加してもよい。つまり、実施の形態1の変形例1および変形例2を組み合わせてもよい。
【0252】
制御装置550は、例えば、
図23A~
図23Cの具体例のように給水工程1510に共通情報1511を追加した上で、さらに、共通情報1511を実行することにより得られた運転状態が所定の条件を満たすか否かに応じて、給水工程1510を継続するか、給水工程1510を中止してエラー表示を行う提示工程に移行するかを決定するための決定情報(図示せず)を追加してもよい。
【0253】
共通情報1511は、給水工程の開始から所定の水位になるまでの時間を計測することを示す検出情報を含んでいてもよい。共通情報1511は、給水工程の開始からの経過時間を図示しない計時部に計測させ、かつ、当該計時部に計測された経過時間に関する時間情報を操作パネル560に提示させるための計時情報を含んでいてもよい。計時部は、制御装置550に含まれる機能部であってもよいし、制御装置550とは異なる機能部であってもよい。
【0254】
制御装置550は、給水工程1510において、給水工程1510の開始から所定水位になるまでの時間が所定時間を超えるか否かを判定し、この時間が所定時間を超えると判定した場合、給水工程1510を中止し、エラーが発生したことを操作パネル560に提示させる提示工程を実行してもよい。この場合の所定の条件は、給水工程1510の開始から所定水位になるまでの時間が所定時間未満であることである。なお、制御装置550は、この場合、エラーが発生したことを、通信部570を介してユーザの端末へ通知してもよい。制御装置550は、給水工程1510において、給水工程1510の開始から所定水位になるまでの時間が所定時間を超えないと判定した場合、給水工程1510を継続する。
【0255】
また、制御装置550は、給水工程1510において、水槽502の水位の単位時間当たりの増加量(つまり、増加速度)が所定の速度範囲内であるか否かを判定し、この変化速度が所定の速度範囲外であると判定した場合、給水工程1510を中止し、エラーが発生したことを操作パネル560に提示させる提示工程を実行してもよい。この場合の所定の条件は、水槽502の水位の変化速度が所定の範囲内であることである。なお、制御装置550は、この場合、エラーが発生したことを、通信部570を介してユーザの端末へ通知してもよい。制御装置550は、給水工程1510において、水槽502の水位の単位時間当たりの増加量(つまり、増加速度)が所定の速度範囲内であると判定した場合、給水工程1510を継続する。
【0256】
このように、制御装置550は、給水工程1510において水槽502の水位の変化速度に関する速度情報を取得し、速度情報が所定の速度情報の範囲に含まれているか否かを判定するための決定情報を給水工程1510に追加してもよい。制御装置550は、給水工程1510において水槽502の水位の変化速度に関する速度情報を取得し、速度情報が所定の速度情報の範囲に含まれているか否かを判定し、速度情報が所定の速度情報の範囲に含まれたまま給水工程1510が終了した場合、給水工程1510の次に予定されている洗濯工程を洗濯機能部に実行させる。一方で、制御装置550は、取得した速度情報が所定の速度情報の範囲に含まれない場合、給水工程1510を中止して提示工程を洗濯機能部に実行させる。
【0257】
また、制御装置550は、共通情報1511を実行することで、給水工程1510の開始からの経過時間を操作パネル560に提示させてもよい。経過時間は、給水工程1510の開始からカウントアップした時間で示されてもよいし、給水工程1510に要する時間からカウントアップした時間を減じたカウントダウンした時間で示されてもよい。
【0258】
なお、制御装置550は、給水工程だけでなく、同様の処理を排水工程に適用してもよい。制御装置550は、排水工程において、排水工程の開始から所定水位になるまでの時間が所定時間を超えるか否かを判定し、この時間が所定時間を超えると判定した場合、排水工程を中止し、エラーが発生したことを操作パネル560に提示させる提示工程を実行してもよい。所定水位は、例えば、水槽502に水がないとみなされる水位であってもよい。この場合の所定の条件は、排水工程の開始から所定水位になるまでの時間が所定時間未満であることである。なお、制御装置550は、この場合、エラーが発生したことを、通信部570を介してユーザの端末へ通知してもよい。制御装置550は、排水工程において、排水工程の開始から所定水位になるまでの時間が所定時間を超えないと判定した場合、排水工程を継続する。
【0259】
また、制御装置550は、排水工程において、水槽502の水位の単位時間当たりの減少量(つまり、減少速度)が所定の速度範囲内であるか否かを判定し、この変化速度が所定の速度範囲外であると判定した場合、排水工程を中止し、エラーが発生したことを操作パネル560に提示させる提示工程を実行してもよい。この場合の所定の条件は、水槽502の水位の変化速度が所定の範囲内であることである。なお、制御装置550は、この場合、エラーが発生したことを、通信部570を介してユーザの端末へ通知してもよい。制御装置550は、排水工程において、水槽502の水位の単位時間当たりの減少量(つまり、減少速度)が所定の速度範囲内であると判定した場合、排水工程を継続する。
【0260】
このように、制御装置550は、排水工程において水槽502の水位の変化速度に関する速度情報を取得し、速度情報が所定の速度情報の範囲に含まれているか否かを判定するための決定情報を排水工程に追加してもよい。制御装置550は、排水工程において水槽502の水位の変化速度に関する速度情報を取得し、速度情報が所定の速度情報の範囲に含まれているか否かを判定し、速度情報が所定の速度情報の範囲に含まれたまま排水工程が終了した場合、排水工程の次に予定されている洗濯工程を洗濯機能部に実行させる。一方で、制御装置550は、取得した速度情報が所定の速度情報の範囲に含まれない場合、排水工程を中止して提示工程を洗濯機能部に実行させる。
【0261】
また、制御装置550は、給水工程または撹拌工程に、給水工程または撹拌工程において、水槽502内の泡の発生状況を検出するための検出情報を含む共通情報を追加してもよい。また、制御装置550は、水槽502内の泡の発生状況を運転状態として逐次取得し、取得した泡の発生状況に応じて、洗濯機能部に第1洗濯工程の次に実行させる洗濯工程を決定するための決定情報を給水工程または撹拌工程に追加してもよい。この場合の決定情報は、具体的には、給水工程または撹拌工程において泡の発生を検出していない場合、給水工程または撹拌工程を継続して、給水工程または撹拌工程が終了した場合に、給水工程または撹拌工程の次に予定されている洗濯工程を洗濯機能部に実行させることを示す。また、決定情報は、給水工程または撹拌工程において泡の発生を検出した場合、給水工程または撹拌工程を中止して、消泡工程を洗濯機能部に実行させることを示す。消泡工程は、例えば、排水動作、撹拌動作、給水動作、及び、排水動作をこの順で行う工程である。
【0262】
このため、制御装置550は、決定情報を実行することで、取得した泡の発生状況が泡の発生を検出していないことを示すまま給水工程または撹拌工程が終了した場合、給水工程または撹拌工程の次に予定されている洗濯工程を洗濯機能部に実行させる。また、制御装置550は、決定情報を実行することで、取得した泡の発生状況が泡の発生を検出したことを示す場合、給水工程または撹拌工程を中止して消泡工程を洗濯機能部に実行させる。
【0263】
(変形例4)
なお、上記実施の形態1では、システム1の処理について
図7を参照しながら説明したが、処理の流れについてはこれに限定されない。特に、詳細に説明している実行前確認(S216)について、実行前確認が行われるタイミング及び主体となるモジュールはこれに限定されない。そこで、システム1のシーケンス図のいくつかの変形例について、
図27A~
図27Eを参照しながら具体的に説明する。
【0264】
図27Aは、実施の形態1の変形例4におけるシステム1のシーケンス図である。
図27Aでは、実行前確認(S216)は、デバイス300が実行指示を受けて(S310)ブロックを実行する(S314)直前に、デバイス300によって行われる。
【0265】
これにより、デバイス300に組み込まれるソフトウェアは、ブロックの実行直前に実行前確認を行うというシンプルな構成とすることができる。すなわち、ステップS215及びS217を省略することができる。その結果、それらの処理を行うための機能及び通信APIをデバイス300に組み込む必要がなくなり、デバイス300に搭載されるマイコンの使用メモリ等を低減することが可能となる。
【0266】
なお、実行前確認の結果がデバイスマネージャ200及び/又はUI400に通知されてもよい。例えば、実行前確認を行った結果としてパラメータの変更又はブロックの実行停止指示が行われた場合に、デバイスマネージャ200又はUI400に確認結果が通知されてもよい。
【0267】
(変形例5)
図27Bは、実施の形態1の変形例5におけるシステム1のシーケンス図である。
図27Bでは、実行前確認(S216)は、デバイスマネージャ200が割付結果通知(S218)を行う際に、そのままデバイスマネージャ200によって行われる。
【0268】
これにより、デバイス300に組み込まれるソフトウェアは、実行前確認(S216)の機能を含まなくてもよい。したがって、デバイス300が有するメモリの使用を抑えることができ、デバイス300のコストダウンにつながる。
【0269】
また、上記実施の形態1では、デバイス300によるブロック実行(S314)について、クラウドサーバ10に実装されたシーケンスマネージャ100からの指示によって行われる処理の流れを説明したが、ブロック実行(S314)が行われる形態についても、これに限定されない。
【0270】
例えば、シーケンスマネージャ100からの通知内容を、デバイス300内のメモリに保存し、装置20が有するUI又は端末30が有するUI400を通じたユーザからの直接の指示により、ブロックが実行されてもよい。すなわち、アプリケーションをデバイス内にダウンロードしておいて、ユーザが任意のタイミングでアプリケーションを実行する形態としてもよい。
【0271】
(変形例6)
図27Cは、実施の形態1の変形例6におけるシステム1のシーケンス図である。
図27Cでは、アプリ実行フェーズF300において、シーケンスマネージャ100からデバイス300に、デバイス300で実行される1以上のブロックが通知される(S310C)。そして、デバイス300は、通知された1以上のブロックをメモリに保存する(S311C)。
【0272】
その後、デバイス300は、ユーザから、保存された1以上のブロックの実行の指示を受け付け(S312C)、1以上のブロックを第1ブロックから順に実行する(S314)。
【0273】
以上のように、ブロックをデバイス300に保存することで、デバイスマネージャ200とデバイス300との通信を介さずにデバイス300の制御が行えるため、クラウドサーバ10と装置20間の通信が不安定になることによってデバイス300の動作が停止したり遅延が生じたりするリスクを低減することができる。そのため、本変形例は、クラウドサーバ10との通信の信頼性が低い環境において、及び/又は、アプリケーション実行中のデバイスの動作停止や遅延が許容されないデバイス300において、より効果的である。
【0274】
なお、変形例6においても、実施の形態1と同様に、実行前確認(S216)は重要な意味を有するが、実行前確認(S216)が行われるタイミングや主体となるモジュールは
図27Cに限定されない。すなわち、変形例6は、変形例4又は5と組み合わされてもよい。
【0275】
(変形例7)
図27Dは、実施の形態1の変形例7におけるシステム1のシーケンス図である。変形例7は、変形例4と変形例6との組み合わせに相当する。変形例7では、
図27Dに示すように、実行前確認(S216)は、デバイス300が実行指示を受けて(S312C)ブロックを実行する(S314)直前にデバイス300によって行われる。
【0276】
ブロックをデバイス300にダウンロードしておいて、ユーザが任意のタイミングでブロックを実行する場合、ブロックをダウンロードするタイミングと実行するタイミングとが大きくずれる可能性が高まる。すなわち、ブロックをデバイス300にダウンロードしてから数日後、数か月後、又は数年後等にブロックが実行される場合が考えられる。その場合、ブロックがダウンロードされてからブロックが実行されるまでの間にデバイス300の劣化レベル等が変わる恐れもある。そのため、ブロックの実行が劣化レベルの影響を受けるデバイス300では、ブロックが実行される直前にデバイス300によって実行前確認が行われることで、劣化レベルに応じた実行前確認が可能となる。
【0277】
(変形例8)
図27Eは、実施の形態1の変形例8におけるシステム1のシーケンス図である。変形例8は、変形例5と変形例63との組み合わせに相当する。変形例8では、
図27Eに示すように、実行前確認(S216)は、デバイスマネージャ200が割付結果通知(S218)を行う際に、そのままデバイスマネージャ200によって行われる。
【0278】
(実施の形態2)
次に、実施の形態2について説明する。本実施の形態では、アプリケーションが認証済みである場合に実行前確認がスキップされる点が上記実施の形態1と主として異なる。以下に、上記実施の形態1と異なる点を中心に本実施の形態について説明する。
【0279】
なお、本実施の形態におけるシステム1のハードウェア構成及び機能構成は、上記実施の形態1と同様であるので、図示及び説明を省略する。
【0280】
[2.1 処理]
本実施の形態では、上記実施の形態1における実行前確認のステップS216がステップS216Aに代わる点を除いて、上記実施の形態1の処理と同様である。したがって、実行前確認処理のステップS216Aについて
図28を参照しながら説明する。
【0281】
図28は、実施の形態2における実行前確認処理のフローチャートを示す。
【0282】
(ステップS2161A)
デバイス300は、アプリ認証情報を取得する。アプリ認証情報は、アプリケーションが認証済みである場合に認証済みであることを示す情報を含む。
【0283】
アプリケーションの認証は、例えばアプリケーションの品質を保証するための仕組みであり、アプリケーションの安全性及び/又は同一性(改ざんされていないこと)などの確認を可能とする。認証情報の付与されているアプリケーションの一例を説明する。アプリケーションのコードの変更履歴がパラメータ範囲の変更が行われなかったことを示す場合、アプリケーションに認証済みであることを示す情報が対応付けられている。
【0284】
(ステップS2162A)
デバイス300は、取得されたアプリ情報に基づいて、アプリケーションが認証済みであるか否かを判定する。ここで、アプリケーションが認証済みであると判定された場合(S2162AのYes)、デバイス300は、以降のステップS2165~ステップS2167をスキップして実行前確認処理を終了する。一方、アプリケーションが認証済みではないと判定された場合(S2162AのNo)、デバイス300は、次のステップS2165に進む。
【0285】
[2.2 効果など]
以上のように、本実施の形態における装置20は、アクチュエータ22及び加熱器23の少なくとも1つと、アクチュエータ22及び加熱器23の少なくとも1つを制御する制御部24と、を備え、制御部24は、アクチュエータ22及び加熱器23の少なくとも1つを駆動する複数のブロックで規定され、かつ認証済みか否かを示す情報を含むアプリケーションを取得し、複数のブロックの各々は、アクチュエータ22又は加熱器23を駆動するためのパラメータを有し、アプリケーションが認証済みであることを示す情報を含まない場合、アクチュエータ22及び加熱器23の少なくとも1つの駆動が許容されない第1パラメータ範囲を定義する第1のルールを参照して、複数のブロックの少なくとも1つを変更することでアプリケーションを変更し、複数のブロックの少なくとも1つは、第1パラメータ範囲に含まれるパラメータを有し、変更したアプリケーションに基づいて、少なくとも1つのアクチュエータ22を駆動する。
【0286】
これによれば、複数のブロックで規定されたアプリケーションに基づいてアクチュエータ22及び/又は加熱器23を駆動することができる。したがって、装置20の制御を抽象化したブロックを用いたアプリケーションの開発が可能となり、そのように開発された多種多彩なアプリケーションを装置20で簡単に実行することが可能となる。さらに、アプリケーションに基づいてアクチュエータ22及び/又は加熱器23が駆動される前に、許容されない第1パラメータ範囲に含まれるパラメータを有するブロックを変更することができる。したがって、アクチュエータ22及び/又は加熱器23が許容されないパラメータで駆動されることを抑制することができる。つまり、装置20を安全に制御することができないアプリケーションが実行されることを抑制することができ、アプリケーションで制御される装置20の安全性を向上させることができる。さらに、アプリケーションが認証済みでない場合に、アプリケーションの変更を伴う処理を行うことができ、アプリケーションが認証済みである場合に処理負荷の軽減を図ることができる。したがって、全てのアプリケーションに対するパラメータ範囲に対する判定処理を行う必要は無く、認証を行うことによる管理によって、処理負荷の軽減とともに、パラメータ範囲の設計の基準ができ、アプリケーション開発者にとっては、より容易かつ安全な設計が可能となる。
【0287】
また例えば、本実施の形態における装置20において、アプリケーションが認証済みであることを示す情報を有する場合、第1のルールを参照せずに、アプリケーションケーションを変更しなくてもよい。
【0288】
これによれば、アプリケーションが認証済みである場合に、ブロックを変更するための処理をスキップすることができ、処理負荷を軽減することができる。
【0289】
(実施の形態3)
次に、実施の形態3について説明する。本実施の形態では、アプリケーションの制作者と装置の製作者とが同一である場合に実行前確認がスキップされる点が上記実施の形態1と主として異なる。以下に、上記実施の形態1と異なる点を中心に本実施の形態について説明する。
【0290】
なお、本実施の形態におけるシステム1のハードウェア構成及び機能構成は、上記実施の形態1と同様であるので、図示及び説明を省略する。
【0291】
[3.1 処理]
本実施の形態では、上記実施の形態1における実行前確認のステップS216がステップS216Bに代わる点を除いて、上記実施の形態1の処理と同様である。したがって、実行前確認処理のステップS216Bについて
図29を参照しながら説明する。
【0292】
図29は、実施の形態3における実行前確認処理のフローチャートを示す。
【0293】
(ステップS2161B)
デバイス300は、アプリ制作者情報を取得する。アプリ制作者情報は、アプリケーションの制作者を示す。制作者は、アプリケーションを制作した会社、個人又は団体等を意味し、開発者又は著者と呼ばれる場合もある。
【0294】
(ステップS2163B)
デバイス300は、デバイス製作者情報を取得する。デバイス製作者情報は、デバイスの製作者を示す。製作者は、デバイス300(つまり装置20)を製作した会社、個人又は団体等を意味し、製造者と呼ばれる場合もある。
【0295】
(ステップS2164B)
デバイス300は、アプリケーションの制作者とデバイス300の製作者とが異なるか否かを判定する。アプリケーションの制作者が個人であり、デバイス300の製作者が会社である場合、デバイス300は、アプリケーションの制作者が属する会社とデバイス300の製作者とが一致すれば、アプリケーションの制作者とデバイス300の製作者とが同じであると判定してもよい。また、デバイス300は、アプリケーションの制作者がデバイス300の製作者の開発委託先であれば、アプリケーションの制作者とデバイス300の製作者とが同じであると判定してもよい。
【0296】
ここで、アプリケーションの制作者とデバイス300の製作者とが同じである場合(S2164BのNo)、デバイス300は、以降のステップS2165~ステップS2167をスキップして実行前確認処理を終了する。一方、アプリケーションの制作者とデバイス300の製作者とが異なる場合(S2164BのYes)、デバイス300は、次のステップS2165に進む。
【0297】
[3.2 効果など]
以上のように、本実施の形態における装置20は、アクチュエータ22及び加熱器23の少なくとも1つとアクチュエータ22及び加熱器23の少なくとも1つを制御する制御部24と、を備え、制御部24は、アクチュエータ22及び加熱器23の少なくとも1つを駆動する複数のブロックで規定され、かつ制作者を示す情報を含むアプリケーションを取得し、複数のブロックの各々は、アクチュエータ22又は加熱器23を駆動するためのパラメータを有し、装置20の製作者を示す情報を取得し、アプリケーションの制作者と装置20の製作者とが異なる場合、アクチュエータ22及び加熱器23の少なくとも1つの駆動が許容されない第1パラメータ範囲を定義する第1のルールを参照して、複数のブロックの少なくとも1つを変更することでアプリケーションを変更し、複数のブロックの少なくとも1つは、第1パラメータ範囲に含まれるパラメータを有し、変更したアプリケーションに基づいて、アクチュエータ22及び加熱器23の少なくとも1つを駆動する。
【0298】
これによれば、複数のブロックで規定されたアプリケーションに基づいてアクチュエータ及び/又は加熱器を駆動することができる。したがって、装置20の制御を抽象化したブロックを用いたアプリケーションの開発が可能となり、そのように開発された多種多彩なアプリケーションを装置20で簡単に実行することが可能となる。さらに、アプリケーションに基づいてアクチュエータ22及び/又は加熱器23が駆動される前に、許容されない第1パラメータ範囲に含まれるパラメータを有するブロックを変更することができる。したがって、アクチュエータ22及び/又は加熱器23が許容されないパラメータで駆動されることを抑制することができる。つまり、装置20を安全に制御することができないアプリケーションが実行されることを抑制することができ、アプリケーションで制御される装置20の安全性を向上させることができる。さらに、アプリケーションの制作者と装置20の製造者とが異なる場合に、アプリケーションの変更を伴う処理を行うことができ、アプリケーションの制作者と装置20の製造者とが同じ場合には、処理負荷の軽減を図ることができる。
【0299】
(実施の形態4)
次に、実施の形態4について説明する。本実施の形態では、装置の劣化レベルに対応するルールを用いて実行前確認が行われる点が上記実施の形態1と主として異なる。以下に、上記実施の形態1と異なる点を中心に本実施の形態について説明する。
【0300】
なお、本実施の形態におけるシステム1のハードウェア構成及び機能構成は、上記実施の形態1と同様であるので、図示及び説明を省略する。
【0301】
[4.1 処理]
本実施の形態では、上記実施の形態1における実行前確認のステップS216がステップS216Cに代わる点を除いて、上記実施の形態1の処理と同様である。したがって、実行前確認処理のステップS216Cについて
図30を参照しながら説明する。
【0302】
図30は、実施の形態4における実行前確認処理のフローチャートを示す。
【0303】
(ステップS2163C)
デバイス300は、デバイス劣化情報を取得する。デバイス劣化情報は、装置20に含まれるアクチュエータ22及び/又は加熱器23の劣化レベルを示す。劣化レベルの検出方法は、特に限定されず、例えばセンサによって検出されればよい。
【0304】
(ステップS2165C)
デバイス300は、劣化レベルに対応するルールを取得する。例えば、デバイス300は、ルールデータベースを参照して、ブロックが駆動するアクチュエータ22又は加熱器23の劣化レベルに対応するパラメータ範囲を取得する。
【0305】
図31は、実施の形態4におけるルールデータベースの一例を示す。
図31のルールデータベース1400Cには、ルール1401C~1404Cが登録されている。ルール1401C~1404Cの各々は、非許容範囲を定義するパラメータ範囲を有する。例えば、ルール1401Cは、劣化レベル0のモータMM0001のために、1000rpmより大きい範囲を非許容範囲として有する。例えば、ルール1402Cは、劣化レベル1のモータMM0001のために、800rpmより大きい範囲を非許容範囲として有する。つまり、ルール1402Cは、ルール1401Cよりも非許容範囲が広く、許容範囲が狭い。
【0306】
ルール1401C~1404Cの各々は、さらに、種別と、製造者名と、アクチュエータ/加熱器と、劣化レベルと、を有する。これにより、デバイス300は、ルールデータベース1400Cから、ブロックで駆動されるアクチュエータ22又は加熱器23の劣化レベルに対応するルールを取得することができる。例えば、デバイス300は、脱水動作のブロックで駆動されるモータMM0001の劣化レベルが0である場合、脱水ブロックのために、
図31のルールデータベース1400Cを参照してルール1401Cを取得する。
【0307】
なお、劣化レベルを決定する項目は、例えば、デバイス300に含まれるアクチュエータ22及び/又は加熱器23の使用回数、使用時間、又は稼働開始から現在まで使用日数である。これらの項目は、ユーザの使用に対して概ね比例関係で増えると想定される。よって、項目に対応する値が大きくなるごとに、劣化レベルが大きくなるようにルールが決定される。
【0308】
また、劣化レベルを決定する項目は、例えば、加熱器23の温度の加算値、又はアクチュエータ22及び/又は加熱器23の入力及び出力の再現度合である。加熱器23の温度の加算値とは、加熱器23が駆動されたときの温度を加算した値である。例えば、ブロック実行時の加熱器23の平均温度、中間温度、又は最大温度が用いられる。加熱器23の温度は、加熱器23の限界温度に対する実行温度の割合、加熱器23の限界温度に対する実行温度の差分であってもよい。
【0309】
アクチュエータ22及び/又は加熱器23の入力及び出力の再現度合とは、アクチュエータ22及び/又は加熱器23を駆動するための入力値とアクチュエータ22及び/又は加熱器23の出力との関係を参照して求められる。所定の入力に対する実際の出力値と、関係に規定された出力値との割合が用いられる。
【0310】
[4.2 効果など]
以上のように、本実施の形態における装置20は、アクチュエータ22及び加熱器23の少なくとも1つと、アクチュエータ22及び加熱器23の少なくとも1つを制御する制御部24と、を備え、制御部24は、アクチュエータ22及び加熱器23の少なくとも1つを駆動する複数のブロックで規定されたアプリケーションを取得し、複数のブロックの各々は、アクチュエータ22又は加熱器23を駆動するためのパラメータを有し、アクチュエータ22及び加熱器23の少なくとも1つが劣化しているか否かを示す劣化情報を取得し、劣化情報がアクチュエータ22及び加熱器23の少なくとも1つが劣化していないことを示している場合、アクチュエータ22及び加熱器23の少なくとも1つの駆動が許容されない第1パラメータ範囲を定義する第1のルールを参照して、複数のブロックに含まれる少なくとも1つの第1ブロックを変更することでアプリケーションを変更し、少なくとも1つの第1ブロックは、第1パラメータ範囲に含まれるパラメータを有し、劣化情報がアクチュエータ22及び加熱器23の少なくとも1つが劣化していることを示している場合、アクチュエータ22及び加熱器23の少なくとも1つの駆動が許容されない、第1パラメータ範囲と異なる第2パラメータ範囲を定義する第2のルールを参照して、複数のブロックに含まれる少なくとも1つの第2ブロックを変更することでアプリケーションを変更し、少なくとも1つの第2ブロックは、第2パラメータ範囲に含まれるパラメータを有し、変更したアプリケーションに基づいて、アクチュエータ22及び加熱器23の少なくとも1つを駆動する。
【0311】
これによれば、複数のブロックで規定されたアプリケーションに基づいてアクチュエータ22及び/又は加熱器23を駆動することができる。したがって、装置20の制御を抽象化したブロックを用いたアプリケーションの開発が可能となり、そのように開発された多種多彩なアプリケーションを装置20で簡単に実行することが可能となる。さらに、アプリケーションに基づいてアクチュエータ22及び/又は加熱器23が駆動される前に、許容されない第1パラメータ範囲に含まれるパラメータを有するブロックを変更することができる。したがって、アクチュエータ22及び/又は加熱器23が許容されないパラメータで駆動されることを抑制することができる。つまり、装置20を安全に制御することができないアプリケーションが実行されることを抑制することができ、アプリケーションで制御される装置20の安全性を向上させることができる。さらに、装置20の劣化情報に応じて異なるパラメータ範囲を用いることができ、ブロックを用いることで、経年劣化していくデバイスのパフォーマンスを考慮しながら、アプリケーション側からのアクチュエータ22及び/又は加熱器23への駆動指示を実行し、アプリケーションで制御される装置20の安全性をより向上させることができる。
【0312】
(他の実施の形態)
以上、本開示の1つまたは複数の態様に係るシステムについて、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の1つまたは複数の態様の範囲内に含まれてもよい。
【0313】
また、上記各実施の形態において、シーケンスマネージャ100及びデバイスマネージャ200は、クラウドサーバ10に含まれていたが、これに限定されない。シーケンスマネージャ100及び/又はデバイスマネージャ200は、装置20に含まれてもよい。また、UI400は、端末30に含まれていたが、装置20に含まれてもよい。
【0314】
また、上記各実施の形態において、劣化情報に基づいて、アプリケーションが変更されてもよい。例えば、デバイス300は、複数の劣化レベルと複数のパラメータの変換方法とが対応付けられたパラメータ変換情報を参照して、劣化レベルに対応する変換方法を取得し、取得した変換方法を用いてブロックに含まれるパラメータを変換してもよい。変換方法としては、例えば、変換後の値で定義されてもよいし、変換前の値に適用される係数で定義されてもよい。
【0315】
また、上記各実施の形態では、実行前確認においてパラメータが非許容範囲に含まれる場合にブロックを変更し、その後ブロックが実行されていたが、これに限ったものではない。例えば、パラメータが非許容範囲に含まれる場合に、デバイス300の状態が想定と異なっていたときは、ブロックを実行せず、デバイスマネージャ200及び/又はシーケンスマネージャ100に実行中止(エラー)が通知されてもよい。
【産業上の利用可能性】
【0316】
複数の機能ブロックで規定されたアプリケーションを実行することができる家庭用電化製品等に利用できる。
【符号の説明】
【0317】
1 システム
2a、2b、2c、2d 施設
10 クラウドサーバ
11 プロセッサ
12 メモリ
20、20a、20b、20c、20d、20e、20f、20g、20h 装置
21 筐体
22 アクチュエータ
23 加熱器
24 制御部
30、30a、30b、30c、30d 端末
31 ディスプレイ
32 入力デバイス
100 シーケンスマネージャ
200 デバイスマネージャ
300、300a、300b、300c、300d、300e、300f、300g、300h デバイス
400、400a、400b、400c、400d UI
500 洗濯機
501 筐体
502 水槽
503 洗濯槽
504 洗濯モータ
505 ドア
506 ドアロック機構
507 振動センサ
511 給水弁
512 給水管
513 自動投入機
515 水位センサ
516 バスポンプ
517 風呂水配管
521 排水管
522 排水フィルタ
523 排水弁
524 循環ポンプ
525 循環用配管
531 吸気センサ
532 ヒートポンプ
533 ダクト
534 循環ファン
535 温風センサ
536 除菌装置
541 第1泡センサ
542 第2泡センサ
543 温水ヒータ
544 温水センサ
550 制御装置
560 操作パネル
570 通信部
1000、1010、1020、1030、1040、1050、1060、1070、1070a、1080、1090、1100、1110、1120、1130、1140、1301 ブロック
1011、1012、1021~1023、1031、1041、1051~1056、1061~1064、1071、1072、1081、1091、1101、1102、1111、1112、1121、1131、1132、1141 パラメータ
1200 デバイスデータベース
1201 デバイス情報
1300 実行内容宣言
1302 デバイスに関する情報
1303 順番情報
1400、1400C ルールデータベース
1401~1405、1401C、1402C、1403C、1404C ルール
1410 分類ルール
1500 洗濯量判定工程
1510 給水工程
1511 共通情報
1520、1522、1524 脱水工程
1521、1523、1525、1541 決定情報
1530 濯ぎ工程
1540 乾燥工程
F100 準備フェーズ
F200 アプリ実行前フェーズ
F300 アプリ実行フェーズ