家庭用浴室給湯システム設計－午後

平成31年春期 午後問題7

ファイル：2019h31h_ap_pm_qs.pdf

**１、浴室給湯システムの仕様について、次の記述中a,b,cに入れる適切な字句を答えよ。**
a,bは、異常監視ですね。人感センサの出力が１から０となった場合において、人が浴室にいないか、異常発生しているかが分からないですね。よって、aは「人感」センサです。
bは「出入り」センサですね。
cは人が浴室にいないので、人が「浴室から出た」ですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/330a5f30-9997-be31-19ab-9c71d54e9cdf.png)


＜＜異常監視：出入りセンサで未検出と、３分以上人感センサが未検出だと、異常と判定される＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/bfd50514-c29b-e3f0-12ca-afdc39cbc931.png)

**２、リモコンが給湯器に指示を一つ送信するとき、シリアルI/Fにおける通信時間は何ミリ秒か。答えが少数第２桁位を切り上げで、小数第１位まで求めよ。**
ここで、１バイトのデータは１０ビットで送信され、ソフトウェアの動作時間は考慮しなくてよいものとする。

浴室給湯システムの構成要素よると、シリアルI/Fの通信速度は、9,600bit/sですね、且つリモコンの送信データは３バイトであります。
なので、
9,600 bit/s  ÷　10bit -> 960 バイト/s
1秒は960バイトで送信でき、３バイトはどれほど時間かかるのことですね。
(3÷960) ✖ 1000(ミリ秒）　＝　3.125ミリ秒
第２桁位を切り上げるので、3.2ミリ秒になりますね。

間違いやすいことろは、
１）、１バイトは８ビット。
こう計算すると、9,600bit/s ÷　8bit -> 1,200 バイト/s
(3÷1200)　✖　1000（ミリ秒）＝2.5ミリ秒

２）、切り上げ
3.1を書いている方が少なくないだろうね。

よく見えるの小数処理方法は下記となりますね：
・四捨五入　(0位小数まで）
　例　1.23→1
　　　24.681→25
　　　422.000000001→422

・切り捨て　(0位小数まで）
　例　1.23→1
　　　24.681→24
　　　422.000000001→422

・切り上げ　(0位小数まで）
　例　1.23→2
　　　24.681→25
　　　422.000000001→423


＜＜浴室給湯システムの構成要素＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/0c42d4b5-6887-f2a9-4a48-c82b1b66c9c5.png)

**３、出入りセンサの出力と、出入り検出タスクの動作タイミングの例を図２に示す。図２について、（１）、（２）を答えよ。**
（１）出入り検出タスクが、”出入り”を通知するタイミングを（ア）～（テ）の記号で答えよ。
図２によると、アのタイミングで出力を０で確定していますので、連続で５回が同じ値「１」を読めると、確定値「１」を通知しますね。（エ→オ→カ→キ→ク）になりますね、つまり、”出入り”を通知タイミングは「ク」です。

（２）出入り検出タスクが”出入り”通知した後、出力を０で確定する最初のタイミングを（ア）～（テ）の記号で答えよ。
図２によると、クのタイミングで出力を１で確定して、”出入り”通知をしていました。後で、連続で５回が同じ値「０」を読めると、確定値「０」を通知しますね。「ス→セ→ソ→タ→チ」になりますね。つまり、”出入り”を通知タイミングは「チ」ですね。

間違いしやすいところは、
連続５回が同じ値を読めると確定値とするのを忘れると、０から１、１から０になると、通知になりますね。アが０だから、イは最初通知タイミングになってしまったですね。後は、イは「１」だから、ウは最初通知タイミングになってしまったですね。

＜＜図２＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/c3508b76-d2bd-0ca7-ef94-decf5fd163a8.png)

＜＜出入りセンサの出力の確定方法＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/060a9572-71f0-ad59-c70d-974c440e513d.png)

＜＜出入り検出：一度”出入り”を通知したら、次に”出入り”をするのは、確定値が一度０となった後で、再び確定値が１となったときである＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/ed1626eb-69dc-fffe-a2b4-c1e039a36a16.png)


**４、監視タスクの状態遷移を図３に示す。（１）、（２）に答えよ。**
（１）「在室」状態から「異常」状態に遷移する条件ですね。
異常になる条件は、出入り検出が未検出　かつ、人検出も未検出ですね。

ですが、人検出が未検出でも、すぐに異常に遷移ではないですね、「連続して３分より以上人検出が”未検出”受信」ですね。

参考答えは、「連続して361回”未検出”受信」。
１回人検出は500ミリ秒周期で人感センサの出力を読み出すので、３分間は360回ですね。
なので、３分以上は、360より以上ですね、361回は、一番早い回数ですね。
「以上」は「＝」も含むとの曖昧意味があるので、361回が精確だろうな。

なお、「異常になる条件は、出入り検出が未検出　かつ、人検出も未検出」ので、出入りは答えに入らないの？を悩んでいるだろうね。

なので、「出入りが”未検出”と３分以上人検出が”未検出”」でいいのかな。
ですが、２０字以上になってしまったですが。

ここは、あえて理解とすると、「在室」状態の場合、出入りが受信していない場合は、「在室」の状態のまま持続しますね。ただ、３分以上人検出が”未検出”受信　とすると、「異常」の状態に遷移するよとのことですね。

＜＜監視タスクの状態遷移＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/b5f0f713-f9e4-10b0-d4f2-cfd91d501e3a.png)

＜＜出入り検出：一度”出入り”を通知したら、次に”出入り”をするのは、確定値が一度０となった後で、再び確定値が１となったときである＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/ed1626eb-69dc-fffe-a2b4-c1e039a36a16.png)

＜＜異常監視：出入りセンサで未検出と、３分以上人感センサが未検出だと、異常と判定される＞＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591618/bfd50514-c29b-e3f0-12ca-afdc39cbc931.png)

（２）「空室」状態で、１人が浴室に入ると、”検出”受信するので、「在室」状態になりますね。
よって、eは「在室」。「在室」状態で、もう１人が浴室に入ると、”出入り”受信するので、「未定」状態になりますね。よって、fは「未定」。「未定」状態で、”検出”受信するので、「在室」に遷移しますね。


**結論：**
結構難しいですね、この午後問７。
細心に払わないと、結構間違いしやすいですね。
条件を見ながら、慎重にやりましょう。