平成30年秋期試験午後問題 問7

問7 組込みシステム開発

⇱問題PDF
カードを使用した電子扉システムの設計に関する次の記述を読んで,設問1~3に答えよ。
 E社は,電子錠を開発している会社である。E社では,RFIDタグを内蔵したカード(以下,入退室カードという)を使用して,扉の電子錠を制御するシステム(以下,電子扉システムという)を開発することになった。
 電子扉システムは企業向けであり,従業員ごとに個別の入退室カードを配布して,従業員の入退室管理に用いる。

〔電子扉システムの構成〕
 電子扉システムは,扉,カードリーダー,制御部などから成る電子扉ユニットと,各電子扉ユニットとLANで接続されたサーバから構成される。電子扉システムの構成を図1に示す。
  • ドアクローザは,扉の上部に有り,内蔵するばねの力で扉を自動的に閉める。
  • レバーは扉の室内側と室外側に有り,電子錠で開錠/施錠される。開錠状態では,レバーを下に回して扉を開けることができ,手を放すとレバーは元に戻リ扉は閉まる。施錠状態では,扉は開けられない。また,扉を開けたまま施錠することができ,このときには扉が閉まると扉を開けることができなくなる。
  • カードリーダーは,室内側と室外側に取り付けられている。
  • 電子扉ユニットには,扉識別コードが設定されている。
pm07_1.png
〔電子扉ユニットのハードウェア構成〕
 電子扉ユニットのハードウェア構成を図2に示す。
pm07_2.png
  • 扉識別コードは,電子扉ユニットごとに割り当てられ,制御部が保持する。
  • 入退室カードには,カードごとに割り当てられたカード識別コード,有効期限などの情報を格納する。
  • 制御部は,MPUを内蔵しており,各ハードウェアを制御する。
  • カードリーダーは,室内側及び室外側に1台ずつ設置し,室内側を示すコードと,室外側を示すコード(以下,リーダー設置区分コードという)をそれぞれ割り当てる。カードリーダーは,入退室カードの情報を読み込む。
  • 開閉センサは,扉が開いたこと及び扉が閉まったことを検出する。
  • 電子ブザーは,単発音の許可音・エラー音を発生したり,連続音の警告音を鳴動したりする。
  • 電子錠は扉のレバーを開錠/施錠する。
  • LANインタフェースは,LANに接続してサーバと通信する。
〔電子扉システムの動作〕
  • 入退室カードをカードリーダーにかざすと,入退室カードの情報を読み込み,電子扉ユニットの情報とあわせてサーバに送信する。
  • サーバからの応答が開錠許可なら,許可音を発生して開錠する。開錠してからt1秒以内に扉が開かないときは施錠する。
  • サーバからの応答が開錠許可でないとき,エラー音を発生する。
  • 扉が開いてから,t2秒以内に扉が閉まらないとき,扉が閉まるまで警告音を鳴動し続ける。
 t1及びt2は,必要に応じて変更が可能で,t2>t1>1秒とする。

〔制御部とサーバ間の通信〕
 サーバは,入退室可能な入退室カードの保有者の情報を扉ごとに管理する。
  • 制御部は,カードリーダーで入退室カードの情報を読み込んだとき,ab及びリーダー設置区分コードをサーバに送信する。
  • サーバは,aで入退室カードの保有者を特定し,bで入退室する扉を特定し,リーダー設置区分コードで入室又は退室を識別する。これらの情報から,入退室カードの保有者が入退室を許可されているか判定して,判定結果を制御部に送信する。

〔制御部のプログラムの処理〕
 制御部のプログラムの処理フローを図3に示す。この処理は,室内側又は室外側のカードリーダーに入退室カードをかざすと開始される。また,この処理の間に新たに入退室カードがかざされても,終了するまで処理を続行する。
  • タイマは,OSのタイマ機能を使用する。タイマに時間を設定すると計時が始まり,設定した時間が経過するとタイマ満了イベントが通知される。タイマが満了する前にタイマ取消しを行うと,タイマ満了イベントは通知されない。
  • 開閉センサは扉が開いたときに開扉イベントを通知し,扉が閉まったときに閉扉イベントを通知する。
  • 処理"カード情報を読み込む"では,入退室カードの情報を読み込む。
  • 処理"イベント待ち"では,開扉イベント,閉扉イベント,及びタイマ満了イベントを待ち受ける。
  • 処理"開錠する"及び処理"施錠する"では,制御部が電子錠に開錠又は施錠を通知する。その通知から実際に電子錠が開錠/施錠するのに1秒掛かり,その間,次の処理は行わない。
pm07_3.png
〔不具合の発生〕
 電子扉システムの動作をテストしていたところ,扉を開けたままt2秒経過しても警告音が鳴動しない不具合が,図3の"①施錠する"を処理した後に発生した。
 なお,不具合が発生したときに,入退室カードの情報は正しく読み込まれており,LAN及びサーバに問題はなく,ハードウェア及びソフトウェアは通常の処理をしていた。

設問1

〔制御部とサーバ間の通信〕について,本文中のabに入れる適切な字句を,本文中の字句を用いて答えよ。

解答例・解答の要点

a:カード識別コード
b:扉識別コード

解説

aについて〕
本文中の〔制御部とサーバ間の通信〕の(2)には、「サーバは,aで入退室カードの保有者を特定し,」とあります。よって、[a]には入退室カードが持つ情報のうち、入退室カードの保有者を特定できる情報が入ります。

