(57)【要約】      （修正有）【課題】より簡単かつ安全に、多種多彩な制御プログラムを実行することができる装置及び方法を提供する。【解決手段】洗濯機は、外部機器と通信可能な洗濯機であって、外部機器から洗濯情報を受信する通信部５７０と、洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、洗濯機能部を制御する制御装置５５０と、を備え、洗濯情報は、それぞれが洗濯機能部の運転を制御するパラメータに関する制御情報である複数の制御情報、及び、複数の制御情報を実行する順番に関する順番情報を含み、制御装置５５０は、洗濯の順番に関するルールに基づいて洗濯情報を修正し、修正後の洗濯情報を実行することで洗濯情報に基づく運転を洗濯機能部に実行させる。【選択図】図５
2022001152.tif 000002
【特許請求の範囲】
【請求項１】
外部機器と通信可能な洗濯機であって、
前記外部機器から洗濯情報を受信する通信部と、
前記洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、
前記洗濯機能部を制御する制御装置と、を備え、
前記洗濯情報は、それぞれが前記洗濯機能部の運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含み、
前記制御装置は、洗濯の順番に関するルールに基づいて前記洗濯情報を修正し、修正後の洗濯情報を実行することで前記洗濯情報に基づく運転を前記洗濯機能部に実行させる
洗濯機。
【請求項２】
前記制御装置は、前記洗濯情報に含まれる第１の制御情報、及び、前記順番情報において前記第１の制御情報の次に実行される順番に設定されている第２の制御情報の実行が前記ルールで許容されない場合、前記洗濯情報に、前記第１の制御情報の次に実行される順番の制御情報として第３の制御情報を追加する
請求項１に記載の洗濯機。
【請求項３】
前記制御装置は、前記洗濯情報に含まれる第１の制御情報、及び、前記順番情報において前記第１の制御情報の次に実行される順番に設定されている第２の制御情報の実行が前記ルールで許容されない場合、前記第１の制御情報に含まれる前記パラメータに関する情報、又は、前記第２の制御情報に含まれる前記パラメータに関する情報、を修正する
請求項１に記載の洗濯機。
【請求項４】
前記制御装置は、前記洗濯情報に含まれる第１の制御情報、及び、前記順番情報において前記第１の制御情報の次に実行される順番に設定されている第２の制御情報の実行が前記ルールで許容されない場合、前記第２の制御情報の実行を制限する
請求項１に記載の洗濯機。
【請求項５】
前記ルールでは、前記第１の制御情報が前記洗濯機の槽への給水に関するパラメータを含み、かつ、前記第２の制御情報が禁水環境で実行される運転を制御するパラメータを含むことが許容されない
請求項２から４のいずれか１項に記載の洗濯機。
【請求項６】
前記禁水環境で実行される運転は、前記槽に水が貯められているときに実行されることが許容されない運転を含む
請求項５に記載の洗濯機。
【請求項７】
前記ルールでは、前記第１の制御情報が前記洗濯機の槽内の加熱に関するパラメータを含み、かつ、前記第２の制御情報が禁熱環境で実行される運転を制御するパラメータを含むことが許容されない
請求項２から４のいずれか１項に記載の洗濯機。
【請求項８】
前記禁熱環境で実行される運転は、前記槽内の温度が所定の温度以上のときに実行されることが許容されない運転を含む
請求項７に記載の洗濯機。
【請求項９】
前記ルールでは、前記第１の制御情報が水が貯められている前記洗濯機の槽の回転に関するパラメータを含み、かつ、前記第２の制御情報が禁動環境で実行される運転を制御するパラメータを含むことが許容されない
請求項２から４のいずれか１項に記載の洗濯機。
【請求項１０】
前記ルールでは、前記第１の制御情報が前記洗濯機の槽内への送風に関するパラメータを含み、かつ、前記第２の制御情報が禁動環境で実行される運転を制御するパラメータを含むことが許容されない
請求項２から４のいずれか１項に記載の洗濯機。
【請求項１１】
前記禁動環境で実行される運転は、前記槽内の水面を動かすことが許容されない運転を含む
請求項９または１０に記載の洗濯機。
【請求項１２】
前記ルールでは、前記第１の制御情報が前記洗濯機の槽を第１の回転で回転させるパラメータを含み、かつ、前記第２の制御情報が前記第１の回転とは異なる第２の回転で前記槽を回転させるパラメータを含むことが許容されない
請求項２から４のいずれか１項に記載の洗濯機。
【請求項１３】
前記第１の回転における第１回転速度は、前記第２の回転の第２回転速度と異なる
請求項１２に記載の洗濯機。
【請求項１４】
前記第１の回転の向きは、前記第２の回転の向きと異なる
請求項１２に記載の洗濯機。
【請求項１５】
前記制御装置は、前記洗濯情報に含まれる第１の制御情報が前記洗濯機の槽への給水に関するパラメータを含み、かつ、前記順番情報において前記第１の制御情報の次に実行される順番に設定されている第２の制御情報が禁水環境で実行される運転を制御するパラメータを含む場合、前記ルールに基づいて、前記洗濯情報に、前記第１の制御情報と前記第２の制御情報との間に実行される順番の制御情報として、前記槽からの排水に関するパラメータを含む第３の制御情報を追加する
請求項１に記載の洗濯機。
【請求項１６】
前記制御装置は、前記洗濯情報に含まれる第１の制御情報が前記洗濯機の槽への給水に関するパラメータを含み、かつ、前記順番情報において前記第１の制御情報の次に実行される順番に設定されている第２の制御情報が禁水環境で実行される運転を制御するパラメータを含む場合、前記ルールに基づいて、前記禁水環境で実行される運転を制御するパラメータの直前に前記槽からの排水に関するパラメータを追加するように、前記第２の制御情報を修正する
請求項１に記載の洗濯機。
【請求項１７】
前記制御装置は、前記洗濯情報に含まれる第１の制御情報が前記洗濯機の槽内の加熱に関するパラメータを含み、かつ、前記順番情報において前記第１の制御情報の次に実行される順番に設定されている第２の制御情報が禁熱環境で実行される運転を制御するパラメータを含む場合、前記ルールに基づいて、前記洗濯情報に、前記第１の制御情報と前記第２の制御情報との間に実行される順番の制御情報として、前記槽の放熱に関するパラメータを含む第３の制御情報を追加する
請求項１に記載の洗濯機。
【請求項１８】
前記制御装置は、前記洗濯情報に含まれる第１の制御情報が前記洗濯機の槽内の加熱に関するパラメータを含み、かつ、前記順番情報において前記第１の制御情報の次に実行される順番に設定されている第２の制御情報が禁熱環境で実行される運転を制御するパラメータを含む場合、前記ルールに基づいて、前記禁熱環境で実行される運転を制御するパラメータの直前に前記槽の放熱に関するパラメータを追加するように、前記第２の制御情報を修正する
請求項１に記載の洗濯機。
【請求項１９】
前記制御装置は、前記ルールに基づき、前記洗濯情報に含まれる第１の制御情報、及び、前記順番情報において前記第１の制御情報の次に実行される順番に設定されている第２の制御情報が重複する場合、（ｉ）前記第１の制御情報もしくは前記第２の制御情報を削除する、又は、（ｉｉ）前記第１の制御情報に含まれる前記パラメータに関する情報もしくは前記第２の制御情報に含まれる前記パラメータに関する情報を削除する
請求項１に記載の洗濯機。
【請求項２０】
外部機器と通信可能な洗濯機において実行される制御方法であって、
それぞれが洗濯に関する運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含む洗濯情報を、前記外部機器から受信し、
洗濯の順番に関するルールに基づいて前記洗濯情報を修正し、修正後の洗濯情報を実行することで前記洗濯情報に基づいて洗濯に関する運転を実行する
制御方法。
【請求項２１】
外部機器と、前記外部機器と通信可能な洗濯機とを備える制御システムであって、
前記洗濯機は、
前記外部機器から洗濯情報を受信する通信部と、
前記洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、
前記洗濯機能部を制御する制御装置と、を備え、
前記洗濯情報は、それぞれが前記洗濯機能部の運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含み、
前記制御装置は、洗濯の順番に関するルールに基づいて前記洗濯情報を修正し、修正後の洗濯情報を実行することで前記洗濯情報に基づく運転を前記洗濯機能部に実行させる
制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、洗濯機、制御方法、及び、制御システムに関する。
【背景技術】
【０００２】
従来、家庭用電化製品及び住宅設備等は、その製造者等によって予め用意された運転条件（制御プログラム）に従って制御される。特許文献１には、ユーザが実施したい洗濯の運転条件を設定可能な洗濯機が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２８４８８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では、製品の製造者等によって予め開発された制御プログラムが製品に予め格納されていなければならず、多様なユーザの望みに合わせて制御プログラムをカスタマイズ及びアップデートすることは難しい。
【０００５】
そこで、本開示は、より簡単かつ安全に、多種多彩な制御プログラムを実行することができる洗濯機などを提供する。
【課題を解決するための手段】
【０００６】
本開示の一態様に係る洗濯機は、外部機器と通信可能な洗濯機であって、前記外部機器から洗濯情報を受信する通信部と、前記洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、前記洗濯機能部を制御する制御装置と、を備え、前記洗濯情報は、それぞれが前記洗濯機能部の運転を制御するパラメータに関する制御情報である複数の制御情報、及び、前記複数の制御情報を実行する順番に関する順番情報を含み、前記制御装置は、洗濯の順番に関するルールに基づいて前記洗濯情報を修正し、修正後の洗濯情報を実行することで前記洗濯情報に基づく運転を前記洗濯機能部に実行させる。
【０００７】
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【０００８】
本開示の一態様に係る洗濯機は、より簡単かつ安全に、多種多彩な制御プログラムを実行することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１におけるシステムのハードウェア構成図である。
【図２Ａ】図２Ａは、実施の形態１におけるクラウドサーバのハードウェア構成図である。
【図２Ｂ】図２Ｂは、実施の形態１における装置のハードウェア構成図である。
【図２Ｃ】図２Ｃは、実施の形態１における端末のハードウェア構成図である。
【図３】図３は、実施の形態１におけるシステムの機能構成図である。
【図４】図４は、洗濯機の構成の一例を示す図である。
【図５】図５は、洗濯機の機能構成の一例を示すブロック図である。
【図６Ａ】図６Ａは、実施の形態１におけるアプリケーションを規定するブロックの第１の例を示す。
【図６Ｂ】図６Ｂは、実施の形態１におけるアプリケーションを規定するブロックの第２の例を示す。
【図６Ｃ】図６Ｃは、実施の形態１におけるアプリケーションを規定するブロックの第３の例を示す。
【図６Ｄ】図６Ｄは、実施の形態１におけるアプリケーションを規定するブロックの第４の例を示す。
【図６Ｅ】図６Ｅは、実施の形態１におけるアプリケーションを規定するブロックの第５の例を示す。
【図６Ｆ】図６Ｆは、実施の形態１におけるアプリケーションを規定するブロックの第６の例を示す。
【図６Ｇ】図６Ｇは、実施の形態１におけるアプリケーションを規定するブロックの第７の例を示す。
【図６Ｈ】図６Ｈは、実施の形態１におけるアプリケーションを規定するブロックの第８の例を示す。
【図６Ｉ】図６Ｉは、実施の形態１におけるアプリケーションを規定するブロックの第９の例を示す。
【図６Ｊ】図６Ｊは、実施の形態１におけるアプリケーションを規定するブロックの第１０の例を示す。
【図６Ｋ】図６Ｋは、実施の形態１におけるアプリケーションを規定するブロックの第１１の例を示す。
【図６Ｌ】図６Ｌは、実施の形態１におけるアプリケーションを規定するブロックの第１２の例を示す。
【図６Ｍ】図６Ｍは、実施の形態１におけるアプリケーションを規定するブロックの第１３の例を示す。
【図６Ｎ】図６Ｎは、実施の形態１におけるアプリケーションを規定するブロックの第１４の例を示す。
【図６Ｏ】図６Ｏは、実施の形態１におけるアプリケーションを規定するブロックの第１５の例を示す。
【図７】図７は、実施の形態１におけるシステムのシーケンス図である。
【図８】図８は、実施の形態１におけるデバイスデータベースの一例を示す。
【図９】図９は、実施の形態１における実行内容宣言の一例を示す。
【図１０】図１０は、実施の形態１における実行前確認処理のフローチャートを示す。
【図１１】図１１は、実施の形態１におけるルールデータベースの一例を示す。
【図１２】図１２は、実施の形態１における実行内容宣言の修正の第１の例を示す。
【図１３】図１３は、実施の形態１における実行内容宣言の修正の第２の例を示す。
【図１４】図１４は、実施の形態１における実行内容宣言の修正の第３の例を示す。
【図１５】図１５は、実施の形態１における実行内容宣言の修正の第４の例を示す。
【図１６】図１６は、実施の形態１における実行内容宣言の修正の第５の例を示す。
【図１７】図１７は、実施の形態１における実行内容宣言の修正の第６の例を示す。
【図１８】図１８は、実施の形態１における実行内容宣言の修正の第７の例を示す。
【図１９】図１９は、実施の形態１における実行内容宣言の修正の第８の例を示す。
【図２０】図２０は、実施の形態１における実行内容宣言の修正の第９の例を示す。
【図２１Ａ】図２１Ａは、実施の形態１の変形例１におけるシステムのシーケンス図である。
【図２１Ｂ】図２１Ｂは、実施の形態１の変形例２におけるシステムのシーケンス図である。
【図２１Ｃ】図２１Ｃは、実施の形態１の変形例３におけるシステムのシーケンス図である。
【図２１Ｄ】図２１Ｄは、実施の形態１の変形例４におけるシステムのシーケンス図である。
【図２１Ｅ】図２１Ｅは、実施の形態１の変形例５におけるシステムのシーケンス図である。
【図２２】図２２は、実施の形態２における実行前確認処理のフローチャートを示す。
【図２３】図２３は、実施の形態３における実行前確認処理のフローチャートを示す。
【図２４】図２４は、実施の形態４における実行前確認処理のフローチャートを示す。
【図２５】図２５は、実施の形態４におけるルールデータベースの一例を示す。
【発明を実施するための形態】
【００１０】
（本開示の基礎となった知見）
本願発明者らが本開示に至るまでの経緯を説明する。アクチュエータ及び／又は加熱器を有する家庭用電化製品等において、多様なユーザの望みに合わせて制御プログラムを開発するためには、開発環境のオープン化が求められる。すなわち、制御プログラムの開発の難度を低下させて、サードパーティが制御プログラムの開発に容易に参加できる環境が求められる。このような環境では、例えば、アパレル企業が、自社の販売する衣服を洗濯するための洗濯機の制御プログラムを開発することも可能となる。
【００１１】
そこで、本発明者らは、製品に含まれるアクチュエータ及び加熱器の制御を抽象化した機能ブロックを用いて、安全面の担保を維持しながら、制御プログラムを開発可能な環境を構築し、複数の機能ブロックの組み合わせからなる制御プログラムをパッケージ化してアプリケーションとして配信可能な仕組みを検討した。これにより、多種多彩なアプリケーションの配信が可能となり、より多様なユーザの望みに応えて製品をカスタマイズ及びアップデートすることが可能となる。しかしながら、このような環境では、危険なアプリケーション（つまり、製品を安全に制御することができないアプリケーション）が配信される可能性があり、製品の安全性が低下する。
【００１２】
例えば、家庭用電化製品等に含まれるプログラムは、アクチュエータ及び／又は加熱器を直接制御するための機器に組込まれ、かつ、製造者により開発されたプログラムと、サードパーティにより開発されたプログラムとを互いに入り交じった状態で含むことが想定される。このとき、製造者は、サードパーティに、ノウハウを含む全ての家庭用電化製品等の情報を公開しない可能性が高い。例えば、アクチュエータ及び加熱器を駆動するパラメータ又はタイミングは、製造者の家庭用電化製品等の性能に関わるノウハウである。よって、競争力の低下につながる恐れがあるため、製造者は、サードパーティに、家庭用電化製品等を自在に駆動できるようにノウハウをオープンにする可能性は低い。
【００１３】
そのため、サードパーティは、家庭用電化製品等の情報不足により、製造者が想定しない制御の組み合わせ、又はパラメータ範囲を含むアプリケーション、すなわち、安全性が担保されないアプリケーションを作成する可能性がある。このようなアプリケーションがユーザに提供されることは、ユーザに望ましくない。
【００１４】
また、家庭用電化製品等の製造者は、新たな制御プログラムを提供することで、ユーザのくらしのアップデートを試みることが考えられる。しかしながら、多種多様な新たな制御プログラムの開発には、パラメータの調整、またはハードの性能評価などの膨大な工数がかかる。家庭用電化製品等は、アクチュエータ及び／又は加熱器のハードが物理的に駆動するため、家庭用電化製品等のプログラムは、スマートフォンのプログラムと比較して、性能評価などの工数が大きくなることが容易に予想される。しかし、大量生産ではなく、ユーザ一人一人の生活に応じたオンデマンド開発が求められる時代において、スマートフォンのプログラムと同様に、家庭用電化製品等の多種多様な制御プログラム開発することが求められる。そのため、製造者は、膨大な工数を低減した上で、製品の安全性を担保する多種多様なアプリケーションを作成しなければならない。
【００１５】
さらに、製造者は、サードパーティが提供するアプリケーションを用いて家庭用電化製品等が動作した場合でも、安全に動作することを保証することを望むことが考えられる。このとき、多種多様なアプリケーションを家庭用電化製品等で実際に駆動させて安全性を検証する作業の量を低減することが望まれる。
【００１６】
そこで、本開示は、アクチュエータ及び／又は加熱器を駆動する複数の機能ブロックで規定された多種多彩なアプリケーションを、より簡単かつ安全に実行することができる装置等を提供する。
【００１７】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【００１８】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、請求の範囲を限定する主旨ではない。
【００１９】
また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化する。
【００２０】
（実施の形態１）
［１．１  ハードウェア構成］
本実施の形態におけるシステム１のハードウェア構成について、図１〜図２Ｃを参照しながら説明する。図１は、実施の形態１におけるシステム１のハードウェア構成図である。図２Ａは、実施の形態１におけるクラウドサーバ１０のハードウェア構成図である。図２Ｂは、実施の形態１における装置２０のハードウェア構成図である。図２Ｃは、実施の形態１における端末３０のハードウェア構成図である。
【００２１】
図１及び図３に示すように、本実施の形態におけるシステム１は、クラウドサーバ１０と、施設２ａ〜２ｄで用いられる装置２０ａ〜２０ｈと、端末３０ａ〜３０ｄと、を備える。施設２ａ〜２ｄは、例えば住宅であるが、これに限定されない。施設２ａ〜２ｄは、例えばマンション、店舗、オフィス等であってもよい。システム１は、制御システムの一例である。
【００２２】
クラウドサーバ１０は、コンピュータネットワーク（例えばインターネット）を介して提供される仮想的なサーバである。クラウドサーバ１０は、コンピュータネットワークを介して、装置２０ａ〜２０ｈ及び端末３０ａ〜３０ｄに通信可能に接続される。なお、クラウドサーバ１０の代わりに物理サーバが用いられてもよい。クラウドサーバ１０は、外部機器の一例である。
【００２３】
図２Ａに示すように、クラウドサーバ１０は、仮想的に、プロセッサ１１と、プロセッサ１１に接続されたメモリ１２と、を備える。プロセッサ１１は、メモリ１２に格納されたインストラクション又はソフトウェアプログラムが実行されたときに、後述するシーケンスマネージャ及びデバイスマネージャとして機能する。
【００２４】
装置２０ａ〜２０ｈは、施設２ａ〜２ｄで利用される電気機械器具である。なお、図１では、施設２ｂ〜２ｄで利用される装置２０ｃ〜２０ｈの図示が省略されている。以下において、装置２０ａ〜２０ｈの区別が不要な場合には装置２０と記載する。
【００２５】
装置２０としては、家庭用電化製品（家電）及び住宅設備等を用いることができる。家庭用電化製品（家電）及び住宅設備等は、住宅内で使用される機器に限られず、事業に用いられる機器も含む。なお、本開示では、家庭用電化製品及び住宅設備等を家庭用電化製品等と省略して記載することがある。家電としては、例えば、電子レンジ、炊飯器、ミキサー（Blender）、電気オーブン、電気トースター、電気ポット、ホットプレート、ＩＨ（Induction heating）調理器、ロースター、ベーカリー、電気圧力調理なべ、電気無水調理なべ、マルチクッカー、コーヒーメーカー、冷蔵庫、洗濯機、食洗器、掃除機、エアコン、空気清浄機、加湿器、ドライヤー、扇風機、及びイオン発生器等が用いられる。住宅設備としては、例えば、電動シャッター、電子ロック、及び浴槽用の電気湯沸し器等が用いられる。なお、装置２０は、これらの機器に限定されない。
【００２６】
図２Ｂに示すように、装置２０は、筐体２１と、アクチュエータ２２と、加熱器２３と、制御部２４と、を備える。なお、装置２０は、アクチュエータ２２及び加熱器２３の少なくとも１つを備えればよく、アクチュエータ２２及び加熱器２３の両方を備えなくてもよい。
【００２７】
筐体２１は、アクチュエータ２２と、加熱器２３と、制御部２４と、を収容する。また、筐体２１は、対象物を処理するための内部空間を有してもよい。例えば、洗濯機の洗濯槽、電子レンジの加熱室、及び炊飯器の内釜等が、対象物を処理するための内部空間に相当する。
【００２８】
アクチュエータ２２は、電気信号に基づいて入力エネルギーを物理的運動に変換する機械要素である。アクチュエータ２２としては、例えば電気モータ、油圧シリンダ及び空気圧アクチュエータ等を用いることができるが、これらに限定されない。
【００２９】
加熱器２３は、電気エネルギーを熱エネルギーに変換する電気加熱器である。加熱器２３は、例えばジュール加熱、誘導加熱及び誘電加熱等により対象物を加熱する。加熱器２３としては、例えば、ニクロム線、コイル及びマグネトロン等を用いることができる。
【００３０】
ここで、本開示の装置２０が、アクチュエータ２２及び／又は加熱器２３を備える理由の一例を説明する。家庭用電化製品等の製造者が、アクチュエータ２２及び加熱器２３を駆動するパラメータ、駆動の組み合わせを全て自由に制御可能な開発環境をサードパーティに提供した場合を考える。このとき、サードパーティは、製造者が想定しているアクチュエータ２２及び／又は加熱器２３を安全に駆動できるパラメータ範囲、又はアクチュエータ２２及び／又は加熱器２３の駆動制限を逸脱して制御するプログラムを作成することが可能になる。特に、物理的に運動するアクチュエータ２２、又は熱エネルギーを出力する加熱器２３の、製造者の想定していない駆動は、安全性の担保の課題が大きい。製造者の想定していない駆動としては、例えば、アクチュエータの一例である電気モータの高速回転、及び、加熱器２３への過電流の供給が挙げられる。本願発明者らは、過度に安全面を考慮することで、ユーザに多種多様なアプリケーションを提供できる環境の構築を阻害しないことを目指した。そこで、物理的に運動するアクチュエータ２２、又は熱エネルギーを出力する加熱器２３に特化して、安全面を担保することを想定し、本開示の装置２０を対象としている。
【００３１】
制御部２４は、アクチュエータ２２及び／又は加熱器２３を制御するコントローラであり、後述するデバイスとして機能する。制御部２４は、例えば、集積回路で構成される。
【００３２】
端末３０ａ〜３０ｄは、施設２ａ〜２ｄでそれぞれ利用され、ユーザインタフェースとして機能する。なお、図１では、施設２ｂ〜２ｄで利用される端末３０ｂ〜３０ｄの図示が省略されている。以下において、端末３０ａ〜３０ｄの区別が不要な場合には端末３０と記載する。
【００３３】
端末３０は、コンピュータネットワークを介してクラウドサーバ１０及び装置２０に接続され、後述するユーザインタフェース（ＵＩ）として機能する。端末３０としては、スマートフォン及びタブレットコンピュータ等の持ち運び可能な情報端末を用いることができる。なお、端末３０は、施設２ａ〜２ｄの壁、床又は天井に固定された端末であってもよい。また、端末３０は、装置２０に含まれてもよい。例えば、端末３０は、各装置２０ａ〜２０ｈに内蔵されたディスプレイ等を有する表示端末として実現されてもよい。
【００３４】
図２Ｃに示すように、端末３０は、ディスプレイ３１と、入力デバイス３２と、を備える。ディスプレイ３１としては、例えば液晶ディスプレイ及び有機ＥＬディスプレイを用いることができる。入力デバイス３２としては、例えばタッチパネル、キーボード、マウス及び機械式ボタン等を用いることができる。また、入力デバイス３２として、音声入力デバイスが用いられてもよい。ディスプレイ３１と入力デバイス３２とは、タッチスクリーンとして一体で実装されてもよい。または、入力デバイス３２として、ジェスチャー入力デバイスが用いられてもよい。ジェスチャー入力デバイスは、例えば、カメラと認識部とを有する。カメラはジェスチャーを含む画像を撮像し、認識部は画像を用いてジェスチャーを認識する。
【００３５】
［１．２  機能構成］
次に、本実施の形態におけるシステム１の機能構成について、図３を参照しながら説明する。図３は、実施の形態１におけるシステム１の機能構成図である。
【００３６】
クラウドサーバ１０は、シーケンスマネージャ１００と、デバイスマネージャ２００と、を備える。装置２０ａ〜２０ｈは、デバイス３００ａ〜３００ｈをそれぞれ備える。端末３０ａ〜３０ｄは、ＵＩ４００ａ〜４００ｄをそれぞれ備える。
【００３７】
以下において、デバイス３００ａ〜３００ｈの区別が不要な場合にはデバイス３００と記載する。また、ＵＩ４００ａ〜４００ｄの区別が不要な場合にはＵＩ４００と記載する。
【００３８】
シーケンスマネージャ１００は、複数のアプリケーションを管理している。複数のアプリケーションは、例えばユーザの操作によって、アプリケーション配信プラットフォームからシーケンスマネージャ１００にダウンロードされる。または、アプリケーション配信プラットフォームに含まれるアプリケーションは、シーケンスマネージャ１００にダウンロードされなくてもよい。その場合、シーケンスマネージャ１００のデータベースに、アプリケーション配信プラットフォームに含まれるアプリケーションが紐づけていることを示す情報が記録されてもよい。アプリケーションの詳細については後述する。
【００３９】
デバイスマネージャ２００は、複数の施設２ａ〜２ｄ及び各施設２ａ〜２ｄで利用されるデバイス３００及びＵＩ４００を管理するためのデータベースを有する。デバイスマネージャ２００は、データベースに、施設２ａ〜２ｄに紐づくデバイス情報及びＵＩ情報を記録することにより、デバイス３００及びＵＩ４００を管理する。デバイス情報及びＵＩ情報は、例えば、制御機能及び駆動機能、並びに稼働状況などを含む。例えば、デバイスマネージャ２００は、デバイス３００の稼働状況を管理して、デバイス３００の稼働スケジュールを把握することができる。また、デバイスマネージャ２００は、デバイス３００のログ情報を管理してもよい。
【００４０】
なお、このようなデータベースは、デバイスマネージャ２００の代わりにシーケンスマネージャ１００が有してもよく、シーケンスマネージャ１００及びデバイスマネージャ２００の両方が有してもよい。
【００４１】
デバイス３００は、装置２０の制御機能及び駆動機能を有する。デバイス３００は、デバイスマネージャ２００からの指示に従って装置２０を駆動することができる。
【００４２】
ＵＩ４００は、ユーザに情報を提供し、ユーザから入力を受け付ける。
【００４３】
次に、装置２０の一例として洗濯機５００の構成について、図４および図５を参照しながら説明する。図４は、洗濯機５００の構成の一例を示す図である。図５は、洗濯機５００の機能構成の一例を示すブロック図である。
【００４４】
洗濯機５００は、内部空間を有する筐体５０１を備える。筐体５０１の前側には、開口が設けられ、筐体５０１の開口には開閉自在なドア５０５が設けられている。筐体５０１の開口には、ドア５０５のロックをするためのドアロック機構５０６が設けられている。
【００４５】
筐体５０１の内部には、筐体５０１に弾性支持された水槽５０２が設けられている。水槽５０２は、洗濯機５００が備える槽の一例である。水槽５０２の内部には、前側の一端に開口が形成され、かつ、後側の他端に底が形成されている有底円筒状の洗濯槽５０３（ドラムとも言う）が回転軸Ａｘ１で回転自在に設けられている。水槽５０２の内面と洗濯槽５０３の外面との間には、隙間が形成されている。洗濯槽５０３の回転軸Ａｘ１は、例えば、洗濯槽５０３の開口が底よりも上になるように傾斜している。
【００４６】
洗濯槽５０３は、洗濯槽５０３の側面を貫通する複数の孔が設けられている。水槽５０２の後面には、洗濯槽５０３を回転駆動する洗濯モータ５０４が設けられている。洗濯モータ５０４は、例えば、直流モータであり、インバータ制御によって回転速度を自在に制御することができる。
【００４７】
水槽５０２の上部には、振動センサ５０７が設けられている。振動センサ５０７は、水槽５０２の振動の度合いを検知する。
【００４８】
水槽５０２の上部には、給水管５１２が接続されている。給水管５１２は、水道に接続される。給水管５１２には、水道からの水の流入を止める給水弁５１１が設けられている。給水弁５１１は、例えば、制御信号が入力されることにより電動で開閉する電磁弁である。給水管５１２には、洗濯槽５０３内に投入される液体洗剤及び／又は柔軟剤が収容された自動投入機５１３が設けられている。自動投入機５１３は、アクチュエータを用いて制御信号に応じた量の液体洗剤及び／又は柔軟剤を計量し、計量した液体洗剤及び／又は柔軟剤を給水管５１２に投入する装置である。このため、水道からの水と自動投入機５１３により投入された所定量の液体洗剤及び／又は柔軟剤とは、給水管５１２において混ざり合って洗濯水となり、水槽５０２に流入する。なお、自動投入機５１３は、液体洗剤を投入するためのアクチュエータと、柔軟剤を投入するためのアクチュエータとの両方を有していてもよい。
【００４９】
また、洗濯機５００には、水槽５０２の水位を検出する水位センサ（図示せず）が設けられている。水位センサは、水槽５０２に接続されている給水管５１２とは別の管に配置され、水槽５０２の内圧を検出する圧力センサであってもよい。つまり、水槽５０２の水位は、圧力センサの検出結果を用いて検出される。
【００５０】
また、水槽５０２の上部には、風呂水配管５１７が接続されている。風呂水配管５１７には、家庭内の浴槽に貯められた水を導入するためのホースが接続される。風呂水配管５１７には、浴槽に貯められた水を汲み上げるバスポンプ５１６が接続されている。バスポンプ５１６を駆動することで、浴槽からホースを介して浴槽内の水を水槽５０２の内部に導入するバスポンプによる給水を行うことができる。
【００５１】
水槽５０２の下部には、排水管５２１が接続されている。排水管５２１は、洗濯機５００の外部に洗濯水を排出する排水ホースに接続されている。排水管５２１には、排水管５２１を流れる水の中の異物を取り除くための排水フィルタ５２２と、排水管５２１から排水ホースへの水が流れることを止める排水弁５２３とが設けられている。排水弁５２３は、例えば、制御信号が入力されることにより電動で開閉する電磁弁である。
【００５２】
また、排水管５２１には、循環用配管５２５が接続されている。循環用配管５２５は、一端が排水管５２１に接続され、他端が水槽５０２の前側下部に接続されている。排水管５２１を流れ排水フィルタ５２２を通過した水を水槽５０２に戻すための配管である。循環用配管５２５には、水槽５０２内の水を循環させる循環ポンプ５２４が接続されている。循環ポンプ５２４が駆動すると、排水管５２１を流れたあと循環用配管５２５に流入した洗濯水は、循環ポンプ５２４によって水槽５０２内に戻される。
【００５３】
また、水槽５０２の前側の上部にはダクト５３３の一端が接続されており、水槽５０２の後側の上部にはダクト５３３の他端が接続されている。ダクト５３３には、ダクト５３３内の空気を冷却した後に加熱するヒートポンプ５３２と、ダクト５３３の空気を循環させる循環ファン５３４とが設けられている。ヒートポンプ５３２は、図示しない冷媒回路により構成され、冷媒回路は、コンプレッサ、凝縮器、膨張弁および蒸発器を有する。冷媒回路内では、コンプレッサが駆動することにより冷媒が循環する。ヒートポンプ５３２では、ダクト５３３内の空気は、蒸発器で冷却された後に凝縮器で加熱される。蒸発器で冷却されることで、ダクト５３３内の空気中の水分が取り除かれ、その後、凝縮器で加熱されることでダクト５３３内の空気は、温められ乾燥した高温の空気となる。温められ乾燥した高温の空気は、循環ファン５３４により、水槽５０２の内部に送風される。これにより、水槽５０２の内部の衣類などの洗濯物の乾燥が促進される。
【００５４】
ダクト５３３の上流側には、吸気センサ５３１が設けられる。吸気センサ５３１は、ダクト５３３の上流側を流れる空気の温度を検知するセンサである。
【００５５】
ダクト５３３の下流側には、温風センサ５３５が設けられる。温風センサ５３５は、ダクト５３３内の空気の温度を検知する。
【００５６】
ダクト５３３の下流側には、洗濯槽５０３内の洗濯物を除菌する除菌装置５３６が設けられる。除菌装置５３６は、帯電微粒子水などの効能物質を生成する。除菌装置５３６により生成された効能物質が含まれる空気は、循環ファン５３４により洗濯槽５０３の内部に吹き出されるため、洗濯槽５０３の内部の洗濯物は、効能物質により除菌される。
【００５７】
また、水槽５０２の内部には、水槽５０２の内部に泡が発生したことを検知する第１泡センサ５４１および第２泡センサ５４２が設けられている。第１泡センサ５４１は、水槽５０２の内部に第１の量よりも多い泡が発生したことを検知する。第２泡センサ５４２は、水槽５０２の内部に第２の量よりも多い泡が発生したことを検知する。第１の量は、第２の量よりも多い。つまり、第１泡センサ５４１は、第２泡センサ５４２よりも多くの泡が発生したことを検知する。
【００５８】
また、水槽５０２の下部には、水槽５０２の洗濯水を加熱するための温水ヒータ５４３が設けられている。また、水槽５０２の下部には、水槽５０２内の洗濯水の温度が所定温度よりも高い温度であることを検知する温水センサ５４４が設けられている。
【００５９】
筐体５０１の前側上部には、ユーザから洗濯機５００の操作のための入力を受け付ける操作パネル５６０が設けられている。操作パネル５６０は、ユーザからの入力を受け付けた結果に応じた表示を行ってもよいし、当該結果に応じた音を出力してもよい。また、操作パネル５６０は、制御装置５５０による演算結果を表示してもよいし、当該演算結果を示す音を出力してもよい。また、操作パネル５６０は、洗濯機５００の動作状態を表示してもよいし、当該動作状態を示す音を出力してもよい。通信部５７０は、外部機器と通信可能であり、例えば、コンピュータネットワークに通信可能に接続される通信インタフェースである。通信部５７０は、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インタフェースであってもよいし、有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インタフェースであってもよいし、携帯電話通信網に接続するためのインタフェースであってもよい。また、通信部５７０は、クラウドサーバ１０に通信可能に接続されているハブ機器（図示せず）と通信可能に接続されていてもよい。つまり、通信部５７０は、ハブ機器を経由してクラウドサーバ１０と通信可能に接続されていてもよい。通信部５７０は、ハブ機器との間で、赤外線・近距離無線通信などによって通信を行ってもよいし、上記で例示した通信インタフェースで通信を行ってもよい。
【００６０】
筐体５０１には、制御装置５５０が設けられている。制御装置５５０は、振動センサ５０７、水位センサ５１５、吸気センサ５３１、温風センサ５３５、第１泡センサ５４１、第２泡センサ５４２、及び、温水センサ５４４の各種センサからの検知結果を取得する。制御装置５５０は、検知結果に応じて、洗濯モータ５０４、ドアロック機構５０６、給水弁５１１、自動投入機５１３、バスポンプ５１６、排水弁５２３、循環ポンプ５２４、ヒートポンプ５３２、循環ファン５３４、除菌装置５３６、温水ヒータ５４３、及び、操作パネル５６０の動作を制御する。なお、洗濯モータ５０４、ドアロック機構５０６、給水弁５１１、自動投入機５１３、バスポンプ５１６、排水弁５２３、循環ポンプ５２４、ヒートポンプ５３２、循環ファン５３４、除菌装置５３６、及び、温水ヒータ５４３は、洗濯物に対して洗濯に関する運転を行う洗濯機能部の一例であり、また、アクチュエータ２２又は加熱器２３の一例である。
【００６１】
ここで、アプリケーションについて説明する。本実施の形態では、アプリケーション（以下、略してアプリということもある）とは、アクチュエータ２２及び／又は加熱器２３を駆動する複数の機能ブロック（以下、略してブロック）で規定される制御プログラムを意味する。複数のブロックの各々は、アクチュエータ２２又は加熱器２３を駆動するためのパラメータを含むことができる。具体的には、複数のブロックの各々は、アクチュエータ２２又は加熱器２３の制御を抽象化したものである。なお、複数のブロックの各々は、制御情報の一例である。
【００６２】
なお、アプリケーションは、アクチュエータ２２及び／又は加熱器２３を駆動する複数のブロックに加えて、アクチュエータ２２及び／又は加熱器２３を駆動しないブロックを含んでもよい。アクチュエータ２２及び／又は加熱器２３を駆動しないブロックの一例は、デバイス３００の有するインタフェースを用いた情報表示、デバイス３００の有するブザーを用いた音声出力、デバイス３００の有するランプの点灯または消灯などを含む。また、ブロックは、アクチュエータ２２又は加熱器２３の駆動を開始する条件を含んでもよい。例えば、第１ブロック、第２ブロックを含むアプリケーションを例に説明する。ここで、第１ブロックの実行中に、第２ブロックに切り替える際に、第２ブロックに含まれる開始条件を満たしたときに、第１ブロックから第２ブロックに切り替える。また、ブロックは、開始条件ではなく、終了条件を含んでいてもよい。第１ブロックの実行中に、第２ブロックに切り替える際に、第１ブロックに含まれる終了条件を満たしたときに、第１ブロックから第２ブロックに切り替える。
【００６３】
次に、洗濯機５００のアプリケーションを規定するブロックの具体例について図６Ａ〜図６Ｏを用いて説明する。図６Ａ〜図６Ｏで示されるブロックのそれぞれは、洗濯機能部の運転を制御するパラメータに関する制御情報である。
【００６４】
図６Ａは、実施の形態１におけるアプリケーションを規定するブロックの第１の例を示す。図６Ａに示すブロック１０００は、洗濯槽５０３に投入された衣類などの洗濯物の量を検知する洗濯量検知動作を制御するブロックである。洗濯量検知動作では、例えば、洗濯モータ５０４を駆動させることで洗濯モータ５０４に流れるトルク電流を検出することで、検出したトルク電流に予め対応付けられた洗濯量を制御装置５５０のメモリを参照することで特定し、特定した洗濯量を洗濯槽５０３内の洗濯量として検知する。
【００６５】
図６Ｂは、実施の形態１におけるアプリケーションを規定するブロックの第２の例を示す。図６Ｂに示すブロック１０１０は、水槽５０２への給水動作を制御するブロックであり、パラメータ１０１１、１０１２を含む。パラメータ１０１１は、水槽５０２内への給水量を給水後の水位で示す値を含む。パラメータ１０１１は、アクチュエータ２２及び／又は加熱器２３の動作タイミングを示すとも言い換えることができる。制御装置５５０は、例えば、水位センサ５１５により検知された水槽５０２の水位がパラメータ１０１１で示される水位になるまで給水を継続しておき、パラメータ１０１１で示される水位になったときに給水を停止する制御を行う。パラメータ１０１２は、給水経路を指定するパラメータを含む。パラメータ１０１２は、具体的には、給水弁５１１を開にすることで給水管５１２から給水する第１の給水経路での給水か、バスポンプ５１６を駆動することで風呂水配管５１７から給水する第２の給水経路での給水かを指定するパラメータである。第１の給水経路での給水の場合、制御装置５５０は、給水弁５１１を開にすることで給水を開始し、給水弁５１１を閉にすることで給水を停止する。第２の給水経路での給水の場合、制御装置５５０は、バスポンプ５１６の駆動を開始することで給水を開始し、バスポンプ５１６の駆動を停止することで給水を停止する。
【００６６】
なお、給水動作において第２の給水経路で給水が行われる場合において、所定期間（例えば、５〜１０分間）経過してもパラメータ１０１１で示される水位にならなかった場合、制御装置５５０は、第２の給水経路から第１の給水経路に切り替えて給水を行ってもよい。
【００６７】
図６Ｃは、実施の形態１におけるアプリケーションを規定するブロックの第３の例を示す。図６Ｃに示すブロック１０２０は、水槽５０２への注水濯ぎ動作を制御するブロックであり、パラメータ１０２１〜１０２５を含む。注水濯ぎ動作は、水槽５０２へ水を供給しながら洗濯槽５０３を回転させて洗濯物および水を撹拌することで洗濯物を濯ぐ動作である。注水濯ぎ動作では、例えば、上限水位から下限水位までの間で、給水または排水を繰り返すことで水槽５０２内の水位を上下させながら、洗濯槽５０３を回転させて洗濯物を濯ぐ動作である。パラメータ１０２１は、注水濯ぎ動作において水槽５０２へ給水するときの水位の上限を示す値を含む。パラメータ１０２１は、給水を停止し、かつ、排水弁５２３を開にする動作のトリガとなる水位を示すとも言い換えることができる。パラメータ１０２２は、水槽５０２へ給水するときの水位の下限を示す値を含む。パラメータ１０２２は、給水を開始し、かつ、排水弁５２３を閉にする動作のトリガとなる水位を示すとも言い換えることができる。このように、パラメータ１０２１、１０２２は、アクチュエータ２２及び／又は加熱器２３の動作タイミングを示すとも言い換えることができる。パラメータ１０２３は、注水濯ぎ動作の動作時間を示す値を含む。パラメータ１０２３は、アクチュエータ２２及び／又は加熱器２３の駆動時間を示すとも言い換えることができる。パラメータ１０２４は、洗濯槽５０３の回転数（回転速度）、つまり、洗濯モータ５０４の回転速度を示す値を含む。パラメータ１０２５は、撹拌強さを示す値を含む。撹拌強さを示す値は、例えば、濯ぎ動作における１回の洗濯槽５０３の回転が開始されてからパラメータ１０２４で示される回転速度に到達させるまでの時間を示す値である。パラメータ１０２４、１０２５は、アクチュエータ２２及び／又は加熱器２３の駆動の強度を示すとも言い換えることができる。
【００６８】
図６Ｄは、実施の形態１におけるアプリケーションを規定するブロックの第４の例を示す。図６Ｄに示すブロック１０３０は、洗剤投入動作を制御するブロックであり、パラメータ１０３１を含む。洗剤投入動作は、自動投入機５１３のアクチュエータを駆動することで給水管５１２に所定量の液体洗剤を自動的に投入する動作である。パラメータ１０３１は、給水管５１２への液体洗剤の投入量を示す値を含む。パラメータ１０３１は、自動投入機５１３の液体洗剤を投入するアクチュエータの動作量を示すとも言い換えることができる。
【００６９】
図６Ｅは、実施の形態１におけるアプリケーションを規定するブロックの第５の例を示す。図６Ｅに示すブロック１０４０は、柔軟剤投入動作を制御するブロックであり、パラメータ１０４１を含む。柔軟剤投入動作は、自動投入機５１３のアクチュエータを駆動することで給水管５１２に所定量の柔軟剤を自動的に投入する動作である。パラメータ１０４１は、給水管５１２への柔軟剤の投入量を示す値を含む。パラメータ１０４１は、自動投入機５１３の柔軟剤を投入するアクチュエータの動作量を示すとも言い換えることができる。
【００７０】
図６Ｆは、実施の形態１におけるアプリケーションを規定するブロックの第６の例を示す。図６Ｆに示すブロック１０５０は、洗濯機の撹拌動作を制御するブロックであり、パラメータ１０５１〜１０５８を含む。パラメータ１０５１は、撹拌の種類を示す情報（例えば、通常、もみ洗い、揺り）を含む。パラメータ１０５１は、機能の種類を示すとも言い換えることができる。パラメータ１０５２は、ドラム（洗濯槽５０３）の回転数（回転速度）、つまり、洗濯モータ５０４の回転速度を示す値を含む。パラメータ１０５２は、アクチュエータ２２及び／又は加熱器２３の駆動の強度を示すとも言い換えることができる。パラメータ１０５３は、撹拌動作における１回の洗濯槽５０３の回転時間、つまり、洗濯モータ５０４の駆動時間を示す値を含む。パラメータ１０５４は、撹拌動作における洗濯槽５０３の１回の回転動作と次の回転動作の間の回転を停止している時間、つまり、洗濯モータ５０４の停止時間を示す値を含む。パラメータ１０５５は、撹拌動作の動作時間を示す値を含む。パラメータ１０５３〜１０５５は、アクチュエータ２２及び／又は加熱器２３の駆動時間を示すとも言い換えることができる。パラメータ１０５６は、水槽５０２内への給水を開始することを示す値を含む。つまり、パラメータ１０５６は、給水弁５１１を開状態にすることを示す値を含む。パラメータ１０５６は、アクチュエータ２２及び／又は加熱器２３の駆動後の状態を示すとも言い換えることができる。パラメータ１０５７は、循環ポンプの回転方向（正転又は反転）を示す値を含む。パラメータ１０５８は、撹拌強さを示す値を含む。撹拌強さを示す値は、例えば、濯ぎ動作における１回の洗濯槽５０３の回転が開始されてからパラメータ１０５２で示される回転速度に到達させるまでの時間を示す値である。なお、ブロック１０５０は、水槽５０２内の水温が所定の温度に上昇するまで温水ヒータ５４３を駆動するパラメータを含んでいてもよい。
【００７１】
制御装置５５０は、撹拌動作において、パラメータ１０５１で示される種類の撹拌を行う。制御装置５５０は、パラメータ１０５２で示される回転数で洗濯モータ５０４をパラメータ１０５６で示される撹拌強さで回転させ、撹拌動作の開始からパラメータ１０５５で示される動作時間が経過すると洗濯モータ５０４を停止する。また、制御装置５５０は、撹拌動作において、パラメータ１０５６に基づいて給水弁５１１を開にする。また、制御装置５５０は、撹拌動作において、パラメータ１０５７で示される回転方向に循環ポンプ５２４を動作させる。
【００７２】
図６Ｇは、実施の形態１におけるアプリケーションを規定するブロックの第７の例を示す。図６Ｇに示すブロック１０６０は、ドラム回転動作を制御するブロックであり、パラメータ１０６１〜１０６４を含む。パラメータ１０６１は、ドラム（洗濯槽５０３）の回転数（回転速度）、つまり、洗濯モータ５０４の回転速度を示す値を含む。パラメータ１０６１は、アクチュエータ２２及び／又は加熱器２３の駆動の強度を示すとも言い換えることができる。パラメータ１０６２は、ドラム（洗濯槽５０３）の回転方向を示す値を含む。パラメータ１０６２は、アクチュエータ２２及び／又は加熱器２３の動作の種類を示すとも言い換えることができる。パラメータ１０６３は、水槽５０２内への給水を開始することを示す値を含む。つまり、パラメータ１０６３は、給水弁５１１を開状態にすることを示す値を含む。パラメータ１０６３は、アクチュエータ２２及び／又は加熱器２３の駆動後の状態を示すとも言い換えることができる。パラメータ１０６４は、循環ポンプ５２４の回転方向（正転又は反転）を示す値を含む。なお、ブロック１０６０は、水槽５０２内の水温が所定の温度に上昇するまで温水ヒータ５４３を駆動するパラメータを含んでいてもよい。
【００７３】
制御装置５５０は、ドラム回転動作において、パラメータ１０６１で示される回転数で洗濯モータ５０４をパラメータ１０６２で示される回転方向で回転させる。また、制御装置５５０は、ドラム回転動作において、パラメータ１０６３に基づいて給水弁５１１を開にする。また、制御装置５５０は、ドラム回転動作において、パラメータ１０６４に基づく方向に循環ポンプ５２４を動作させる。
【００７４】
図６Ｈは、実施の形態１におけるアプリケーションを規定するブロックの第８の例を示す。図６Ｈに示すブロック１０７０は、脱水動作を制御するブロックであり、パラメータ１０７１、１０７２を含む。パラメータ１０７１は、ドラム（洗濯槽５０３）の回転数（回転速度）、つまり、洗濯モータ５０４の回転速度を示す値を含む。パラメータ１０７１は、アクチュエータ２２及び／又は加熱器２３の駆動の強度を示すとも言い換えることができる。パラメータ１０７２は、脱水動作の動作時間を示す値を含む。制御装置５５０は、脱水動作において、パラメータ１０７１に示される回転数で洗濯モータ５０４を回転させ、脱水動作の開始からパラメータ１０７２で示される動作時間が経過すると洗濯モータ５０４を停止する。
【００７５】
図６Ｉは、実施の形態１におけるアプリケーションを規定するブロックの第９の例を示す。図６Ｉに示すブロック１０８０は、水槽５０２からの排水動作を制御するブロックであり、パラメータ１０８１、１０８２を含む。パラメータ１０８１は、排水弁５２３の開状態又は閉状態を示す値を含む。パラメータ１０８２は、排水を停止するトリガとなる水位を示す値を含む。制御装置５５０は、排水動作において、排水弁５２３を開状態に動作させることで水槽５０２内の洗濯水を洗濯機５００外への排水動作を開始する。制御装置５５０は、その後水位センサにより水槽５０２の水位がパラメータ１０８２で示される水位であることが検知されると排水弁５２３を閉状態に動作させて、排水動作を終了する。
【００７６】
図６Ｊは、実施の形態１におけるアプリケーションを規定するブロックの第１０の例を示す。図６Ｊに示すブロック１０９０は、ドアロック動作を制御するブロックであり、パラメータ１０９１を含む。パラメータ１０９１は、ドアロック機構５０６をロック状態にするかロック解除状態にするかを示す値を含む。パラメータ１０９１は、アクチュエータ２２及び／又は加熱器２３の駆動後の状態を示すとも言い換えることができる。制御装置５５０は、パラメータ１０９１がドアロック機構５０６をロック状態にすることが示されている場合で、ドアロック機構５０６がロック解除状態である場合、ドアロック機構５０６をロック状態に切り替える。制御装置５５０は、パラメータ１０９１がドアロック機構５０６をロック解除状態にすることが示されている場合で、ドアロック機構５０６がロック状態である場合、ドアロック機構５０６をロック解除状態に切り替える。
【００７７】
図６Ｋは、実施の形態１におけるアプリケーションを規定するブロックの第１１の例を示す。図６Ｋに示すブロック１１００は、浸漬動作を制御するブロックであり、パラメータ１１０１、１１０２を含む。パラメータ１１０１は、循環ポンプ５２４の回転方向（正転又は反転）を示す値を含む。パラメータ１１０２は、浸漬動作の動作時間を示す値を含む。制御装置５５０は、パラメータ１１０１で示される回転方向に循環ポンプ５２４を動作させ、浸漬動作の開始からパラメータ１１０２で示される動作時間が経過すると循環ポンプ５２４を停止する。
【００７８】
図６Ｌは、実施の形態１におけるアプリケーションを規定するブロックの第１２の例を示す。図６Ｌに示すブロック１１１０は、除菌・抗菌動作を制御するブロックであり、パラメータ１１１１、１１１２を含む。パラメータ１１１１は、除菌装置５３６及び循環ファン５３４を駆動させる動作時間を示す値を含む。パラメータ１１１２は、循環ファン５３４の回転数（回転速度）を示す値を含む。制御装置５５０は、除菌・抗菌動作において、除菌装置５３６及び循環ファン５３４を駆動させ、パラメータ１１１１で示される動作時間が経過すると除菌装置５３６及び循環ファン５３４を停止する。除菌・抗菌動作において、制御装置５５０は、循環ファン５３４をパラメータ１１１２で示される回転数（回転速度）で駆動する。
【００７９】
図６Ｍは、実施の形態１におけるアプリケーションを規定するブロックの第１３の例を示す。図６Ｍに示すブロック１１２０は、ブザー動作を制御するブロックであり、パラメータ１１２１を含む。パラメータ１１２１は、操作パネル５６０のスピーカを駆動させる動作時間を示す値を含む。制御装置５５０は、ブザー動作において、ブザー音を出力し、ブザー音の出力を開始してからパラメータ１１２１で示される動作時間が経過するとブザー音の出力を停止する。
【００８０】
図６Ｎは、実施の形態１におけるアプリケーションを規定するブロックの第１４の例を示す。図６Ｎに示すブロック１１３０は、送風動作を制御するブロックであり、パラメータ１１３１、１１３２を含む。パラメータ１１３１は、循環ファン５３４を駆動させる動作時間を示す値を含む。パラメータ１１３２は、循環ファン５３４により水槽５０２内に送風される空気の温度を示す値を含む。制御装置５５０は、送風動作において、循環ファン５３４を駆動させ、循環ファン５３４の駆動を開始してからパラメータ１１３１で示される動作時間が経過すると循環ファン５３４を停止する。または、制御装置５５０は、送風動作において、循環ファン５３４を駆動させ、循環ファン５３４の駆動を開始してからパラメータ１１３２で示される温度以下に低下したことが温風センサ５３５で検知されると循環ファン５３４を停止する。
【００８１】
図６Ｏは、実施の形態１におけるアプリケーションを規定するブロックの第１５の例を示す。図６Ｏに示すブロック１１４０は、乾燥動作を制御するブロックであり、パラメータ１１４１を含む。パラメータ１１４１は、低温、標準、しっかりなどの乾燥動作のパターン（動作モード）を示す値を含む。具体的には、低温のパターンでは、洗濯槽５０３内の温度が所定温度より低い低温での乾燥が行われる。標準のパターンでは、洗濯槽５０３内の温度が所定温度より高い標準の温度での乾燥が行われる。しっかりのパターンでは、洗濯槽５０３内が乾燥状態であることが検知された後から一定時間の乾燥が継続される。制御装置５５０は、吸気センサ５３１により検出された吸気側の温度と、温風センサ５３５により検出された排気側の温度との差が所定の差未満である場合に、乾燥状態であると判断する。なお、それぞれのパターンは、乾燥動作の時間［ｍ］、循環ファン５３４のファン回転数［ｒｐｍ］、吸気センサ５３１及び／又は温風センサ５３５による乾燥検知温度［ｄｅｇ］、パラメータ１０５１と同じ撹拌種類、パラメータ１０５２と同じドラム回転数［ｒｐｍ］、パラメータ１０５３と同じドラムＯＮ時間［ｓ］、パラメータ１０５４と同じドラムＯＦＦ時間［ｓ］などの組み合わせにより構成されていてもよい。
【００８２】
アプリケーションを規定するためには、図６Ａ〜図６Ｏで示したようなブロックが複数用いられる。なお、図６Ａ〜図６Ｏに示す複数のブロックは例示であり、洗濯機５００のためのブロックは、これらに限定されない。例えば、複数のブロックは、抽象化レベルによって階層化されてもよい。
【００８３】
例えば、製造者向けの階層と製造者以外向けの階層とで抽象化レベルを変更してもよい。製造者以外の例は、他の製造者向けの階層、サードパーティ向けの階層である。
【００８４】
この時、製造者向けの階層は、製造者以外向けの階層より抽象度が低い。抽象度が低いことは、アクチュエータ及び加熱器を駆動するパラメータに近い内容が制御されることを意味する。
【００８５】
一方、製作者は、ノウハウ及び安全性を担保する最小の抽象化レベルを有するブロックを製造者以外向けに提供することで、製造者以外がアプリケーションを開発可能にする。製造者は、一般ユーザに、さらに高い抽象化レベルを有するブロックを提供することで、より多くの人がアプリケーションを開発可能にできる。さらに高い抽象化レベルは、例えば、一般ユーザ自身が専門的な知識がなくても理解できる用語で規定されたブロックに対応する。専門的な知識がなくても理解できる用語は、例えば、家庭用電化製品等の機能自体に対応する内容である。具体的には、洗濯機においての「洗い」ブロック中の水量に関するパラメータとして「たっぷり」を選択した場合に、一つの具体化されたレイヤーにおいては、給水ブロックにおける水位パラメータを６０ｍｍから１００ｍｍに上げ、撹拌ブロックにおける回転量パラメータを１２０ｒｐｍから１００ｒｐｍに下げるなどの変更が行われる。上記より、抽象度の高いレベルにおけるブロックの並べ替え及びパラメータ変更は、より抽象度の低いブロックで実現することができる。これらのブロックにより、アクチュエータ及び加熱器の駆動に関する安全性、秘匿性を担保しながら、その組替、パラメータ調整によって自由にアプリケーション開発を行うことができる。
【００８６】
［１．３  処理］
次に、以上のように構成されたシステム１の処理について図７を参照しながら説明する。図７は、実施の形態１におけるシステム１のシーケンス図である。
【００８７】
［１．３．１  準備フェーズＦ１００］
まず、準備フェーズＦ１００について説明する。
【００８８】
（ステップＳ１１０）
シーケンスマネージャ１００は、デバイスマネージャ２００にシーケンスマネージャ情報を送信する。このシーケンスマネージャ情報の送信は、例えばシステム管理者の命令により行われる。デバイスマネージャ２００は、受信したシーケンスマネージャ情報を例えばシーケンスマネージャデータベースに登録する。なお、シーケンスマネージャ情報がシーケンスマネージャデータベースに予め登録されている場合は、このステップはスキップされてもよい。
【００８９】
シーケンスマネージャ情報は、例えばシーケンスマネージャ１００の識別子及び／又はアドレス（例えばＵＲＬ（Uniform Resource Locator）、ＩＰ（Internet Protocol）アドレス等）を含む。さらに、シーケンスマネージャ情報は、任意の情報を含んでもよい。
【００９０】
（ステップＳ１１２）
デバイス３００は、デバイスマネージャ２００にデバイス情報１２０１を送信する。このデバイス情報１２０１の送信は、例えばデバイス３００がコンピュータネットワークに接続されたときに行われる。デバイスマネージャ２００は、受信したデバイス情報１２０１をデバイスデータベース１２００に登録する。なお、デバイス情報１２０１がデバイスデータベース１２００に予め登録されている場合は、このステップはスキップされてもよい。
【００９１】
なお、デバイス情報１２０１は、ＵＩ４００に送信されてから、ＵＩ４００を介してデバイスマネージャ２００に登録されてもよい。
【００９２】
デバイス情報１２０１は、デバイス３００の識別子及び／又はアドレスを含む。さらに、デバイス情報１２０１は、任意の情報を含んでもよい。図８は、実施の形態１におけるデバイスデータベースの一例を示す。図８のデバイスデータベース１２００には、デバイス情報１２０１を含む複数のデバイス情報が登録されている。各デバイス情報は、デバイスＩＤと、アドレスと、種別と、製造者名と、アクチュエータ／加熱器と、劣化レベルと、を含む。アクチュエータ／加熱器は、デバイス３００を構成するアクチュエータ２２及び／又は加熱器２３の識別情報である。劣化レベルは、デバイス３００を構成するアクチュエータ２２及び／又は加熱器２３が劣化しているか否かを示す劣化情報の一例である。ここでは、劣化レベルは、値が増加すればより劣化していることを示す。デバイス情報１２０１に、実行可能なブロックの情報が含まれていてもよい。実行可能なブロックに関する情報とは、データベースに含まれるブロックが実行可能又は実行不可能が対応付けられた情報でもよいし、実行可能なブロックのみの情報でもよい。また、ブロックが実行可能か否かは、デバイス情報１２０１に含まれるアクチュエータ／加熱器などの情報に基づいて予め準備され得る。
【００９３】
なお、デバイス情報１２０１は、施設２ａ〜２ｄを特定可能な情報を含んでもよい。
【００９４】
（ステップＳ１１４）
ＵＩ４００は、デバイスマネージャ２００にＵＩ情報を送信する。このＵＩ情報の送信は、例えばユーザの指示により行われる。デバイスマネージャ２００は、受信したＵＩ情報を例えばＵＩデータベースに登録する。なお、ＵＩ情報がＵＩデータベースに予め登録されている場合は、このステップはスキップされてもよい。
【００９５】
ＵＩ情報は、例えばＵＩ４００の識別子及び／又はアドレスを含む。さらに、ＵＩ情報は、任意の情報を含んでもよい。
【００９６】
なお、ＵＩ情報は、施設２ａ〜２ｄを特定可能な情報を含んでもよい。
【００９７】
以上の処理により、シーケンスマネージャ１００、デバイスマネージャ２００、デバイス３００及びＵＩ４００は、互いに紐づけられ、互いに接続を確立することができる。このより、準備フェーズＦ１００が終了する。
【００９８】
［１．３．２  アプリ実行前フェーズＦ２００］
次に、アプリ実行前フェーズＦ２００について説明する。なお、アプリ実行前フェーズＦ２００の前には、ＵＩ４００を介したユーザからの指示に従って、アプリケーション配信プラットフォームからシーケンスマネージャ１００にアプリケーションがダウンロードされている。このようにシーケンスマネージャ１００にアプリケーションがダウンロードされた状態で以下の処理が行われる。
【００９９】
（ステップＳ２１０）
ＵＩ４００は、ユーザからアプリ実行要求を受け付け、アプリケーションの識別情報を含むアプリ実行要求をシーケンスマネージャ１００に送信する。例えば、ユーザは、ＵＩ４００を介して、シーケンスマネージャ１００にダウンロードされている複数のアプリケーションの中からアプリケーションを選択し、選択したアプリケーションの実行を指示する。
【０１００】
なお、ＵＩ４００からシーケンスマネージャ１００に送信されるアプリ実行要求は、施設２ａ〜２ｄを特定可能な情報とセットで送信される。
【０１０１】
なお、アプリ実行要求は、ユーザから明示的に受け付けられなくてもよい。例えば、ユーザの行動又は状態を検出し、検出結果に基づいて自動的にアプリ実行要求がシーケンスマネージャ１００に送信されてもよい。
【０１０２】
（ステップＳ２１２）
シーケンスマネージャ１００は、アプリ実行要求によって識別されたアプリケーションの実行内容宣言をデバイスマネージャ２００に送信する。実行内容宣言は、実行するアプリケーションを規定する複数のブロックの情報及び施設２ａ〜２ｄを特定可能な情報を含む。
【０１０３】
図９は、実施の形態１における実行内容宣言の一例を示す図である。図９には、図６Ａ〜図６Ｏに示す洗濯機のための複数のブロックを組み合わせて規定されたアプリケーションのための実行内容宣言１３００が表されている。実行内容宣言１３００は、複数のブロック１３０１、及び、各ブロック１３０１の実行に必要なデバイスに関する情報１３０２、及び、各ブロック１３０１を実行する順番に関する順番情報１３０３を含む。実行内容宣言１３００は、洗濯情報の一例である。
【０１０４】
なお、実行内容宣言１３００は、デバイスに関する情報１３０２を含まなくてもよい。その場合、複数のブロック１３０１の情報から、受け取った施設情報が示す施設で該当ブロックを実行可能なデバイスを、デバイスマネージャ２００が検索してデバイス割付けを行う必要がある。
【０１０５】
なお、図９では、デバイスに関する情報１３０２は、デバイス３００の型番を示しているが、これに限定されない。デバイスに関する情報１３０２は、ブロックに割付可能なデバイス３００の条件を示すことができれば、どのような情報であってもよい。例えば、デバイスに関する情報１３０２は、複数の型番を含んでもよいし、デバイスの種別、使用目的、配置場所、又は、これらの任意の組み合わせのみを含んでもよい。
【０１０６】
（ステップＳ２１４）
デバイスマネージャ２００は、実行内容宣言１３００に含まれる各ブロックに対して、施設２ａ〜２ｄを特定可能な情報を基にして、デバイスマネージャ２００に紐付けられているデバイス３００を割り付ける。例えば、デバイスマネージャ２００は、図９に示す複数のブロック１３０１の各々に、図８のデバイスデータベース１２００に、受け取った施設情報が示す施設に接続済として登録されている、型番ＷＭ−０００１を有するデバイスＤＥＶ００１を割り付ける。なお、デバイス３００の稼働状態又はクラウドへの接続状態が管理されている場合には、稼働中のデバイス３００の割り付けが禁止されてもよい。
【０１０７】
なお、例えば図９に示す複数のブロックが、受け取った施設情報が示す施設に接続済として登録されていない場合、すなわち、該当施設において対象デバイスが存在していない場合、デバイスマネージャ２００は実行内容宣言されたアプリケーションの実行が不可であることをシーケンスマネージャ２００に通知する。
【０１０８】
（ステップＳ２１５）
デバイスマネージャ２００は、デバイス割り付けの結果をデバイス３００に通知する。これにより、アプリケーションに含まれる複数のブロックが、それぞれ割り付けられたデバイス３００に送信される。
【０１０９】
（ステップＳ２１６）
デバイス３００は、ブロックの実行前にブロックを確認する。つまり、デバイス３００は、ブロックを実行する前に、ブロックが実行されたときにデバイス３００で問題が生じないかをチェックする。例えばデバイス３００は、安全及び／又は効率上の問題をチェックする。
【０１１０】
そして、デバイス３００は、確認結果に基づいて、ブロックを変更する。これにより、問題が生じないようにブロックが修正される。
【０１１１】
このような実行前確認処理について、図１０を参照しながら、さらに詳細に説明する。図１０は、実施の形態１における実行前確認処理のフローチャートを示す。
【０１１２】
（ステップＳ２１６５）
デバイス３００は、ブロックに対応するルールを取得する。ルールは、洗濯の順番に関するルールである。ルールでは、第１ブロック（第１の制御情報）の次に第２ブロック（第２の制御情報）が実行される実行内容宣言１３００が許容されるか否かが規定されている。つまり、ルールでは、実行内容宣言１３００で規定されている複数のブロック１３０１の内の連続して実行される２つのブロックの順番が許容されるか否かが規定されている。例えば、デバイス３００は、ルールデータベースを参照して、連続して実行される２つのブロックの順番が許容されない条件を取得する。ルールデータベースは、例えばデバイス３００に含まれてもよいし、シーケンスマネージャ１００又はデバイスマネージャ２００に含まれてもよい。
【０１１３】
以下、ルールデータベース１４００で規定されるルールについて図１１を参照しながら、具体的に説明する。図１１は、実施の形態１におけるルールデータベースの一例を示す。図１１のルールデータベース１４００には、第１のルール１４０１、第２のルール１４０２、第３のルール１４０３、第４のルール１４０４、及び、第５のルール１４０５が登録されている。第１のルール１４０１、第２のルール１４０２、第３のルール１４０３、第４のルール１４０４、及び、第５のルール１４０５の各々は、第１ブロック（第１の制御情報）の次に第２ブロック（第２の制御情報）が実行されることが許容されないことが規定されている。つまり、第１のルール１４０１、第２のルール１４０２、第３のルール１４０３、第４のルール１４０４、及び、第５のルール１４０５の各々は、洗濯の順番に関するルールである。
【０１１４】
第１のルール１４０１では、例えば、第１ブロックが洗濯機５００の水槽５０２への給水に関するパラメータを含み、かつ、第２ブロックが禁水環境で実行される運転を制御するパラメータを含むことが許容されない。この場合の第１ブロックは、例えば、ブロック１０１０、１０２０、１０５０、１０６０である。禁水環境で実行される運転は、水槽５０２に水が貯められているときに実行されることが許容されない運転を含む。禁水環境は、具体的には、水槽５０２の水位が所定の水位（例えば、水位センサが検知可能な最低水位）よりも低い水位であることである。つまり、水槽５０２に水が貯められているときとは、水槽５０２の水位が所定の水位以上の水位であることである。第２ブロックは、例えば、ブロック１０００、１０７０、１１１０などである。ブロック１０００の洗濯量検知動作が禁水環境で実行される運転であるのは、洗濯物が浸水している状態では、精度よく洗濯物の量を検知することが難しいからである。また、ブロック１０７０の脱水動作が禁水環境で実行される運転であるのは、洗濯物が浸水している状態では、効果的に脱水することが難しいからである。また、ブロック１１１０の除菌・抗菌動作が禁水環境で実行される運転であるのは、洗濯物が浸水している状態では、帯電微粒子水などの効能物質が含まれる空気を洗濯槽５０３へ放出しても効能物質の性能が十分に得られないからである。
【０１１５】
第２のルール１４０２では、例えば、第１ブロックが洗濯機５００の水槽５０２内の加熱に関するパラメータを含み、かつ、第２ブロックが禁熱環境で実行される運転を制御するパラメータを含むことが許容されない。この場合の第１ブロックは、例えば、ブロック１１４０である。また、この場合の第１ブロックは、温水ヒータ５４３を水槽５０２内の洗濯水の温度が所定の水温（例えば６０度）以上になるまで駆動するパラメータを含む場合のブロック１０５０、１０６０などであってもよい。禁熱環境で実行される運転は、水槽５０２内の温度が所定の温度以上のときに実行されることが許容されない運転を含む。禁熱環境は、具体的には、水槽５０２内の空間の温度が所定の温度未満となること、または、水槽５０２内の洗濯水の温度が所定の水温未満となることである。第２ブロックは、例えば、パラメータ１０８１が排水弁５２３を示す場合のブロック１０８０、パラメータ１０９１がドアロックを解除することを示す場合のブロック１０９０などである。ブロック１０８０の排水動作が禁熱環境で実行される運転であるのは、高温水が洗濯機５００の外部の排水管に流れることで、排水管が熱で変形したり破損したりすることを防止するためである。ブロック１０９０のドアロックの解除動作が禁熱環境で実行される運転であるのは、ユーザがドア５０５を開けて洗濯槽５０３内の洗濯物を取り出そうとしたときにユーザが高温の洗濯物に触れることを防止するためである。
【０１１６】
第３のルール１４０３では、例えば、第１ブロックが水が貯められている洗濯機５００の洗濯槽５０３の回転に関するパラメータを含み、かつ、第２ブロックが禁動環境で実行される運転を制御するパラメータを含むことが許容されない。この場合の第１ブロックは、例えば、ブロック１０５０、１０６０、１０７０などである。禁動環境で実行される運転は、水槽５０２（または洗濯槽５０３）内の水面を動かすことが許容されない運転を含む。禁動環境は、具体的には、水槽５０２（または洗濯槽５０３）が所定の振幅（または所定の変位）未満で振動または静止していることである。第２ブロックは、例えば、ブロック１０１０、１０２０などである。ブロック１０１０が禁動環境で実行される運転であるのは、水面が動いている状態では正確に水位を検知することが難しいからである。
【０１１７】
なお、図示していないが、例えば、撹拌動作を実行しながら給水動作を実行するブロックにおいて撹拌動作を開始して所定時間後に給水動作を開始する場合、撹拌動作のサブブロックを第１ブロックとみなし、給水動作のサブブロックを第２ブロックとみなしてもよい。
【０１１８】
第４のルール１４０４では、例えば、第１ブロックが洗濯機５００の水槽５０２（または洗濯槽５０３）内への送風に関するパラメータを含み、かつ、第２ブロックが禁動環境で実行される運転を制御するパラメータを含むことが許容されない。この場合の第１ブロックは、例えば、ブロック１１３０、１１４０などである。禁動環境で実行される運転は、水槽５０２（または洗濯槽５０３）内の水面を動かすことが許容されない運転を含む。禁動環境は、具体的には、水槽５０２（または洗濯槽５０３）内の水位が所定の振幅（または所定の変位）未満で振動または静止していることである。第２ブロックは、例えば、ブロック１０１０、１０２０などである。ブロック１０１０が禁動環境で実行される運転であるのは、水面が動いている状態では正確に水位を検知することが難しいからである。
【０１１９】
第５のルール１４０５では、例えば、第１ブロックが洗濯機５００の洗濯槽５０３を第１の回転で回転させるパラメータを含み、かつ、第２ブロックが第１の回転とは異なる第２の回転で洗濯槽５０３を回転させるパラメータを含むことが許容されない。ここで、第１の回転と第２の回転との回転が異なるとは、それぞれの回転速度が互いに異なることであってもよい。つまり、第１の回転における第１回転速度は、第２の回転の第２回転速度と異なっていてもよい。。また、第１の回転と第２の回転との回転が異なるとは、それぞれの回転の向きが互いに異なることであってもよい。つまり、第１の回転の向きは、第２の回転の向きと異なっていてもよい。
【０１２０】
この場合の第１ブロックは、例えば、ブロック１０５０、１０６０、１０７０などである。第２ブロックは、例えば、第１ブロックとは回転が異なるブロック１０５０、１０６０、１０７０などである。
【０１２１】
なお、図１１では、第１のルール１４０１、第２のルール１４０２、第３のルール１４０３、第４のルール１４０４、及び、第５のルール１４０５の各々は、第１ブロックの次に第２ブロックが実行されることが許容されないことが規定されているとしたが、第１ブロックの次に第２ブロックが実行されることが許容されることが規定されていてもよい。この場合であっても、ルールとして規定されていない組み合わせの第１ブロックおよび第２ブロックの組み合わせの実行が許容されないこととして定義することができる。
【０１２２】
例えば、アクチュエータ２２又は加熱器２３は、筐体２１の内部空間などのデバイス３００の環境に応じて安全に駆動できるパラメータが変わり、許容されるブロックの順番はアクチュエータ２２又は加熱器２３自体の性能のみに依存しない場合がある。したがって、いずれの環境でも安全に駆動するために、安全性を考慮する比重が高い順番になり、多種多様なアプリケーションの開発の余地が低減することになる。そこで、ルールは、アプリケーションと独立して、デバイス３００等の情報と対応付けられてもよい。そのようなルールが用いられることで、安全性及び多種多様なアプリケーションの開発を両立できる。
【０１２３】
ルールは、アクチュエータ２２又は加熱器２３が安全に駆動できる順番で組み合わせられた複数のブロックに関連する。安全に駆動できる順番で組み合わせられた複数のブロックは、ブロックの開始条件又は終了条件を考慮された順番であってもよい。第２ブロックの開始条件に達するまで、第１ブロックを実行することで、アクチュエータ２２又は加熱器２３の安全性に影響がある負荷かかる場合を想定したブロックが実行される順番が設定され得る。つまり、ブロックが実行される順番は、アクチュエータ２２又は加熱器２３の性能、ブロックの開始条件又は終了条件などに依存する。
【０１２４】
第１のルール１４０１、第２のルール１４０２、第３のルール１４０３、第４のルール１４０４、及び、第５のルール１４０５の各々は、さらに、種別と、製造者名と、アクチュエータ／加熱器と、を有していてもよい。これにより、デバイス３００は、ルールデータベース１４００から、ブロックで駆動されるアクチュエータ２２又は加熱器２３に対応するルールを取得することができる。
【０１２５】
（ステップＳ２１６６）
デバイス３００は、第１ブロックの次に第２ブロックを実行することが許容されるか否かを判定する。ここで、第１ブロックの次に第２ブロックを実行することが許容されないと判定された場合（Ｓ２１６６のＮｏ）、デバイス３００は、以降のステップＳ２１６７をスキップして実行前確認処理を終了する。一方、第１ブロックの次に第２ブロックを実行することが許容されると判定された場合（Ｓ２１６６のＹｅｓ）、デバイス３００は、次のステップＳ２１６７に進む。
【０１２６】
（ステップＳ２１６７）
デバイス３００は、ルールデータベース１４００のルールに基づいて実行内容宣言１３００を修正し、実行前確認処理を終了する。実行内容宣言１３００の修正とは、例えば、実行内容宣言１３００に、第１ブロックの次に実行される順番の制御情報として第３ブロック（第３の制御情報）を追加することである。実行内容宣言１３００の修正とは、例えば、実行内容宣言１３００に、第１ブロックに含まれるパラメータに関する情報、又は、第２ブロックに含まれるパラメータに関する情報を修正することである。実行内容宣言１３００の修正とは、例えば、第２ブロックの実行を制限することである。または、実行内容宣言１３００の修正とは、上記のブロックの追加、パラメータの修正、及び、第２ブロックの実行の制限の任意の組み合わせであってもよい。
【０１２７】
このような実行内容宣言１３００の修正の具体例について図１２〜図２０を参照しながら説明する。
【０１２８】
図１２は、実施の形態１における実行内容宣言の修正の第１の例を示す。図１２では、実行内容宣言において、給水動作のブロック１０１０の次に禁水環境で実行される運転である脱水動作のブロック１０７０が実行されることが示されている。これは、第１のルール１４０１で許容されないため、制御装置５５０は、ブロック１０１０の次に実行される順番の制御情報として水槽５０２からの排水に関するパラメータを含む排水動作のブロック１０８０を追加する。つまり、給水動作の次に脱水動作が実行されることが設定されていたとしても、制御装置５５０は、給水動作と脱水動作との間に排水動作を追加する。このため、脱水動作が開始される前に水槽５０２を禁水環境とすることができ、効果的に脱水することができる。
【０１２９】
なお、図１２において、脱水動作のブロック１０７０の代わりに除菌・抗菌動作のブロック１１１０が設定されていたとしても同様に、ブロック１０７０とブロック１１１０との間に排水動作のブロック１０８０を追加してもよい。これにより、除菌・抗菌動作が開始される前に水槽５０２を禁水環境とすることができ、効果的に洗濯物を除菌することができる。
【０１３０】
また、図１２において、給水動作のブロック１０１０の代わりに、注水動作のブロック１０２０や、給水動作のパラメータを含む、撹拌動作のブロック１０５０、ドラム回転動作のブロック１０６０が設定されている場合も上記と同様に、その直後に排水動作のブロック１０８０を追加することで上記と同様の効果が得られる。
【０１３１】
図１３は、実施の形態１における実行内容宣言の修正の第２の例を示す。図１３では、図１２と同様に実行内容宣言において、給水動作のブロック１０１０の次に禁水環境で実行される運転である脱水動作のブロック１０７０が実行されることが示されている。これは、第１のルール１４０１で許容されないため、制御装置５５０は、ブロック１０７０の直前に水槽５０２からの排水に関するパラメータ１０７３を追加するように、ブロック１０７０を修正することでブロック１０７０Ａを新たに生成してもよい。パラメータ１０７３は、排水弁５２３を開に制御することを示すパラメータである。このため、脱水動作が開始される前に水槽５０２を禁水環境とすることができ、効果的に脱水することができる。
【０１３２】
なお、図１３において、脱水動作のブロック１０７０の代わりに除菌・抗菌動作のブロック１１１０が設定されていたとしても同様に、パラメータ１０７３をブロック１１１０の直前に追加するようにブロック１１１０を修正してもよい。これにより、除菌・抗菌動作が開始される前に水槽５０２を禁水環境とすることができ、効果的に洗濯物を除菌することができる。
【０１３３】
また、図１３において、給水動作のブロック１０１０の代わりに、注水動作のブロック１０２０や、給水動作のパラメータを含む、撹拌動作のブロック１０５０、ドラム回転動作のブロック１０６０が設定されている場合も上記と同様に、その直後のブロックに当該ブロックの動作が行われる直前に排水が行われるようにパラメータ１０７３を追加することで上記と同様の効果が得られる。
【０１３４】
図１４は、実施の形態１における実行内容宣言の修正の第３の例を示す。図１４では、実行内容宣言において、給水動作のブロック１０１０の次に禁水環境で実行される運転である洗濯量検知動作のブロック１０００が実行されることが示されている。これは、第１のルール１４０１で許容されないため、制御装置５５０は、ブロック１０１０の次に実行される順番のブロック１０００の実行を制限する。具体的には、制御装置５５０は、ブロック１０００を削除する、または、ブロック１０００の実行をスキップする。また、制御装置５５０は、逐次ブロックを読み込んで実行している場合、ブロック１０１０の実行が終了した後に、運転を停止することでブロック１０００の実行を制限してもよい。このため、精度よく洗濯物の量を検知することが難しい環境下において、洗濯量検知動作が行われることを抑制することができる。よって、洗濯量検知動作に係る消費電力を低減することができる。
【０１３５】
図１５は、実施の形態１における実行内容宣言の修正の第４の例を示す。図１５では、実行内容宣言において、乾燥動作のブロック１１４０の次に禁熱環境で実行される運転であるドアロック解除動作のブロック１０９０が実行されることが示されている。これは、第２のルール１４０２で許容されないため、制御装置５５０は、ブロック１１４０の次に実行される順番の制御情報として洗濯槽５０３内の放熱に関するパラメータを含む送風動作のブロック１１３０を追加する。つまり、乾燥動作の次にドアロック解除動作が実行されることが設定されていたとしても、制御装置５５０は、乾燥動作とドアロック解除動作との間に送風動作を追加する。このため、ドアロック解除動作が開始される前に洗濯槽５０３内の温度を所定の温度未満に低下させることができ、ユーザが高温の洗濯物に触れることを抑制することができる。なお、送風動作のブロック１１３０を追加する代わりに、送風動作がドアロック解除動作の直前に行われるように、送風動作を行うパラメータをドアロック解除動作のブロック１０９０に追加してもよいし、乾燥動作のブロック１１４０に追加してもよい。
【０１３６】
図１６は、実施の形態１における実行内容宣言の修正の第５の例を示す。図１６では、実行内容宣言において、所定の水温以上の高温水での撹拌動作のブロック１０５０の次に禁熱環境で実行される運転である排水動作のブロック１０８０が実行されることが示されている。これは、第２のルール１４０２で許容されないため、制御装置５５０は、ブロック１０５０の次に実行される順番の制御情報として放熱に関するパラメータを含む待機動作のブロック１１５０を追加する。ブロック１１５０による待機動作では、制御装置５５０は、所定期間（例えば１０分間）が経過するまで次のブロック１０８０の実行を待機する。つまり、高温水での撹拌動作の次に排水動作が実行されることが設定されていたとしても、制御装置５５０は、高温水での撹拌動作と排水動作との間に待機動作を追加する。このため、排水動作が開始される前に水槽５０２内の洗濯水の温度を所定の水温未満に低下させることができ、高温水が洗濯機５００の外部の排水管に流れることを抑制することができる。なお、待機動作のブロック１１５０を追加する代わりに、待機動作が排水動作の直前に行われるように、待機動作を行うパラメータを排水動作のブロック１０８０に追加してもよいし、撹拌動作のブロック１０５０に追加してもよい。なお、放熱するための動作の一例として待機動作を挙げたがこれに限らずに、給水動作の後に排水動作を行うことで放熱を行ってもよい。
【０１３７】
図１７は、実施の形態１における実行内容宣言の修正の第６の例を示す。図１７では、実行内容宣言において、撹拌動作のブロック１０５０の次に禁動環境で実行される運転である給水動作のブロック１０１０が実行されることが示されている。これは、第３のルール１４０３で許容されないため、制御装置５５０は、ブロック１０５０の次に実行される順番の制御情報として所定期間（例えば１分間）何もせずに待機する動作に関するパラメータを含む待機動作のブロック１１５０を追加する。つまり、撹拌動作の次に給水動作が実行されることが設定されていたとしても、制御装置５５０は、撹拌動作と給水動作との間に待機動作を追加する。このため、給水動作が開始される前に水槽５０２（または洗濯槽５０３）が所定の振幅（または所定の変位）未満で振動または静止させることができ、水面の揺れを低減することができる。なお、待機動作のブロック１１５０を追加する代わりに、待機動作が給水動作の直前に行われるように、待機動作を行うパラメータを給水動作のブロック１０１０に追加してもよいし、撹拌動作のブロック１０５０に追加してもよい。
【０１３８】
なお、図１７において、給水動作のブロック１０１０の代わりに注水動作のブロック１１２０や、給水動作のパラメータを含む、撹拌動作のブロック１０５０、ドラム回転動作１０６０のブロックが設定されていたとしても同様に、撹拌動作と給水動作のパラメータを含むブロックとの間に待機動作のブロック１１５０を追加してもよい。これにより、給水動作が開始される前に水槽５０２を禁動環境とすることができ、給水動作において効果的に水槽５０２の水位を検知することができる。
【０１３９】
また、図１７において、撹拌動作のブロック１０５０の代わりに、ドラム回転動作のブロック１０６０のブロックが設定されている場合も上記と同様に、その直後に待機動作のブロック１１５０を追加することで上記と同様の効果が得られる。
【０１４０】
図１８は、実施の形態１における実行内容宣言の修正の第７の例を示す。図１８では、実行内容宣言において、送風動作のブロック１１３０の次に禁動環境で実行される運転である給水動作のブロック１０１０が実行されることが示されている。これは、第４のルール１４０４で許容されないため、制御装置５５０は、ブロック１１３０の次に実行される順番の制御情報として所定期間（例えば１分間）何もせずに待機する動作に関するパラメータを含む待機動作のブロック１１５０を追加する。つまり、送風動作の次に給水動作が実行されることが設定されていたとしても、制御装置５５０は、送風動作と給水動作との間に待機動作を追加する。このため、給水動作が開始される前に水面の揺れを低減することができる。なお、待機動作のブロック１１５０を追加する代わりに、待機動作が給水動作の直前に行われるように、待機動作を行うパラメータを給水動作のブロック１０１０に追加してもよいし、送風動作のブロック１１３０に追加してもよい。
【０１４１】
なお、図１８において、給水動作のブロック１０１０の代わりに注水動作のブロック１１２０や、給水動作のパラメータを含む、撹拌動作のブロック１０５０、ドラム回転動作１０６０のブロックが設定されていたとしても同様に、送風動作と給水動作のパラメータを含むブロックとの間に待機動作のブロック１１５０を追加してもよい。これにより、給水動作が開始される前に水槽５０２を禁動環境とすることができ、給水動作において効果的に水槽５０２の水位を検知することができる。
【０１４２】
図１９は、実施の形態１における実行内容宣言の修正の第８の例を示す。図１９では、実行内容宣言において、脱水動作のブロック１０７０の次に脱水動作とは異なる回転を用いた運転である撹拌動作のブロック１０５０が実行されることが示されている。これは、第５のルール１４０３で許容されないため、制御装置５５０は、ブロック１０７０の次に実行される順番の制御情報として所定期間（例えば３０秒間）何もせずに待機する動作に関するパラメータを含む待機動作のブロック１１５０を追加する。つまり、脱水動作の次に脱水動作とは異なる回転を用いた撹拌動作が実行されることが設定されていたとしても、制御装置５５０は、脱水動作と撹拌動作との間に待機動作を追加する。このため、撹拌動作が開始される前に洗濯槽５０３を停止させることができ、容易に他の回転の撹拌動作に切り替えることができる。なお、待機動作のブロック１１５０を追加する代わりに、待機動作が撹拌動作の直前に行われるように、待機動作を行うパラメータを撹拌動作のブロック１０５０に追加してもよいし、脱水動作のブロック１０７０に追加してもよい。なお、２つのブロックは脱水動作と撹拌動作との組み合わせに適用されることに限らない。撹拌動作、ドラム回転動作および脱水動作のうちの２つの組み合わせに適用されてもよいし、撹拌動作の次に異なる回転の撹拌動作の組み合わせに適用されてもよいし、ドラム回転動作の次に異なる回転のドラム回転動作の組み合わせに適用されてもよいし、脱水動作の次に異なる回転の脱水動作の組み合わせに適用されてもよい。なお、待機動作を追加する代わりに、洗濯槽５０３の回転を制動する動作を追加することで洗濯槽５０３の回転を停止させてもよい。
【０１４３】
図２０は、実施の形態１における実行内容宣言の修正の第９の例を示す。図２０では、実行内容宣言において、脱水動作のブロック１０７０を含むブロック１０７０Ｂの次に、脱水動作とは異なる回転を用いた運転である撹拌動作のブロック１０５０を含むブロック１０５０Ｂが実行されることが示されている。ブロック１０７０Ｂは、脱水動作のブロック１０７０の直後に待機するパラメータ１０７４をさらに含む。また、ブロック１０５０Ｂは、撹拌動作のブロック１０５０の直前に待機するパラメータ１０５７をさらに含む。このように、ブロック１０７０Ｂの次に実行される順番に設定されているブロック１０５０Ｂにおいて、パラメータ１０７４およびパラメータ１０５７が重複している。この場合、制御装置５５０は、重複しているパラメータ１０７４を削除する。なお、制御装置５５０は、パラメータ１０７４を削除する代わりにパラメータ１０５７を削除してもよい。
【０１４４】
ここで、図７の説明に戻る。
【０１４５】
（ステップＳ２１７）
デバイス３００は、実行前確認の結果をデバイスマネージャ２００に送信する。ブロックが変更されている場合には、変更されたブロックがデバイスマネージャ２００に送信されてもよい。
【０１４６】
（ステップＳ２１８）
デバイスマネージャ２００は、デバイス割り付けの結果をシーケンスマネージャ１００に回答する。また、実行前確認においてブロックが変更されている場合には、変更されたブロックを含むアプリケーションがシーケンスマネージャ１００に送信されてもよい。
【０１４７】
（ステップＳ２２０）
シーケンスマネージャ１００は、デバイスマネージャ２００からの割付結果通知を受けて、ＵＩ４００を介してユーザに実行準備完了を通知する。
【０１４８】
（ステップＳ２２２）
ＵＩ４００は、アプリケーションが実行されるデバイスの一覧を表示するとともに、ユーザからアプリケーション実行の確認の入力を受け付けるためのグラフィカルユーザインタフェース（ＧＵＩ）を表示する。なお、ＵＩ４００は、ユーザからデバイスの割り付けの変更を受け付けてもよい。また、ＵＩ４００は、デバイスの一覧を表示しなくてもよい。
【０１４９】
（ステップＳ２２４）
ＵＩ４００は、ユーザから実行確認の入力を受けて、デバイスマネージャ２００にアプリ開始指示を送信する。デバイスマネージャ２００は、アプリ開始指示をシーケンスマネージャ１００に転送する。
【０１５０】
なお、ステップＳ２２０、Ｓ２２２、及びＳ２２４は、アプリケーションが実行される前にユーザに改めて情報を提供しているが、ユーザの作業が増える可能性があるため、省略されてもよい。
【０１５１】
以上により、アプリ実行前フェーズＦ２００が終了する。
【０１５２】
［１．３．３  アプリ実行フェーズＦ３００］
次に、アプリ実行フェーズＦ３００について説明する。
【０１５３】
（ステップＳ３１０）
シーケンスマネージャ１００は、アプリ開始指示を受けて、アプリケーションに含まれる複数のブロックの中から最初のブロック（第１ブロック）を選択する。そして、シーケンスマネージャ１００は、選択した第１ブロックの実行指示をデバイスマネージャ２００に送信する。
【０１５４】
なお、複数のブロックが連続して動作される場合、シーケンスマネージャ１００は、複数のブロックの実行指示をまとめてデバイスマネージャ２００に送信してもよい。
【０１５５】
デバイスマネージャ２００は、シーケンスマネージャ１００から受信した第１ブロックの実行指示に基づいて、第１ブロックに割り付けられたデバイス３００に第１ブロックの実行指示を送信する。
【０１５６】
（ステップＳ３１２）
デバイスマネージャ２００は、第１ブロックの実行指示を受けて、各デバイスのスケジュール（使用予定時間）を更新する。
【０１５７】
（ステップＳ３１４）
デバイス３００は、第１ブロックの実行指示を受けて、第１ブロックを実行する。
【０１５８】
（ステップＳ３１６）
デバイス３００は、第１ブロックの実行が完了したときに、完了通知をデバイスマネージャ２００に送信する。なお、第１ブロックの実行中にエラーが発生した場合には、デバイス３００は、エラー情報をデバイスマネージャ２００に送信してもよい。また、デバイス３００は、第１ブロックの実行中に、イベント情報をデバイスマネージャ２００に送信してもよい。イベント情報としては、例えば、センサの出力値又は機器操作等を用いることができるが、これに限定されない。デバイスマネージャ２００は、デバイス３００から受信した完了通知及び／又は各種情報をシーケンスマネージャ１００に転送する。
【０１５９】
（ステップＳ３１８）
シーケンスマネージャ１００は、第１ブロックの完了通知を受けて、アプリケーションの進捗を更新し、次のブロック（第２ブロック）を選択する。また、シーケンスマネージャ１００は、エラー情報を受信した場合に、エラー情報に対応する処理（例えば、１つ前のブロックに戻る、最初のブロックに戻る、待機等）を実行する。エラー情報に対応する処理の情報は、例えば、シーケンスマネージャ１００に予め保持されてもよいし、ＵＩ４００を介してユーザから受け付けられてもよい。また、シーケンスマネージャ１００は、イベント情報を受信した場合に、イベント情報に対応する処理を実行する。例えば、イベント情報に水位センサの出力値が含まれる場合、シーケンスマネージャ１００は、実行中のブロックに含まれる水位を表示するための水位パラメータを更新する。
【０１６０】
（ステップＳ３２０）
シーケンスマネージャ１００は、選択した第２ブロックの実行指示をデバイスマネージャ２００に送信する。
【０１６１】
なお、第２ブロックの実行指示は、第１ブロックの実行指示（Ｓ３１０）と同一のデバイスに対する指示でもよいし、異なるデバイスへの指示でもよい。
【０１６２】
なお、第２ブロックの実行指示は、第１ブロックの実行指示と同様に、複数のブロックの実行指示をまとめてデバイスマネージャ２００に送信してもよい。
【０１６３】
以降の処理は第１ブロックのための処理（Ｓ３１２〜Ｓ３１８）と同様であるので、図示及び説明を省略する。アプリケーションに含まれるブロックが順に実行され、最後のブロックの実行が完了すれば、アプリ実行フェーズＦ３００が終了する。
【０１６４】
なお、ここでは、ブロックの実行は１つずつ順に指示されているが、これに限定されない。例えば、同一のデバイスが割り付けられた複数のブロックの実行は、まとめて指示されてもよい。その場合、あらかじめ各ブロックが機能実行のパラメータ範囲を満たすかの確認を行ったり、変更に対応するブロックを実行前にデバイス側にダウンロードしたりしてもよい。また、例えば、複数のデバイスに対して各々のブロック実行指示を行ってもよい。
【０１６５】
［１．４  効果など］
以上のように、
ブロックを含むアプリケーションとルールデータベースとにより、多様多種なアプリケーションを開発可能な環境を提供し、その環境下で自由に開発したアプリケーションに対して、物理的に運動するアクチュエータ２２、又は熱エネルギーを出力する加熱器２３の安全な駆動することを可能にしている。言い換えると、アプリケーションを自由に開発可能な環境を提供するとともに、アプリケーションと独立して安全性を担保するための機能を提供できる。その結果、例えば、自由度の高い多様多種なアプリケーションの開発と、安全性を担保するためのルールデータベースの開発とを並行して作成することが可能になり、多様多種なアプリケーションを早期に開発することが可能にすることができる。
【０１６６】
また、アプリケーションの提供後においても、ルールデータベースを変更することで、より安全性を担保したアプリケーションへの変更も可能になる。また、事前に製造者が想定しない状況の改善が必要になった場合においても、多様多種なアプリケーション自体を変更せずとも、アプリケーションとは独立して、ルールデータベースを規定していることで、ルールデータベースを更新することで、全てのアプリケーションへの対応が可能になる。
【０１６７】
アプリケーション自体を変更せずに、アプリケーションが実行されたときの状態を検知することでエラー処理のルールベースを保持する対処方法も考えられる。しかし、この対処方法は、常にエラーの状態になった後に対処することになり、家電に負荷がかかる状況、又は安全性が担保できない状況になることを許容することを意味する。そこで、アプリケーションとは独立にルールデータベースを保有し、ルールデータを参照してアプリケーションの内容を変更することで、安全性を担保することを可能にしている。
【０１６８】
本実施の形態における洗濯機５００は、クラウドサーバ１０（外部機器）と通信可能な洗濯機５００である。洗濯機５００は、クラウドサーバ１０から実行内容宣言（洗濯情報）を受信する通信部５７０と、洗濯情報に基づいて、洗濯物に対して、洗濯に関する運転を行う洗濯機能部と、洗濯機能部を制御する制御装置５５０とを備える。実行内容宣言は、それぞれが洗濯機能部の運転を制御するパラメータに関する制御情報である複数のブロック、及び、複数のブロックを実行する順番に関する順番情報を含む。制御装置５５０は、洗濯の順番に関するルールに基づいて実行内容宣言を修正し、修正後の実行内容宣言に含まれる制御情報を実行することで実行内容宣言に基づく運転を洗濯機能部に実行させる。
【０１６９】
これによれば、複数のブロックで規定されたアプリケーションに基づいて洗濯機能部を駆動させることができる。従って、洗濯機５００の制御を抽象化したブロックを用いたアプリケーションの開発が可能となり、多種多彩なアプリケーションを製造者だけではなく、サードパーティも開発することができ、これらのアプリケーションを洗濯機５００で簡単に実行することが可能となる。さらに、アプリケーションに基づいて洗濯機能部が駆動される前に、許容されない実行内容宣言を修正することができる。したがって、洗濯機能部が許容されない順番の動作を実行することを抑制することができる。つまり、もしアプリケーション開発者が誤って洗濯機能部が許容されない順番の動作を実行するよう指示を行った場合でも、洗濯機５００を安全に制御することができないアプリケーションが実行されることを抑制することができる。また、洗濯機５００が非効率的に動作することを抑制することができる。したがって、アプリケーション開発者は、洗濯機能部の安全性の担保よりもユーザに適することを重視したアプリケーションを作成した場合でも、アプリケーションで制御される洗濯機５００の安全性を向上させることができる。また、洗濯機５００の動作効率を向上させることができ、消費電力を低減することができる。
【０１７０】
また例えば、制御装置５５０は、実行内容宣言に含まれる第１ブロック、及び、順番情報において第１ブロックの次に実行される順番に設定されている第２ブロックの実行がルールで許容されない場合、実行内容宣言に、第１ブロックの次に実行される順番の制御情報として第３ブロックを追加してもよい。
【０１７１】
これによれば、連続して実行される２つのブロックが許容されない場合、当該２つのブロックの間の順番に第３ブロックを追加することができるので、洗濯機能部が許容されない順番の２つのブロックの動作を実行することを防止することができる。
【０１７２】
また例えば、制御装置５５０は、実行内容宣言に含まれる第１ブロック、及び、順番情報において第１ブロックの次に実行される順番に設定されている第２ブロックの実行がルールで許容されない場合、第１ブロックに含まれるパラメータに関する情報、又は、第２ブロックに含まれるパラメータに関する情報を修正してもよい。
【０１７３】
これによれば、連続して実行される２つのブロックが許容されない場合、当該２つのブロック内のいずれかに含まれるパラメータに関する情報を修正することができるので、洗濯機能部が許容されない順番の２つのブロックの動作を実行することを防止することができる。
【０１７４】
また例えば、制御装置５５０は、実行内容宣言に含まれる第１ブロック、及び、順番情報において第１ブロックの次に実行される順番に設定されている第２ブロックの実行がルールで許容されない場合、第２ブロックの実行を制限してもよい。
【０１７５】
これによれば、連続して実行される２つのブロックが許容されない場合、第２ブロックの実行を制限することができるので、洗濯機能部が許容されない順番の２つのブロックの動作を実行することを防止することができる。
【０１７６】
また例えば、第１のルールでは、第１ブロックが洗濯機５００の水槽５０２への給水に関するパラメータを含み、かつ、第２ブロックが禁水環境で実行される運転を制御するパラメータを含むことが許容されなくてもよい。例えば、禁水環境で実行される運転は、水槽５０２に水が貯められているときに実行されることが許容されない運転を含んでもよい。このため、水槽５０２に水がある状態で実行されても十分な効果が得られない第２ブロックに基づく運転が実行されることを防止することができる。これにより、無駄な運転を抑制でき、消費電力を低減することができる。
【０１７７】
また例えば、第２のルールでは、第１ブロックが洗濯機５００の水槽５０２内の加熱に関するパラメータを含み、かつ、第２ブロックが禁熱環境で実行される運転を制御するパラメータを含むことが許容されなくてもよい。例えば、禁熱環境で実行される運転は、水槽５０２内の温度が所定の温度以上のときに実行されることが許容されない運転を含んでもよい。このため、水槽５０２内の温度が所定の温度以上であるときに実行されることを抑制できるため、水槽５０２内の高温環境が洗濯機５００の外部に悪影響を与えることを低減することができ、安全性を担保することができる。
【０１７８】
また例えば、第３のルールでは、第１ブロックが水が貯められている洗濯槽５０３の回転に関するパラメータを含み、かつ、第２ブロックが禁動環境で実行される運転を制御するパラメータを含むことが許容されなくてもよい。例えば、禁動環境で実行される運転は、洗濯槽５０３内の水面を動かすことが許容されない運転を含んでもよい。このため、水面の揺れを低減した状態で第２ブロックの運転を制御することができるため、効果的に第２ブロックの運転を制御することができる。
【０１７９】
また例えば、第４のルールでは、第１ブロックが洗濯機５００の洗濯槽５０３内への送風に関するパラメータを含み、かつ、第２ブロックが禁動環境で実行される運転を制御するパラメータを含むことが許容されなくてもよい。このため、水面の揺れを低減した状態で第２ブロックの運転を制御することができるため、効果的に第２ブロックの運転を制御することができる。
【０１８０】
また例えば、第５のルールでは、第１ブロックが洗濯機５００の洗濯槽５０３を第１の回転で回転させるパラメータを含み、かつ、第２ブロックが第１の回転とは異なる第２の回転で洗濯槽５０３を回転させるパラメータを含むことが許容されなくてもよい。例えば、第１の回転における第１回転速度は、第２の回転の第２回転速度と異なっていてもよい。また例えば、第１の回転の向きは、第２の回転の向きと異なっていてもよい。このため、異なる回転の運転が連続して実行されることを抑制でき、効果的に洗濯槽５０３の回転を切り替えることができる。
【０１８１】
また例えば、制御装置５５０は、第１ブロックが洗濯機５００の水槽５０２への給水に関するパラメータを含み、かつ、第２ブロックが禁水環境で実行される運転を制御するパラメータを含む場合、第１のルールに基づいて、実行内容宣言に、第１ブロックと第２ブロックとの間に実行される順番の制御情報として、水槽５０２からの排水に関するパラメータを含む第３ブロックを追加する。このため、禁水環境で実行される運転が開始される前に排水することで水槽５０２を禁水環境とすることができ、効果的に第２ブロックの動作を実行することができる。
【０１８２】
また例えば、制御装置５５０は、第１ブロックが洗濯機５００の水槽５０２への給水に関するパラメータを含み、かつ、第２ブロックが禁水環境で実行される運転を制御するパラメータを含む場合、第１のルールに基づいて、禁水環境で実行される運転を制御するパラメータの直前に水槽５０２からの排水に関するパラメータを追加するように、第２ブロックを修正してもよい。このため、禁水環境で実行される運転が開始される前に排水することで水槽５０２を禁水環境とすることができ、効果的に第２ブロックの動作を実行することができる。
【０１８３】
また例えば、制御装置５５０は、第１ブロックが洗濯機５００の水槽５０２内の加熱に関するパラメータを含み、かつ、第２ブロックが禁熱環境で実行される運転を制御するパラメータを含む場合、第２のルールに基づいて、実行内容宣言に、第１ブロックと第２ブロックとの間に実行される順番の制御情報として、水槽５０２の放熱に関するパラメータを含む第３ブロックを追加してもよい。このため、禁熱環境で実行される運転が開始される前に放熱することで水槽５０２の温度を低下させて禁熱環境とすることができ、効果的に第２ブロックの動作を実行することができる。
【０１８４】
また例えば、制御装置５５０は、第１ブロックが洗濯機５００の水槽５０２内の加熱に関するパラメータを含み、かつ、第２ブロックが禁熱環境で実行される運転を制御するパラメータを含む場合、第２のルールに基づいて、禁熱環境で実行される運転を制御するパラメータの直前に水槽５０２の放熱に関するパラメータを追加するように、第２ブロックを修正してもよい。このため、禁熱環境で実行される運転が開始される前に放熱することで水槽５０２の温度を低下させて禁熱環境とすることができ、効果的に第２ブロックの動作を実行することができる。
【０１８５】
また例えば、制御装置５５０は、ルールに基づき、実行内容宣言に含まれる第１ブロック、及び、順番情報において第１ブロックの次に実行される順番に設定されている第２ブロックが重複する場合、（ｉ）第１ブロックもしくは第２ブロックを削除する、又は、（ｉｉ）第１ブロックに含まれるパラメータに関する情報もしくは第２ブロックに含まれるパラメータに関する情報を削除してもよい。このため、重複している動作のブロックまたはパラメータを削除するため、無駄な動作を実行することを低減することができる。よって、消費電力を低減することができる。
【０１８６】
また例えば、本実施の形態における装置２０において、制御部２４は、第１のルールを参照して、第１パラメータ範囲に含まれるパラメータを、アクチュエータ２２及び加熱器２３の少なくとも１つの駆動が許容される範囲に含まれるパラメータに変更することで、アプリケーションを変更してもよい。
【０１８７】
これによれば、許容されない第１パラメータ範囲に含まれるパラメータを許容される範囲に含まれるパラメータに変更することができるので、例えば、アプリケーションの開発者は、アクチュエータ２２及び加熱器２３が安全に駆動することを考慮する優先度を下げて自由にアプリケーションを開発ができ、さらにアクチュエータ２２及び加熱器２３を制御する装置２０に組み込まれるソフトウェアの開発者は、アプリケーション一つ一つの安全性を毎回チェックすることなくブロックを実行でき、アクチュエータ２２及び／又は加熱器２３が許容されないパラメータで駆動されることを防止することができる。
【０１８８】
また例えば、本実施の形態における装置２０において、制御部２４は、第１のルールを参照して、第１パラメータ範囲に含まれるパラメータを、アクチュエータ２２及び加熱器２３の少なくとも１つの駆動が許容される範囲に含まれるパラメータに変更し、かつ、複数のブロックに新たなブロックを追加することで、アプリケーションを変更してもよい。
【０１８９】
これによれば、許容されない第１パラメータ範囲に含まれるパラメータを許容される範囲に含まれるパラメータに変更することができるので、アクチュエータ２２及び／又は加熱器２３が許容されないパラメータで駆動されることを防止することができる。さらに、新たなブロックを追加することもできるので、パラメータの変更によって低下した機能を新たなブロックで補完することも可能となる。
【０１９０】
また例えば、本実施の形態における装置２０において、制御部２４は、第１パラメータ範囲に含まれるパラメータを有するブロックを削除することで、アプリケーションを変更してもよい。
【０１９１】
これによれば、許容されない第１パラメータ範囲に含まれるパラメータを有するブロックを削除することができるので、アクチュエータ２２及び／又は加熱器２３が許容されないパラメータで駆動されることを防止することができる。例えば、アクチュエータ２２及び加熱器２３が、アプリケーション開発者が指定したパラメータをそもそも実行することができない場合に、削除を行うことで、デバイスが混乱することなく制御を行うことができる。一方で、削除された旨をユーザに通知を行ってもよい。
【０１９２】
また例えば、本実施の形態における装置２０において、制御部２４は、第１のルールを参照して、複数のブロックに含まれる複数のパラメータの各々が、第１パラメータ範囲に含まれるか否かを判定し、パラメータが第１パラメータ範囲に含まれると判定された場合、当該パラメータを有するブロックを変更してもよい。
【０１９３】
これによれば、より確実に、許容されない第１パラメータ範囲に含まれるパラメータを有するブロックを変更することができる。
【０１９４】
また例えば、本実施の形態における装置２０において、アプリケーションは、複数のブロックのそれぞれが実行される順番情報と、複数のブロックのそれぞれが実行されるタイミングの情報とを含んでもよい。各ブロックのタイミングの情報は、例えば、当該ブロックの開始タイミングと、他のブロック（例えば１番目のブロック）の開始又は終了のタイミングとの間の時間を示す。
【０１９５】
これによれば、アプリケーションは、順番及びタイミングの情報を含むことができ、各ブロックの持つパラメータ範囲を確認しながら、シーケンシャルに判断して実行することができる。
【０１９６】
また例えば、本実施の形態における装置２０において、第１パラメータ範囲は、アクチュエータ２２及び加熱器２３の少なくとも１つを耐久温度に到達させるパラメータの範囲であってもよい。
【０１９７】
これによれば、アプリケーションが実行されたときにアクチュエータ２２及び／又は加熱器２３が耐久温度に到達することを抑制することができ、アプリケーションで制御される装置２０の安全性を向上させることができる。
【０１９８】
また例えば、本実施の形態における装置２０は、内部空間を有する筐体２１を備えてもよく、第１パラメータ範囲は、内部空間を耐久温度に到達させるパラメータの範囲であってもよい。
【０１９９】
これによれば、アプリケーションが実行されたときに筐体２１の内部空間が耐久温度に到達することを抑制することができ、アプリケーションで制御される装置２０の安全性を向上させることができる。
【０２００】
（実施の形態１の変形例）
なお、上記実施の形態１では、システム１の処理について図７を参照しながら説明したが、処理の流れについてはこれに限定されない。特に、詳細に説明している実行前確認（Ｓ２１６）について、実行前確認が行われるタイミング及び主体となるモジュールはこれに限定されない。そこで、システム１のシーケンス図のいくつかの変形例について、図２１Ａ〜図２１Ｅを参照しながら具体的に説明する。
【０２０１】
図２１Ａは、実施の形態１の変形例１におけるシステム１のシーケンス図である。図２１Ａでは、実行前確認（Ｓ２１６）は、デバイス３００が実行指示を受けて（Ｓ３１０）ブロックを実行する（Ｓ３１４）直前に、デバイス３００によって行われる。
【０２０２】
これにより、デバイス３００に組み込まれるソフトウェアは、ブロックの実行直前に実行前確認を行うというシンプルな構成とすることができる。すなわち、ステップＳ２１５及びＳ２１７を省略することができる。その結果、それらの処理を行うための機能及び通信ＡＰＩをデバイス３００に組み込む必要がなくなり、デバイス３００に搭載されるマイコンの使用メモリ等を低減することが可能となる。
【０２０３】
なお、実行前確認の結果がデバイスマネージャ２００及び／又はＵＩ４００に通知されてもよい。例えば、実行前確認を行った結果としてパラメータの変更又はブロックの実行停止指示が行われた場合に、デバイスマネージャ２００又はＵＩ４００に確認結果が通知されてもよい。
【０２０４】
図２１Ｂは、実施の形態１の変形例２におけるシステム１のシーケンス図である。図２１Ｂでは、実行前確認（Ｓ２１６）は、デバイスマネージャ２００が割付結果通知（Ｓ２１８）を行う際に、そのままデバイスマネージャ２００によって行われる。
【０２０５】
これにより、デバイス３００に組み込まれるソフトウェアは、実行前確認（Ｓ２１６）の機能を含まなくてもよい。したがって、デバイス３００が有するメモリの使用を抑えることができ、デバイス３００のコストダウンにつながる。
【０２０６】
また、上記実施の形態１では、デバイス３００によるブロック実行（Ｓ３１４）について、クラウドサーバ１０に実装されたシーケンスマネージャ１００からの指示によって行われる処理の流れを説明したが、ブロック実行（Ｓ３１４）が行われる形態についても、これに限定されない。
【０２０７】
例えば、シーケンスマネージャ１００からの通知内容を、デバイス３００内のメモリに保存し、装置２０が有するＵＩ又は端末３０が有するＵＩ４００を通じたユーザからの直接の指示により、ブロックが実行されてもよい。すなわち、アプリケーションをデバイス内にダウンロードしておいて、ユーザが任意のタイミングでアプリケーションを実行する形態としてもよい。
【０２０８】
図２１Ｃは、実施の形態１の変形例３におけるシステム１のシーケンス図である。図２１Ｃでは、アプリ実行フェーズＦ３００において、シーケンスマネージャ１００からデバイス３００に、デバイス３００で実行される１以上のブロックが通知される（Ｓ３１０Ｃ）。そして、デバイス３００は、通知された１以上のブロックをメモリに保存する（Ｓ３１１Ｃ）。
【０２０９】
その後、デバイス３００は、ユーザから、保存された１以上のブロックの実行の指示を受け付け（Ｓ３１２Ｃ）、１以上のブロックを第１ブロックから順に実行する（Ｓ３１４）。
【０２１０】
以上のように、ブロックをデバイス３００に保存することで、デバイスマネージャ２００とデバイス３００との通信を介さずにデバイス３００の制御が行えるため、クラウドサーバ１０と装置２０間の通信が不安定になることによってデバイス３００の動作が停止したり遅延が生じたりするリスクを低減することができる。そのため、本変形例は、クラウドサーバ１０との通信の信頼性が低い環境において、及び／又は、アプリケーション実行中のデバイスの動作停止や遅延が許容されないデバイス３００において、より効果的である。
【０２１１】
なお、変形例３においても、実施の形態１と同様に、実行前確認（Ｓ２１６）は重要な意味を有するが、実行前確認（Ｓ２１６）が行われるタイミングや主体となるモジュールは図２１Ｃに限定されない。すなわち、変形例３は、変形例１又は２と組み合わされてもよい。
【０２１２】
図２１Ｄは、実施の形態１の変形例４におけるシステム１のシーケンス図である。変形例４は、変形例１と変形例３との組み合わせに相当する。変形例４では、図２１Ｄに示すように、実行前確認（Ｓ２１６）は、デバイス３００が実行指示を受けて（Ｓ３１２Ｃ）ブロックを実行する（Ｓ３１４）直前にデバイス３００によって行われる。
【０２１３】
ブロックをデバイス３００にダウンロードしておいて、ユーザが任意のタイミングでブロックを実行する場合、ブロックをダウンロードするタイミングと実行するタイミングとが大きくずれる可能性が高まる。すなわち、ブロックをデバイス３００にダウンロードしてから数日後、数か月後、又は数年後等にブロックが実行される場合が考えられる。その場合、ブロックがダウンロードされてからブロックが実行されるまでの間にデバイス３００の劣化レベル等が変わる恐れもある。そのため、ブロックの実行が劣化レベルの影響を受けるデバイス３００では、ブロックが実行される直前にデバイス３００によって実行前確認が行われることで、劣化レベルに応じた実行前確認が可能となる。
【０２１４】
図２１Ｅは、実施の形態１の変形例５におけるシステム１のシーケンス図である。変形例５は、変形例２と変形例３との組み合わせに相当する。変形例５では、図２１Ｅに示すように、実行前確認（Ｓ２１６）は、デバイスマネージャ２００が割付結果通知（Ｓ２１８）を行う際に、そのままデバイスマネージャ２００によって行われる。
【０２１５】
（実施の形態２）
次に、実施の形態２について説明する。本実施の形態では、アプリケーションが認証済みである場合に実行前確認がスキップされる点が上記実施の形態１と主として異なる。以下に、上記実施の形態１と異なる点を中心に本実施の形態について説明する。
【０２１６】
なお、本実施の形態におけるシステム１のハードウェア構成及び機能構成は、上記実施の形態１と同様であるので、図示及び説明を省略する。
【０２１７】
［２．１  処理］
本実施の形態では、上記実施の形態１における実行前確認のステップＳ２１６がステップＳ２１６Ａに代わる点を除いて、上記実施の形態１の処理と同様である。したがって、実行前確認処理のステップＳ２１６Ａについて図２２を参照しながら説明する。
【０２１８】
図２２は、実施の形態２における実行前確認処理のフローチャートを示す。
【０２１９】
（ステップＳ２１６１Ａ）
デバイス３００は、アプリ認証情報を取得する。アプリ認証情報は、アプリケーションが認証済みである場合に認証済みであることを示す情報を含む。
【０２２０】
アプリケーションの認証は、例えばアプリケーションの品質を保証するための仕組みであり、アプリケーションの安全性及び／又は同一性（改ざんされていないこと）などの確認を可能とする。認証情報の付与されているアプリケーションの一例を説明する。アプリケーションのコードの変更履歴がパラメータ範囲の変更が行われなかったことを示す場合、アプリケーションに認証済みであることを示す情報が対応付けられている。
【０２２１】
（ステップＳ２１６２Ａ）
デバイス３００は、取得されたアプリ情報に基づいて、アプリケーションが認証済みであるか否かを判定する。ここで、アプリケーションが認証済みであると判定された場合（Ｓ２１６２ＡのＹｅｓ）、デバイス３００は、以降のステップＳ２１６５〜ステップＳ２１６７をスキップして実行前確認処理を終了する。一方、アプリケーションが認証済みではないと判定された場合（Ｓ２１６２ＡのＮｏ）、デバイス３００は、次のステップＳ２１６５に進む。
【０２２２】
［２．２  効果など］
以上のように、本実施の形態における装置２０は、アクチュエータ２２及び加熱器２３の少なくとも１つと、アクチュエータ２２及び加熱器２３の少なくとも１つを制御する制御部２４と、を備え、制御部２４は、アクチュエータ２２及び加熱器２３の少なくとも１つを駆動する複数のブロックで規定され、かつ認証済みか否かを示す情報を含むアプリケーションを取得し、複数のブロックの各々は、アクチュエータ２２又は加熱器２３を駆動するためのパラメータを有し、アプリケーションが認証済みであることを示す情報を含まない場合、アクチュエータ２２及び加熱器２３の少なくとも１つの駆動が許容されない第１パラメータ範囲を定義する第１のルールを参照して、複数のブロックの少なくとも１つを変更することでアプリケーションを変更し、複数のブロックの少なくとも１つは、第１パラメータ範囲に含まれるパラメータを有し、変更したアプリケーションに基づいて、少なくとも１つのアクチュエータ２２を駆動する。
【０２２３】
これによれば、複数のブロックで規定されたアプリケーションに基づいてアクチュエータ２２及び／又は加熱器２３を駆動することができる。したがって、装置２０の制御を抽象化したブロックを用いたアプリケーションの開発が可能となり、そのように開発された多種多彩なアプリケーションを装置２０で簡単に実行することが可能となる。さらに、アプリケーションに基づいてアクチュエータ２２及び／又は加熱器２３が駆動される前に、許容されない第１パラメータ範囲に含まれるパラメータを有するブロックを変更することができる。したがって、アクチュエータ２２及び／又は加熱器２３が許容されないパラメータで駆動されることを抑制することができる。つまり、装置２０を安全に制御することができないアプリケーションが実行されることを抑制することができ、アプリケーションで制御される装置２０の安全性を向上させることができる。さらに、アプリケーションが認証済みでない場合に、アプリケーションの変更を伴う処理を行うことができ、アプリケーションが認証済みである場合に処理負荷の軽減を図ることができる。したがって、全てのアプリケーションに対するパラメータ範囲に対する判定処理を行う必要は無く、認証を行うことによる管理によって、処理負荷の軽減とともに、パラメータ範囲の設計の基準ができ、アプリケーション開発者にとっては、より容易かつ安全な設計が可能となる。
【０２２４】
また例えば、本実施の形態における装置２０において、アプリケーションが認証済みであることを示す情報を有する場合、第１のルールを参照せずに、アプリケーションケーションを変更しなくてもよい。
【０２２５】
これによれば、アプリケーションが認証済みである場合に、ブロックを変更するための処理をスキップすることができ、処理負荷を軽減することができる。
【０２２６】
（実施の形態３）
次に、実施の形態３について説明する。本実施の形態では、アプリケーションの制作者と装置の製作者とが同一である場合に実行前確認がスキップされる点が上記実施の形態１と主として異なる。以下に、上記実施の形態１と異なる点を中心に本実施の形態について説明する。
【０２２７】
なお、本実施の形態におけるシステム１のハードウェア構成及び機能構成は、上記実施の形態１と同様であるので、図示及び説明を省略する。
【０２２８】
［３．１  処理］
本実施の形態では、上記実施の形態１における実行前確認のステップＳ２１６がステップＳ２１６Ｂに代わる点を除いて、上記実施の形態１の処理と同様である。したがって、実行前確認処理のステップＳ２１６Ｂについて図２３を参照しながら説明する。
【０２２９】
図２３は、実施の形態３における実行前確認処理のフローチャートを示す。
【０２３０】
（ステップＳ２１６１Ｂ）
デバイス３００は、アプリ制作者情報を取得する。アプリ制作者情報は、アプリケーションの制作者を示す。制作者は、アプリケーションを制作した会社、個人又は団体等を意味し、開発者又は著者と呼ばれる場合もある。
【０２３１】
（ステップＳ２１６３Ｂ）
デバイス３００は、デバイス製作者情報を取得する。デバイス製作者情報は、デバイスの製作者を示す。製作者は、デバイス３００（つまり装置２０）を製作した会社、個人又は団体等を意味し、製造者と呼ばれる場合もある。
【０２３２】
（ステップＳ２１６４Ｂ）
デバイス３００は、アプリケーションの制作者とデバイス３００の製作者とが異なるか否かを判定する。アプリケーションの制作者が個人であり、デバイス３００の製作者が会社である場合、デバイス３００は、アプリケーションの制作者が属する会社とデバイス３００の製作者とが一致すれば、アプリケーションの制作者とデバイス３００の製作者とが同じであると判定してもよい。また、デバイス３００は、アプリケーションの制作者がデバイス３００の製作者の開発委託先であれば、アプリケーションの制作者とデバイス３００の製作者とが同じであると判定してもよい。
【０２３３】
ここで、アプリケーションの制作者とデバイス３００の製作者とが同じである場合（Ｓ２１６４ＢのＮｏ）、デバイス３００は、以降のステップＳ２１６５〜ステップＳ２１６７をスキップして実行前確認処理を終了する。一方、アプリケーションの制作者とデバイス３００の製作者とが異なる場合（Ｓ２１６４ＢのＹｅｓ）、デバイス３００は、次のステップＳ２１６５に進む。
【０２３４】
［３．２  効果など］
以上のように、本実施の形態における装置２０は、アクチュエータ２２及び加熱器２３の少なくとも１つとアクチュエータ２２及び加熱器２３の少なくとも１つを制御する制御部２４と、を備え、制御部２４は、アクチュエータ２２及び加熱器２３の少なくとも１つを駆動する複数のブロックで規定され、かつ制作者を示す情報を含むアプリケーションを取得し、複数のブロックの各々は、アクチュエータ２２又は加熱器２３を駆動するためのパラメータを有し、装置２０の製作者を示す情報を取得し、アプリケーションの制作者と装置２０の製作者とが異なる場合、アクチュエータ２２及び加熱器２３の少なくとも１つの駆動が許容されない第１パラメータ範囲を定義する第１のルールを参照して、複数のブロックの少なくとも１つを変更することでアプリケーションを変更し、複数のブロックの少なくとも１つは、第１パラメータ範囲に含まれるパラメータを有し、変更したアプリケーションに基づいて、アクチュエータ２２及び加熱器２３の少なくとも１つを駆動する。
【０２３５】
これによれば、複数のブロックで規定されたアプリケーションに基づいてアクチュエータ及び／又は加熱器を駆動することができる。したがって、装置２０の制御を抽象化したブロックを用いたアプリケーションの開発が可能となり、そのように開発された多種多彩なアプリケーションを装置２０で簡単に実行することが可能となる。さらに、アプリケーションに基づいてアクチュエータ２２及び／又は加熱器２３が駆動される前に、許容されない第１パラメータ範囲に含まれるパラメータを有するブロックを変更することができる。したがって、アクチュエータ２２及び／又は加熱器２３が許容されないパラメータで駆動されることを抑制することができる。つまり、装置２０を安全に制御することができないアプリケーションが実行されることを抑制することができ、アプリケーションで制御される装置２０の安全性を向上させることができる。さらに、アプリケーションの制作者と装置２０の製造者とが異なる場合に、アプリケーションの変更を伴う処理を行うことができ、アプリケーションの制作者と装置２０の製造者とが同じ場合には、処理負荷の軽減を図ることができる。
【０２３６】
（実施の形態４）
次に、実施の形態４について説明する。本実施の形態では、装置の劣化レベルに対応するルールを用いて実行前確認が行われる点が上記実施の形態１と主として異なる。以下に、上記実施の形態１と異なる点を中心に本実施の形態について説明する。
【０２３７】
なお、本実施の形態におけるシステム１のハードウェア構成及び機能構成は、上記実施の形態１と同様であるので、図示及び説明を省略する。
【０２３８】
［４．１  処理］
本実施の形態では、上記実施の形態１における実行前確認のステップＳ２１６がステップＳ２１６Ｃに代わる点を除いて、上記実施の形態１の処理と同様である。したがって、実行前確認処理のステップＳ２１６Ｃについて図２４を参照しながら説明する。
【０２３９】
図２４は、実施の形態４における実行前確認処理のフローチャートを示す。
【０２４０】
（ステップＳ２１６３Ｃ）
デバイス３００は、デバイス劣化情報を取得する。デバイス劣化情報は、装置２０に含まれるアクチュエータ２２及び／又は加熱器２３の劣化レベルを示す。劣化レベルの検出方法は、特に限定されず、例えばセンサによって検出されればよい。
【０２４１】
（ステップＳ２１６５Ｃ）
デバイス３００は、劣化レベルに対応するルールを取得する。例えば、デバイス３００は、ルールデータベースを参照して、ブロックが駆動するアクチュエータ２２又は加熱器２３の劣化レベルに対応するパラメータ範囲を取得する。
【０２４２】
図２５は、実施の形態４におけるルールデータベースの一例を示す。図２５のルールデータベース１４００Ｃには、ルール１４０１Ｃ〜１４０４Ｃが登録されている。ルール１４０１Ｃ〜１４０４Ｃの各々は、非許容範囲を定義するパラメータ範囲を有する。例えば、ルール１４０１Ｃは、劣化レベル０のモータＭＭ０００１のために、１０００ｒｐｍより大きい範囲を非許容範囲として有する。例えば、ルール１４０２Ｃは、劣化レベル１のモータＭＭ０００１のために、８００ｒｐｍより大きい範囲を非許容範囲として有する。つまり、ルール１４０２Ｃは、ルール１４０１Ｃよりも非許容範囲が広く、許容範囲が狭い。
【０２４３】
ルール１４０１Ｃ〜１４０４Ｃの各々は、さらに、種別と、製造者名と、アクチュエータ／加熱器と、劣化レベルと、を有する。これにより、デバイス３００は、ルールデータベース１４００Ｃから、ブロックで駆動されるアクチュエータ２２又は加熱器２３の劣化レベルに対応するルールを取得することができる。例えば、デバイス３００は、脱水動作のブロックで駆動されるモータＭＭ０００１の劣化レベルが０である場合、脱水ブロックのために、図２５のルールデータベース１４００Ｃを参照してルール１４０１Ｃを取得する。
【０２４４】
なお、劣化レベルを決定する項目は、例えば、デバイス３００に含まれるアクチュエータ２２及び／又は加熱器２３の使用回数、使用時間、又は稼働開始から現在まで使用日数である。これらの項目は、ユーザの使用に対して概ね比例関係で増えると想定される。よって、項目に対応する値が大きくなるごとに、劣化レベルが大きくなるようにルールが決定される。
【０２４５】
また、劣化レベルを決定する項目は、例えば、加熱器２３の温度の加算値、又はアクチュエータ２２及び／又は加熱器２３の入力及び出力の再現度合である。加熱器２３の温度の加算値とは、加熱器２３が駆動されたときの温度を加算した値である。例えば、ブロック実行時の加熱器２３の平均温度、中間温度、又は最大温度が用いられる。加熱器２３の温度は、加熱器２３の限界温度に対する実行温度の割合、加熱器２３の限界温度に対する実行温度の差分であってもよい。
【０２４６】
アクチュエータ２２及び／又は加熱器２３の入力及び出力の再現度合とは、アクチュエータ２２及び／又は加熱器２３を駆動するための入力値とアクチュエータ２２及び／又は加熱器２３の出力との関係を参照して求められる。所定の入力に対する実際の出力値と、関係に規定された出力値との割合が用いられる。
【０２４７】
［４．２  効果など］
以上のように、本実施の形態における装置２０は、アクチュエータ２２及び加熱器２３の少なくとも１つと、アクチュエータ２２及び加熱器２３の少なくとも１つを制御する制御部２４と、を備え、制御部２４は、アクチュエータ２２及び加熱器２３の少なくとも１つを駆動する複数のブロックで規定されたアプリケーションを取得し、複数のブロックの各々は、アクチュエータ２２又は加熱器２３を駆動するためのパラメータを有し、アクチュエータ２２及び加熱器２３の少なくとも１つが劣化しているか否かを示す劣化情報を取得し、劣化情報がアクチュエータ２２及び加熱器２３の少なくとも１つが劣化していないことを示している場合、アクチュエータ２２及び加熱器２３の少なくとも１つの駆動が許容されない第１パラメータ範囲を定義する第１のルールを参照して、複数のブロックに含まれる少なくとも１つの第１ブロックを変更することでアプリケーションを変更し、少なくとも１つの第１ブロックは、第１パラメータ範囲に含まれるパラメータを有し、劣化情報がアクチュエータ２２及び加熱器２３の少なくとも１つが劣化していることを示している場合、アクチュエータ２２及び加熱器２３の少なくとも１つの駆動が許容されない、第１パラメータ範囲と異なる第２パラメータ範囲を定義する第２のルールを参照して、複数のブロックに含まれる少なくとも１つの第２ブロックを変更することでアプリケーションを変更し、少なくとも１つの第２ブロックは、第２パラメータ範囲に含まれるパラメータを有し、変更したアプリケーションに基づいて、アクチュエータ２２及び加熱器２３の少なくとも１つを駆動する。
【０２４８】
これによれば、複数のブロックで規定されたアプリケーションに基づいてアクチュエータ２２及び／又は加熱器２３を駆動することができる。したがって、装置２０の制御を抽象化したブロックを用いたアプリケーションの開発が可能となり、そのように開発された多種多彩なアプリケーションを装置２０で簡単に実行することが可能となる。さらに、アプリケーションに基づいてアクチュエータ２２及び／又は加熱器２３が駆動される前に、許容されない第１パラメータ範囲に含まれるパラメータを有するブロックを変更することができる。したがって、アクチュエータ２２及び／又は加熱器２３が許容されないパラメータで駆動されることを抑制することができる。つまり、装置２０を安全に制御することができないアプリケーションが実行されることを抑制することができ、アプリケーションで制御される装置２０の安全性を向上させることができる。さらに、装置２０の劣化情報に応じて異なるパラメータ範囲を用いることができ、ブロックを用いることで、経年劣化していくデバイスのパフォーマンスを考慮しながら、アプリケーション側からのアクチュエータ２２及び／又は加熱器２３への駆動指示を実行し、アプリケーションで制御される装置２０の安全性をより向上させることができる。
【０２４９】
（他の実施の形態）
以上、本開示の１つまたは複数の態様に係るシステムについて、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の１つまたは複数の態様の範囲内に含まれてもよい。
【０２５０】
また、上記各実施の形態において、シーケンスマネージャ１００及びデバイスマネージャ２００は、クラウドサーバ１０に含まれていたが、これに限定されない。シーケンスマネージャ１００及び／又はデバイスマネージャ２００は、装置２０に含まれてもよい。また、ＵＩ４００は、端末３０に含まれていたが、装置２０に含まれてもよい。
【０２５１】
また、上記各実施の形態において、劣化情報に基づいて、アプリケーションが変更されてもよい。例えば、デバイス３００は、複数の劣化レベルと複数のパラメータの変換方法とが対応付けられたパラメータ変換情報を参照して、劣化レベルに対応する変換方法を取得し、取得した変換方法を用いてブロックに含まれるパラメータを変換してもよい。変換方法としては、例えば、変換後の値で定義されてもよいし、変換前の値に適用される係数で定義されてもよい。
【０２５２】
また、上記各実施の形態では、実行前確認においてパラメータが非許容範囲に含まれる場合にブロックを変更し、その後ブロックが実行されていたが、これに限ったものではない。例えば、パラメータが非許容範囲に含まれる場合に、デバイス３００の状態が想定と異なっていたときは、ブロックを実行せず、デバイスマネージャ２００及び／又はシーケンスマネージャ１００に実行中止（エラー）が通知されてもよい。
【産業上の利用可能性】
【０２５３】
複数の機能ブロックで規定されたアプリケーションを実行することができる家庭用電化製品等に利用できる。
【符号の説明】
【０２５４】
１  システム
２ａ、２ｂ、２ｃ、２ｄ  施設
１０  クラウドサーバ
１１  プロセッサ
１２  メモリ
２０、２０ａ、２０ｂ、２０ｃ、２０ｄ、２０ｅ、２０ｆ、２０ｇ、２０ｈ  装置
２１  筐体
２２  アクチュエータ
２３  加熱器
２４  制御部
３０、３０ａ、３０ｂ、３０ｃ、３０ｄ  端末
３１  ディスプレイ
３２  入力デバイス
１００  シーケンスマネージャ
２００  デバイスマネージャ
３００、３００ａ、３００ｂ、３００ｃ、３００ｄ、３００ｅ、３００ｆ、３００ｇ、３００ｈ  デバイス
４００、４００ａ、４００ｂ、４００ｃ、４００ｄ  ＵＩ
５００  洗濯機
５０１  筐体
５０２  水槽
５０３  洗濯槽
５０４  洗濯モータ
５０５  ドア
５０６  ドアロック機構
５０７  振動センサ
５１１  給水弁
５１２  給水管
５１３  自動投入機
５１５  水位センサ
５１６  バスポンプ
５１７  風呂水配管
５２１  排水管
５２２  排水フィルタ
５２３  排水弁
５２４  循環ポンプ
５２５  循環用配管
５３１  吸気センサ
５３２  ヒートポンプ
５３３  ダクト
５３４  循環ファン
５３５  温風センサ
５３６  除菌装置
５４１  第１泡センサ
５４２  第２泡センサ
５４３  温水ヒータ
５４４  温水センサ
５５０  制御装置
５６０  操作パネル
５７０  通信部
１０００、１０１０、１０２０、１０３０、１０４０、１０５０、１０６０、１０７０、１０８０、１０９０、１１００、１１１０、１１２０、１１３０、１１４０、１３０１  ブロック
１０１１、１０１２、１０２１〜１０２３、１０３１、１０４１、１０５１〜１０５６、１０６１〜１０６４、１０７１、１０７２、１０８１、１０９１、１１０１、１１０２、１１１１、１１１２、１１２１、１１３１、１１３２、１１４１  パラメータ
１２００  デバイスデータベース
１２０１  デバイス情報
１３００  実行内容宣言
１３０２  デバイスに関する情報
１３０３  順番情報
１４００、１４００Ｃ  ルールデータベース
１４０１〜１４０５、１４０１Ｃ、１４０２Ｃ、１４０３Ｃ、１４０４Ｃ  ルール
Ｆ１００  準備フェーズ
Ｆ２００  アプリ実行前フェーズ
Ｆ３００  アプリ実行フェーズ
【図１】
2022001152.tif 000003
【図２Ａ】
2022001152.tif 000004
【図２Ｂ】
2022001152.tif 000005
【図２Ｃ】
2022001152.tif 000006
【図３】
2022001152.tif 000007
【図４】
2022001152.tif 000008
【図５】
2022001152.tif 000009
【図６Ａ】
2022001152.tif 000010
【図６Ｂ】
2022001152.tif 000011
【図６Ｃ】
2022001152.tif 000012
【図６Ｄ】
2022001152.tif 000013
【図６Ｅ】
2022001152.tif 000014
【図６Ｆ】
2022001152.tif 000015
【図６Ｇ】
2022001152.tif 000016
【図６Ｈ】
2022001152.tif 000017
【図６Ｉ】
2022001152.tif 000018
【図６Ｊ】
2022001152.tif 000019
【図６Ｋ】
2022001152.tif 000020
【図６Ｌ】
2022001152.tif 000021
【図６Ｍ】
2022001152.tif 000022
【図６Ｎ】
2022001152.tif 000023
【図６Ｏ】
2022001152.tif 000024
【図７】
2022001152.tif 000025
【図８】
2022001152.tif 000026
【図９】
2022001152.tif 000027
【図１０】
2022001152.tif 000028
【図１１】
2022001152.tif 000029
【図１２】
2022001152.tif 000030
【図１３】
2022001152.tif 000031
【図１４】
2022001152.tif 000032
【図１５】
2022001152.tif 000033
【図１６】
2022001152.tif 000034
【図１７】
2022001152.tif 000035
【図１８】
2022001152.tif 000036
【図１９】
2022001152.tif 000037
【図２０】
2022001152.tif 000038
【図２１Ａ】
2022001152.tif 000039
【図２１Ｂ】
2022001152.tif 000040
【図２１Ｃ】
2022001152.tif 000041
【図２１Ｄ】
2022001152.tif 000042
【図２１Ｅ】
2022001152.tif 000043
【図２２】
2022001152.tif 000044
【図２３】
2022001152.tif 000045
【図２４】
2022001152.tif 000046
【図２５】
2022001152.tif 000047