2019年 春期 応用情報技術者試験 問7
家庭用浴室給湯システム
G社は、家庭用浴室給湯システム(以下、浴室給湯システムという)を開発している。浴室給湯システムは、設定された給湯温度で浴槽に給湯を行う機能と、浴室に入った人が洗い場又は浴槽で動かなくなる事象(以下、異常事象という)を監視して、異常事象が発生したらブザーで同居人に知らせる機能をもつ。浴室給湯システムは、浴室内に設置されるリモコン、浴室の出入口に設置される出入りセンサ、及び浴室外に設置される給湯器で構成される。浴室給湯システムの構成を図1に、浴室給湯システムの構成要素の概要を表1に示す。

構成要素名 | 概要 |
---|---|
リモコン |
・表示器、人感センサ、ブザー、運転ボタン、給湯ボタン、給湯温度変更ボタン、及びMCUで構成される。 ・表示器は、設定された給湯温度と、給湯器の運転状態を表示する。 ・人感センサは、人の動きを検出したときは1を、検出しなかったときは0を、1秒ごとに出力する。人の動きを検出する範囲は、浴室内に限られる。 ・出入りセンサと接続され、出入りセンサの出力を読み出すことができる。 ・給湯器と接続され、給湯器に指示を送信することができる。 |
出入りセンサ |
・人が浴室の出入口を横切っていることを検出している間は1を、それ以外の間は0を出力する。人が浴室に入ったのか、浴室から出たのかは判別できない。 ・非常に短い間隔で0と1を交互に出力する現象が発生することがある。 |
給湯器 |
・リモコンからの指示に従い、運転、停止、給湯、及び給湯温度の変更を行う。 ・リモコンからの各指示のデータ長は、いずれも3バイトの固定長である。 ・シリアル I/F の通信速度は、9,600 ビット/秒である。 |
【出入りセンサの出力の確定方法】
MCUは、出入りセンサの出力を1回の読出しでは確定せず、10ミリ秒間隔で出力を読み出して、5回連続で同じ値が読み出せたときに確定し、その値を確定値とする。
【リモコンの動作】
- リモコンは、各ボタンによって操作を受け付け、給湯器に指示を送信する。
- 運転ボタンが押されたら給湯器の運転又は停止、給湯ボタンが押されたら給湯、給湯温度変更ボタンが押されたら給湯温度の変更というように、ボタンに応じた指示を給湯器に送信する。
- リモコンは、人の浴室の出入り及び異常事象を監視する。
- 人感センサの出力が1であれば、人が浴室に入ったと判定する。
- 人が浴室に入ったと判定した後、出入りセンサの確定値が1となった後で人感センサの出力が0となれば、人が浴室から出たと判定する。
- 人が浴室に入ったと判定した後、出入りセンサの確定値が1となる前に、人感センサの出力が連続して3分以上0であれば、異常事象と判定する。
- 異常事象と判定したら、いずれかのボタンが押されるまでブザーを鳴動する。
【リモコンのソフトウェア構成】
リモコンの組込みソフトウェアには、リアルタイムOSを使用する。異常事象の監視に関係する主なタスクの一覧を表2に示す。
タスク名 | 処理概要 |
---|---|
メイン |
・リモコン全体の管理及びブザーの鳴動制御を行う。 ・監視タスクから"異常"が通知されたら、ブザーを鳴動させる。 ・ブザーの鳴動を停止したときは、"解除"を監視タスクに通知する。 |
出入り検出 |
・10ミリ秒間隔で出入りセンサの出力を読み出す。 ・確定値が1となったら、"出入り"を監視タスクに通知する。 ・一度"出入り"を通知したら、次に"出入り"を通知するのは、確定値が一度0となった後で、再び確定値が1となったときである。 |
人検出 |
・500ミリ秒間隔で人感センサの出力を読み出す。 ・出力が1であれば"検出"を、出力が0であれば"未検出"を監視タスクに通知する。 |
監視 |
・出入り検出タスク及び人検出タスクの通知から、異常事象を判定する。 ・異常事象と判定した場合は、メインタスクに"異常"を通知する。 |