入退室カードに関する説明を本文中から探すと、〔電子扉ユニットのハードウェア構成〕に「入退室カードには,カードごとに割り当てられたカード識別コード,有効期限などの情報を格納する」とあります。カード識別コードは、カードごとに割り当てられる固有の情報で、そのカードの保有者を特定できると考えられるので、[a]にはカード識別コードが入ります。

a=カード識別コード

bについて〕
[a]と同様に考えます。本文中の〔制御部とサーバ間の通信〕の(2)には、「bで入退室する扉を特定し,リーダー設置区分コードで入室又は退室を識別する」とあります。この文から、[b]には入退室する扉を特定できる情報が入ることがわかります。

本文中に「電子扉ユニットには,扉識別コードが設定されている」「扉識別コードは,電子扉ユニットごとに設定され…」という記載があることから、扉の特定に扉識別コードが使用できることがわかります。よって、[b]には扉識別コードが入ります。

b=扉識別コード

設問2

〔制御部のプログラムの処理〕について,(1)~(3)に答えよ。
  • 図3中のcに入れる適切な処理を,本文中の字句を用いて答えよ。
  • 図3中のdeに入れる適切な処理を,解答群の中から選び,記号で答えよ。
  • 図3中のfgに入れる適切なイベントを,本文中の字句を用いて答えよ。
d,e に関する解答群
  • イベント待ち
  • 開錠する
  • 施錠する
  • タイマ取消し
  • タイマにt1秒を設定する
  • タイマにt2秒を設定する

解答例・解答の要点

  • c:エラー音を発生する
  • d:
    e:
  • f:閉扉
    g:タイマ満了

解説

  • cについて〕
    図3「制御部のプログラムの処理フロー」より、[c]は開錠許可がされなかった場合に行う処理であることがわかります。本文中からこの部分の説明を探すと、〔電子扉システムの動作〕の(3)に「サーバからの応答が開錠許可でないとき,エラー音を発生する」とあります。よって、[c]にはエラー音を発生するが入ります。

    c=エラー音を発生する

  • dについて〕
    図3「制御部のプログラムの処理フロー」より、[d]は許可音を発生させた後に行う処理であることがわかります。さらに、〔電子扉システムの動作〕の(2)には「サーバからの応答が開錠許可なら,許可音を発生して開錠する。開錠してからt1秒以内に扉が開かないときは施錠する」とあります。

    t1秒というタイマに関連する処理が出てきたので、タイマの仕様を確認すると「タイマに時間を設定すると計時が始まり,設定した時間が経過するとタイマ満了イベントが通知される」とあり、タイマ機能を使うには、まずタイマに時間を設定しなければならないことがわかります。

    図3の許可音を発生した後には、タイマに時間を設定するという処理がありませんので、[d]には「オ」のタイマにt1秒を設定するが入ることになります。

    d=オ:タイマにt1秒を設定する

    eについて〕
    図3「制御部のプログラムの処理フロー」より、[e]は開錠イベント後に行う処理であることがわかります。さらに、〔電子扉システムの動作〕の(4)には「扉が開いてから、t2秒以内に扉が閉まらないとき,扉が閉まるまで警告音を鳴動し続ける」とあります。この説明から、開錠イベント後にt2秒のタイマを設定する必要があることがわかります。

    よって、[e]には「カ」のタイマにt2秒を設定するが入ります。

    e=カ:タイマにt2秒を設定する

  • fgについて〕
    本文中の〔制御部のプログラムの処理〕には「処理"イベント待ち"では,開扉イベント,閉扉イベント,及びタイマ満了イベントを待ち受ける」とあります。すなわち、[f]と[g]には「開扉」「閉扉」、または「タイマ満了」のいずれかの通知が入ります。

    〔電子扉システムの動作〕の(4)に、「扉が開いてから,t2秒以内に扉が閉まらないとき,扉が閉まるまで警告音を鳴動し続ける」とあることから、"警告音を鳴動する"のは扉が開いたままt2秒以上経過したとき、すなわちタイマ満了イベントが通知されたときとわかります。よって、[g]にはタイマ満了が入ります。逆にt2秒以内に扉が閉まったときには、警告音を鳴らす必要はないわけですからタイマを取り消すことになります。つまり、タイマ取消しの処理は、扉が閉まった際に行われるべき処理です。扉が閉じられたことは閉扉イベントで通知されるので、[f]には閉扉が入ります。

    f=閉扉
     g=タイマ満了

設問3

〔不具合の発生〕について,不具合が発生する条件を35字以内で述べよ。

解答例・解答の要点

"①施錠する"処理中に扉を開き,そのままt2秒経過したとき (40文字)

解説

図3「制御部のプログラムの処理フロー」の"①施錠する"を処理した後に発生したというヒントを元に不具合が発生する原因を分析します。"①施錠する"は、開錠した後、一定時間内に扉が開かなかったときに行われる処理です。

本文中から"施錠する"動作に関する部分を探すと、〔制御部のプログラムの処理〕の最後に「処理"開錠する"及び処理"施錠する"では,制御部が電子錠に開錠又は施錠を通知する。その通知から実際に電子錠が開錠/施錠するのに1秒掛かり,その間,次の処理は行わない」という部分に気が付きます。

この仕様だと、施錠を通知してから1秒以内であれば扉が開いてしまうことになります。これが不具合の原因です。
図3の処理フローでは、そもそもこの状況を想定しておらず、"①施錠する"前に警告音鳴動のためのタイマも設定していないのですから、扉が開いたままt2秒を経過しても警告音が鳴るはずもありません。

よって、不具合が発生するのは「"①施錠する"処理中に扉を開き、そのままt2秒経過したとき」となります。

∴"①施錠する"処理中に扉を開き,そのままt2秒経過したとき
模範解答

Pagetop