平成27年秋期試験午後問題 問7
問7 組込みシステム開発
⇱問題PDF
通信機能を内蔵したデジタル電力量計の設計に関する次の記述を読んで,設問1~4に答えよ。
通信機能を内蔵したデジタル電力量計の設計に関する次の記述を読んで,設問1~4に答えよ。
広告
H社は計測器のメーカーである。今回,通信機能を内蔵したデジタル電力量計(以下,電力量計という)を設計することになった。この電力量計は,計測したデータを電力会社のサーバ(以下,サーバという)に自動で送信する。
〔電力量計の機能〕
電力量計を用いた電力量計測システムの構成を,図1に示す。 電力量計の機能は,次のとおりである。
電力量計のハードウェア構成を表1に示す。この電力量計は計測部及び通信部から成る。〔サーバの機能〕
計測部は,電圧と電流を計測して電力を求める。このうち,電圧値を計測するA/Dコンバータは,最下位ビットが1/2,048ボルトの重みであり,負の値を2の補数表現として -1,024ボルト~1,024-(1/2,048)ボルトの範囲の電圧を計測できる。このA/Dコンバータに必要な最小のビット数は,aビットである。
〔電力量計のタスクの主な処理〕
電力量計のプログラムは,通信制御タスク及び管理タスクから成る。電力量計のタスクの主な処理は表2のとおりである。
〔電力量計の機能〕
電力量計を用いた電力量計測システムの構成を,図1に示す。 電力量計の機能は,次のとおりである。
- 電力量計は,一般家庭,工場などに設置され,電力量を計測し,記録する機能がある。また,内蔵した時計(以下,時計という)で時刻を計時する機能がある。内蔵バッテリを使用し,停電時にもこれらの機能を維持できる。
- 電力量計には通信機能があり,サーバと双方向通信ができる。通信は,携帯電話回線,インターネット,電力会社が敷設した専用線などのネットワークを使用して行う。
- 電力量計は,時刻補正サーバ又は検針員用の専用端末を利用し,時計を十分な精度で補正できる。
- 電力量計は,1秒ごとに1秒分の電力量を計測する。計測によって得られた電力量のデータには,年月日を含む秒単位の時刻情報(以下,タイムスタンプという)が付与される。このデータを1秒データといい,電力量計は最大70日分の1秒データを保持する。
- 電力量計は,毎時0分0秒から29分59秒までのタイムスタンプが付いた1秒データ,又は毎時30分0秒から59分59秒までのタイムスタンプが付いた1秒データ(以下,これらを電力量データという)をサーバに送信する。通常,電力量データは1,800個の1秒データから成るが,条件によっては1,800個とならないことがある。その場合,電力量計は電力量データ中の1秒データの個数が1,800個となるように補正する。
- 電力量計は,サーバに電力量データを送信するとき,電力量計の識別コード及びプログラムのバージョン番号を付与する。
- 検針員が出向いて検針し,データ収集することもできる。
電力量計のハードウェア構成を表1に示す。この電力量計は計測部及び通信部から成る。〔サーバの機能〕
- 電力量データの収集
サーバから電力量計に対して,指定した時間帯の電力量データの通知要求を送る。サーバは,電力量計から送られてきた電力量計の識別コード,プログラムのバージョン番号を確認し,電力量データとともにデータベースに格納する。 - 検針員による検針の指示
サーバは,月初めのバッチ処理で,データベース上で電力量データに欠落がある電力量計一覧を出力する。検針員は電力量計一覧に従って検針し,データを収集する。
計測部は,電圧と電流を計測して電力を求める。このうち,電圧値を計測するA/Dコンバータは,最下位ビットが1/2,048ボルトの重みであり,負の値を2の補数表現として -1,024ボルト~1,024-(1/2,048)ボルトの範囲の電圧を計測できる。このA/Dコンバータに必要な最小のビット数は,aビットである。
〔電力量計のタスクの主な処理〕
電力量計のプログラムは,通信制御タスク及び管理タスクから成る。電力量計のタスクの主な処理は表2のとおりである。
広告
設問1
〔電力量計の機能〕について,電力量データの1秒データの個数が1,800個とならないのはどのようなときか,40字以内で述べよ。ただし,うるう秒及び新たに電力量計を設置した場合を除くものとする。
解答例・解答の要点
時計の補正機能によって,時計の時刻が1秒以上変化したとき (28文字)
解説
問題文の〔電力量計の機能〕の(5)には、「電力量計は,毎時0分0秒から29分59秒までのタイムスタンプが付いた1秒データ,又は毎時30分0秒から59分59秒までのタイムスタンプが付いた1秒データ(以下,これらを電力量データという)をサーバに送信する」とあります。電力量の計測は1秒ごとに行われるので、電力量データは毎時0分0秒から29分59秒までの1,800秒間、または毎時30分0秒から59分59秒までの1,800秒間のデータであることがわかります。つまり、何ら問題なく電力量計測が行われた場合には電力量データの個数は1,800個になります。しかし、問題文の〔電力量計の機能〕の(3)で説明されている時刻補正機能によって、時計の時刻が1秒以上変化した場合は、電力量データの個数は1,800個になりません。例えば、次のようなケースです。
- ●分9秒で電力計測(正確な時刻は●分9.3秒)
↓
●分10秒で電力計測(正確な時刻は●分10.3秒)
↓
●分10.1秒にRTCを●分9.8秒に時刻補正(-0.3秒)
↓
0分10秒で電力計測
↓
0分11秒で電力計測 - ●分9秒で電力計測(正確な時刻は●分8.7秒)
↓
●分10秒で電力計測(正確な時刻は●分9.7秒)
↓
●分10.8秒にRTCを●分11.1秒に時刻補正(+0.3秒)
↓
●分12秒で電力計測
↓
●分13秒で電力計測
∴時計の補正機能によって、時計の時刻が1秒以上変化したとき
広告
設問2
〔サーバの機能〕について,サーバのデータベース上で,電力量データの欠落を検出するのに使用するデータの情報を答えよ。
解答例・解答の要点
タイムスタンプ
解説
〔サーバの機能〕について、サーバのデータベース上で、電力量データの欠落を検出するのに使用するデータの情報を考えます。問題文の〔電力量計の機能〕の(4)には、「電力量計は,1秒ごとに1秒分の電力量を計測する。計測によって得られた電力量のデータには,年月日を含む秒単位の時刻情報(以下、タイムスタンプという)が付与される」とあります。このことから、1秒データには計測時刻を表すタイムスタンプが含まれていることがわかります。タイムスタンプは秒単位の情報であり、電力量の計測は1秒ごとに行わるので、サーバのデータベースには期間内の全ての秒に対応するタイプスタンプが記録されることになります。
特定時刻のタイムスタンプが存在しないということは、電力量データに欠落があるということを意味します。もし、通信障害等の何らかの事由により、電力量データがデータベースに格納されなかった場合には、その期間のタイムスタンプが抜けてしまっているはずです。つまり、データの欠落は「タイムスタンプ」の網羅性を調べることによって検出可能です。
∴タイムスタンプ
広告
設問3
〔計測部のA/Dコンバータ〕について,本文中のaに入れる適切な数値を答えよ。
解答例・解答の要点
a:22
解説
〔aについて〕A/Dコンバータに必要な最小ビットを求めます。
問題文の〔計測部のA/Dコンバータ〕には、「電圧値を計測するA/Dコンバータは,最下位ビットが1/2,048ボルトの重みであり、負の値を2の補数表現として -1,024ボルト~1,024-(1/2,048)ボルトの範囲の電圧を計測できる」とあります。
- 2の補数
- 2進数で負数を表現する方法の一つです。ある正の数の2の補数を求めるには、すべてのビットを反転して1を加えます。
まず、最小値である-1,024ボルトを2の補数で表します。1,024(=210)は2進数で
(10000000000)2
ですが、最下位ビットは1/2,048(=1/211)ボルトの重みですので、小数点以下11桁も必要となります。
(10000000000.00000000000)2
負数なので2の補数に変換すると、
(10000000000.00000000000)2
となります(元のビット列と同じです)。つまり、最小値を表すのに必要なビット数は22ビットです。
次に、最大値である1,024-(1/2,048)ボルトについて考えます。1,024は2進数で、
(10000000000.00000000000)2
1/2,048は2進数で、
(00000000000.00000000001)2
なので、1,024 - (1/2,048) は、
(01111111111.11111111111)2
です。正の数なので2の補数への変換はありません。最大値についても必要なビット数は22ビットです。よって、aには「22」が入ります。
∴a=22
広告
設問4
〔電力量計のタスクの主な処理〕について,(1),(2)に答えよ。
- 表2中のb,cに入れる適切な字句を答えよ。
- RTCの時刻の誤差が±0.5秒を超えないように時刻を補正するには,最大何時間ごとに時刻補正を行わなければならないか。答えは,誤差が一定として,小数第1位を切り捨てて,整数で求めよ。
解答例・解答の要点
- b:電力量計の識別コード ※順不同
c:プログラムのバージョン番号 ※順不同
- 17
解説
- 〔b,cについて〕
電力量計プログラムが通信制御タスクでサーバに送るデータのうち、電力量データ以外の2つを考えます。
問題文の〔サーバの機能〕の(1)には、「サーバは,電力量計から送られてきた電力量計の識別コード,プログラムのバージョン番号を確認し,電力量データとともにデータベースに格納する」とあります。この説明より、電力量計がサーバに送るデータには、電力量データに加えて「電力量計の識別コード」と「プログラムのバージョン番号」が含まれることがわかります。よって、bとcには順不同で「電力量計の識別コード」と「プログラムのバージョン番号」が入ります。
∴b,c=電力量計の識別コード,プログラムのバージョン番号 - 問題文の表1「電力量計のハードウェア構成」の計測部に、「RTCは常に時刻を計時している。RTCは1秒ごとに割り込みを発生し,割り込みごとにソフトウェアで1秒データを計測する。RTCの誤差は1日当たり±0.7秒である」とあります。RTCの誤差は24時間で±0.7秒ですから、何時間経過すれば誤差が±0.5秒になるのかを考えます。
誤差が±0.5秒になるまでにかかる時間は、
24×(0.5/0.7)=17.1428571…(時間)
となります。小数第1位を切り捨てて整数で答えを求めるため「17」が適切です。
∴17
広告
広告