令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午後Ⅱ 問題 問2 生産ライン可視化システムのタスク間通信と複数工場を連携させる機能拡張

学習ガイド

ロット生産を行う工場に導入する、生産ライン可視化システムのソフトウェア設計に関する事例です。センサ情報を基にした生産指標の算出、リアルタイムOSにおけるタスク間通信、複数工場の統合に向けた機能拡張の設計がテーマとなります。生産指標の計算はセンサ出力のタイムチャートから読み解き、タスク間通信はメッセージの送受信順序と工程間の関係を対応させながらシステムの挙動をたどる手順を説明します。

この記事で押さえる論点

  • センサの出力と設備の生産速度から、工程生産能力、ライン生産能力、工程間滞留量を計算できる
  • SDカードとフラッシュメモリからのモデルの読込みと、メインタスクの状態遷移を説明できる
  • タスク間通信シーケンスから、ドライバタスクが管理するセンサと工程の並び、稼働状態を判定できる
  • 複数工場の連携に伴うモデルのバイト数の変化と、タスクの変更内容を述べられる

問題本文

問2

生産ラインの可視化システムに関する次の記述を読んで,設問1〜3に答えよ。

E社は,ロット生産を行う加工工場向けに,生産ライン(以下,ラインという)の可視化システム(以下,本システムという)を開発している。ロット生産とは,同一の製品をまとまった単位数(ロット)で生産する生産方式である。本システムは,ラインに設置した各種センサからの情報を収集することで,ライン内の各生産工程(以下,工程という)の稼働状況や生産状況を可視化する。ラインの生産状況をリアルタイムに把握できない,旧型の生産設備(以下,設備という)を使用している工場に本システムを導入することで,工程管理の能力を向上させることができる。

〔本システムの構成〕

本システムの概要を図1に,本システムの構成要素を表1に示す。

図1 本システムの概要
図の説明テキスト

図1 本システムの概要
右上に凡例の枠がある:白抜きの砂時計形=投入センサ、黒塗りの砂時計形=産出センサ、黒塗りの逆三角形=状態センサ、黒塗りの四角形=出力ノード、N 字形の折れ線=無線通信。
上部に「タッチパネル」と「可視化装置」があり、両者は線で接続されている。可視化装置と下の「ライン」の枠の間に無線通信の記号が 4 本描かれている。
「ライン」(実線の枠)の中に「工程」(破線の枠)が左右に 2 つ並び、右端は「…」で続く。各工程の中では「設備」が左から右へ矢印で直列に並び(途中は「…」で省略)、各設備の上に状態センサが複数(▼…▼)付いている。各工程の左端(投入部分)に投入センサ、右端(産出部分)に産出センサがあり、各工程の破線枠の右上に出力ノードがある。左の工程の産出部分から右の工程の投入部分へ矢印でつながっている。
ラインの下に「ラインの上流」から「ラインの下流」へ向かう太い右向きの矢印がある。

表1 本システムの構成要素
図の説明テキスト

表1 本システムの構成要素

構成要素名 説明
投入センサ 各工程の投入部分に設置する無線センサで、工程への投入有無又は投入量を出力する。
産出センサ 各工程の産出部分に設置する無線センサで、工程からの産出量を出力する。
状態センサ 各工程で稼働する設備に設置する無線センサで、設備の状態を示す情報を出力する。
可視化装置 各種センサから情報を収集し、分析して必要な指示を行う。
タッチパネル 可視化装置で分析した結果の表示、及び各種ボタンのタッチ操作によって指示を行う。
出力ノード 出力ポートを備えており、各工程に設置し、設備などの異常時に可視化装置からの指示によって出力する。本出力を使用して、設備の緊急電源断、警告灯の点灯などを行う。

〔本システムの適用例〕

ネジの製造を行うS工場への本システムの適用例を示す。S工場では,表2に示すネジの生産ラインの工程において,圧造工程及び転造工程を行い,以降の工程は他工場で実施している。S工場で使用する各種センサを表3に示す。

表2 ネジの生産ラインの工程
図の説明テキスト

表2 ネジの生産ラインの工程

工程名 説明 図解
圧造工程 圧造機を使用する。1ロット分の線材から、ネジ1個分の所定の長さを切り出してネジの成形を行う。圧造機から産出された状態のネジをブランクという。 「線材」の図。下向き矢印
転造工程 転造機を使用する。ブランクを 2 枚の金属板で挟み、圧力を加えながら転がすようにスライドすることによってネジ山を成形する。 「ブランク」の図。下向き矢印
熱処理工程 熱処理機を使用する。ネジに対して焼入れ・焼戻しを行い、ネジの強度・硬度を高める。 「ネジ」の図。下向き矢印
表面処理工程 さび及び腐食の防止のために電気メッキなどの処理を行う。 「熱処理・表面処理後のネジ」の図
表3 S工場で使用する各種センサ
図の説明テキスト

表3 S工場で使用する各種センサ

工程名 センサ名 センサの種類 説明
圧造工程 投入センサ 光センサ 圧造機に投入した線材の有無によって ON/OFF を出力する。
圧造工程 状態センサ 振動センサ 圧造機のモータの振動を計測する。
圧造工程 状態センサ 電流センサ 圧造機のモータに流れる電流を計測する。
圧造工程 産出センサ 光センサ 圧造機から産出されるブランク1個ごとにパルスを出力する。
転造工程 投入センサ 光センサ 転造機に投入されるブランク1個ごとにパルスを出力する。
転造工程 状態センサ 振動センサ 転造機のモータの振動を計測する。
転造工程 状態センサ 電流センサ 転造機のモータに流れる電流を計測する。
転造工程 産出センサ 光センサ 転造機から産出されるネジ1個ごとにパルスを出力する。
注記 S工場では、圧造機が圧造工程内に1台、転造機が転造工程内に1台設置されている。

〔本システムの機能概要〕

可視化装置は各種センサから無線で情報を収集し,分析する。収集した情報を収集情報,分析した情報を分析情報という。分析情報の内容と求め方を次に示す。

(1) 状態センサが設置された設備の稼働状態を次のように決定する。

  • 状態センサ(S工場の事例では,振動センサ又は電流センサ)から得られた値を分析し,しきい値と比較することで,“停止”,“動作”又は“異常”の三つの状態のうち,いずれかに分類する。
  • 設備の稼働状態を,表4に示す条件で決定する。
表4 設備の稼働状態を決定するための条件
図の説明テキスト

表4 設備の稼働状態を決定するための条件

設備の稼働状態 決定するための条件
設備停止 1 台の設備に設置された,一つ以上の状態センサから得られる状態が“停止”であり,かつ,“停止”以外の全ての状態センサから得られる状態が“動作”
設備動作 1 台の設備に設置された,全ての状態センサから得られる状態が“動作”
設備異常 1 台の設備に設置された,一つ以上の状態センサから得られる状態が“異常”

(2) (1)で決定した設備の稼働状態を基に,工程及びラインの稼働状態を,表5に示す条件で決定する。

表5 工程及びラインの稼働状態を決定するための条件
図の説明テキスト

表5 工程及びラインの稼働状態を決定するための条件

工程・ラインの稼働状態 (詳細状態) 決定するための条件
工程 工程停止 工程内の全ての設備が“設備停止”
工程 工程動作 工程内の一つ以上の設備が“設備動作”であり,かつ,一つも“設備異常”がない
工程 工程異常 工程内の一つ以上の設備が“設備異常”
ライン ライン停止 ライン内の全ての工程が“工程停止”
ライン ライン動作 ライン内の一つ以上の工程が“工程動作”であり,かつ,一つも“工程異常”がない
ライン ライン異常 ライン内の一つ以上の工程が“工程異常”

(3) (1),(2)で決定した稼働状態と,各工程の投入量及び産出量を基に,表6に示す生産指標をロットごとに算出した上で,タッチパネルに表示する。

表6 可視化装置が算出するロットごとの生産指標
図の説明テキスト

表6 可視化装置が算出するロットごとの生産指標

生産指標 説明
工程生産量 工程からの産出量
工程生産能力 工程生産量 ÷ (工程の稼働状態が“工程動作”であった時間)
ライン生産量 ラインの最後の工程における産出量
ライン生産能力 ライン生産量 ÷ (ラインの稼働状態が“ライン動作”であった時間)
工程間滞留量 工程生産量 − 次の工程への投入量

〔可視化装置の構成〕

可視化装置は,一つのシステムバスに,MPUなどの複数の構成要素が接続されている。可視化装置の構成要素を表7に示す。

表7 可視化装置の構成要素
図の説明テキスト

表7 可視化装置の構成要素

構成要素名 説明
MPU ROM,RAM,日付時刻用タイマなどを内蔵し,可視化装置全体を制御する。
フラッシュメモリ 可視化装置の制御プログラム(以下,制御プログラムという),センサドライバプログラム(以下,ドライバという),収集情報及び分析情報,各種制御データを格納する。
USB I/F タッチパネルと通信する。
無線センサ I/F 各種センサ及び出力ノードと無線で通信する。
SD カード I/F SD カードと通信する。
無線 LAN I/F (省略)

〔ラインのモデル化〕

可視化装置は,ラインをモデル化するデータ(以下,モデルという)をSDカードから読み込み,モデルに従って処理する。モデルの構成及び構成要素を図2に示す。

図2 モデルの構成及び構成要素
図の説明テキスト

図2 モデルの構成及び構成要素
モデルを構成するデータ構造を示す図。左から「モデルの全体構成」「工程に関する情報」「設備に関する情報」の3つのデータ構造ブロックがあり、展開元の項目と展開先のブロックが破線(矢印なし)で結ばれている。「工程数」「設備数」「状態センサ数」からは、それぞれ繰り返し部分(「工程1〜N」「設備1〜N」「状態センサ1〜N」)を囲む括弧へ実線の矢印が引かれている。

  • 「モデルの全体構成」ブロック: 「作成日時 (8)」「工程数 (2)」「工程1に関する情報」「…」「工程Nに関する情報」が縦に並ぶ。
  • 「工程に関する情報」ブロック: 「モデルの全体構成」の「工程1に関する情報」等から破線で展開されている。「工程名 (32)」「投入センサのセンサ情報 (264) *」「産出センサのセンサ情報 (264) *」「a の識別ID (4)」「設備数 (2)」「設備1に関する情報」「…」「設備Nに関する情報」が並ぶ。
  • 「設備に関する情報」ブロック: 「工程に関する情報」の「設備1に関する情報」等から破線で展開されている。「設備名 (32)」「状態センサ数 (2)」「状態センサ1のセンサ情報 (264) *」「…」「状態センサNのセンサ情報 (264) *」が並ぶ。
  • 「* センサ情報の詳細」ブロック(左下): 「センサの識別ID (4)」「E社が定義するドライバの識別ID (4)」「設備の稼働状態を判別するしきい値など,ドライバ用の個別データ (256)」が並ぶ。

図の下部に以下の注記がある。
注記1 ( ) 内の数値は構成要素のバイト数を示す。
注記2 * は,"センサ情報の詳細" を示す。
注記3 工程,設備はラインの上流から順に並んでいる。

〔可視化装置の起動時(再起動時も含む)及びタッチパネル操作時の動作概要〕

(1) 出荷時のフラッシュメモリには,標準的なドライバが書き込まれている。モデルは書き込まれていない。

(2) MPUのROMには,起動時(再起動時も含む)に動作するブートプログラムが書き込まれている。ブートプログラムは,フラッシュメモリから制御プログラムを読み込み,RAMに展開後,制御プログラムに制御を移す。

(3) 制御プログラムは,表8に示すモデルの読込み処理を行う。

表8 モデルの読込み処理
図の説明テキスト

表8 モデルの読込み処理

フラッシュメモリにモデルがない状態 フラッシュメモリにモデルがある状態
SDカード未挿入,又はSDカードにモデルがない状態 タッチパネルにエラーを表示した後,再読込ボタンをタッチすると,モデルの読込み処理を行う。 フラッシュメモリからモデルを読み込み,RAMに展開する。
SDカードにモデルがある状態 SDカードからモデルを読み込み,RAMに展開する。 b

注記 複数のモデルが存在した場合は,作成日時が最も新しいモデルを読み込み,RAMに展開する。

(4) 制御プログラムは,RAMに展開されたモデルに記述されている識別IDのドライバをフラッシュメモリから読み込み,RAMに展開する。ただし,SDカードに当該ドライバがある場合,SDカードから読み込み,RAMに展開する。フラッシュメモリ及びSDカードに当該ドライバがなければ,タッチパネルにエラーを表示する。再読込ボタンをタッチするとSDカードからドライバの読込みを行う。

(5) モデルの処理に必要とされる全てのドライバを展開したら,次の処理を行った後,各種センサからの情報を収集し,分析を開始する。

  • ①モデル又はドライバをSDカードから読み込んだ場合,当該モデル又は当該ドライバをフラッシュメモリに書き込む。
  • フラッシュメモリに収集情報及び分析情報が保存されている場合は,RAMに展開する。

(6) タッチパネルの各種ボタンをタッチすることによって,次の操作ができる。

  • 中断ボタンをタッチすると,再開ボタンをタッチするまで,情報の収集及び分析を中断する。
  • 保存ボタンをタッチすると,RAMにある収集情報及び分析情報をフラッシュメモリに保存する。

〔制御プログラムのソフトウェア構造〕

制御プログラムには,リアルタイムOSを使用する。制御プログラムの主なタスク構成を図3に,制御プログラムの主なタスクの処理概要を表9に示す。

図3 制御プログラムの主なタスク構成
図の説明テキスト

図3 制御プログラムの主なタスク構成
タスク(実線の枠):生産ライン、工程(複数重なった枠)、ドライバ(複数重なった枠)、表示、タッチパネル、メイン、出力
メモリ(下線付きの字句):分析情報、収集情報、モデル、表示情報
実線の矢印(タスク間のメッセージ通信):

  • 生産ライン ⇔ 工程(両端に矢印、両方向)
  • 工程 ⇔ ドライバ(両端に矢印、両方向)
  • 工程 → 工程(重なった工程の枠から工程へ戻る矢印)
  • 工程 → 出力
  • 生産ライン ⇔ メイン(両端に矢印、両方向)
  • 生産ライン → 表示
  • メイン → 表示
  • 表示 → タッチパネル
  • タッチパネル → メイン
    破線の矢印(メモリへの書込み):
  • 生産ライン → 分析情報
  • 工程 → 分析情報
  • メイン → 分析情報
  • 工程 → 収集情報
  • メイン → 収集情報
  • メイン → モデル
  • 表示 → 表示情報
    注記1: 実線の矢印は,メールボックスを使用したタスク間のメッセージ通信の方向を示す。
    注記2: 破線の矢印は,メモリへの書込みを示す。ただし,メモリからの読出しは省略している。
表9 制御プログラムの主なタスクの処理概要
図の説明テキスト

表9 制御プログラムの主なタスクの処理概要

タスク名 処理概要
メイン ・可視化装置の状態を管理する。
・モデル,ドライバ,収集情報及び分析情報について,RAMへの展開及びフラッシュメモリへの保存を行う。エラーが発生した場合,エラーを表示するために表示タスクに通知する。
・タッチパネルタスクから“ボタン押下(ボタン名)”の通知を受けると,次の処理を行う。
 - ボタン名が“中断”のとき,生産ラインタスクに“中断”を通知する。
 - ボタン名が“再開”のとき,生産ラインタスクに“再開”を通知する。
 - ボタン名が“保存”のとき,収集情報及び分析情報を保存する。
生産ライン ・起動されると,モデルに従い,工程の数だけ工程タスクを生成して起動する。
・メインタスクから“中断”,“再開”を受けると,全ての工程タスクに転送する。
・工程タスクから“工程情報通知”を受けると,通知に含まれる工程情報 1) を用いて,ラインの稼働状態の判定,分析情報の更新,及び表示タスクへの表示更新通知を行う。通知元がラインの最後の工程における工程タスクである場合は,分析情報の更新の前に,ライン生産量及びライン生産能力の算出を行う。
表示 ・受けた通知に従って,表示情報を作成する。
・作成した表示情報を,タッチパネルタスクを介してタッチパネルに表示する。
タッチパネル ・表示タスクからの指示に従って,表示情報をタッチパネルに表示する。
・タッチパネルから,押されたボタンの情報を受信すると,“ボタン押下(ボタン名)”をメインタスクに通知する。
工程 ・起動されると,モデルに従い,自工程に所属する全てのセンサのドライバタスクを生成して起動する。
・1 秒ごとに,工程情報を生産ラインタスクに“工程情報通知”で通知する。次の工程が存在する場合は,工程間滞留量を算出して“工程情報通知”を通知する。
・ドライバタスク又は次の工程の工程タスクから通知を受けると,通知に応じて収集情報又は分析情報を更新する。さらに,通知に応じて次の処理を行う。
 - 通知元が,状態センサのドライバである場合,設備及び工程の稼働状態を決定する。決定した稼働状態が“設備異常”の場合は,出力タスクに“出力指示”を通知し,続いて生産ラインタスクに“工程情報通知”を通知する。
 - 通知元が投入センサのドライバで,かつ,前の工程が存在する場合,通知された投入量を,前の工程の工程タスクに“投入量通知”で通知する。
・“中断”,“再開”を受けると,起動した全てのドライバタスクに通知する。
出力 ・工程タスクから“出力指示”を受けると,出力ノードに指示を送信する。
ドライバ ・起動されると,生成時に受け取ったパラメタに従って,管理対象のセンサを初期化する。
・初期化が完了したら,次の動作を繰り返す。
 - 管理対象のセンサからセンサ値を取得する。
 - 取得したセンサ値について,c を基に,投入センサであれば投入量に変換し,産出センサであれば産出量に変換し,状態センサであれば“停止”,“動作”又は“異常”のいずれかを示す値に変換し,工程タスクに通知する。
・“中断”を受けると,工程タスクへの通知を中断する。
・“再開”を受けると,工程タスクへの通知を再開する。

注1) 工程情報とは,投入量,産出量,設備及び工程の稼働状態と,その状態に変化した時刻,次の工程との間の工程間滞留量を総称したものである。

〔本システムの適用例〕におけるS工場では,ネジ10,000個を1ロットとする生産を行っている。1ロットを生産した場合の,投入センサ,状態センサ及び産出センサが示す状態を図4に示す。図4において,1時間当たりの圧造工程の工程生産能力,1時間当たりのライン生産能力,及び工程間滞留量の最大値を答えよ。答えは小数第1位を四捨五入して,整数で求めよ。ここで,圧造工程から転造工程へのネジの移動時間は,滞留時間を除いて無視できるものとする。

図4 投入センサ,状態センサ及び産出センサが示す状態
図の説明テキスト

図4 投入センサ,状態センサ及び産出センサが示す状態
表形式のタイムチャート。上端の「時刻」の行に 8:00, 8:30, 13:00, 14:30, 15:00 の目盛があり、各時刻から縦の破線が下まで引かれている。左端は「圧造工程」と「転造工程」に分かれ、それぞれ 4 行のセンサがある。
【圧造工程】

  • 投入センサ(光センサ):レベルの波形。8:00 の破線より少し左で立ち上がり(ON)、13:00 の破線より左(圧造工程の産出センサの帯が終わる位置と同じ)で立ち下がる(OFF)。
  • 状態センサ(振動センサ):8:30 まで「停止」、8:30〜13:00「動作」、13:00 以降「停止」。
  • 状態センサ(電流センサ):8:00 まで「停止」、8:00〜14:30「動作」、14:30 以降「停止」。
  • 産出センサ(光センサ):8:30 から黒く塗られた帯(パルス出力)が始まり、13:00 の破線より左(投入センサの立ち下がりと同じ位置)で終わる。
    【転造工程】
  • 投入センサ(光センサ):8:30 から黒い帯(パルス出力)が始まり、13:00 と 14:30 の破線の間で終わる。
  • 状態センサ(振動センサ):8:30 まで「停止」、8:30〜14:30「動作」、14:30 以降「停止」。
  • 状態センサ(電流センサ):8:00 まで「停止」、8:00〜15:00「動作」、15:00 以降「停止」。
  • 産出センサ(光センサ):8:30 から黒い帯が始まり、投入センサの帯と同じ位置(13:00 と 14:30 の破線の間)で終わる。
    表の下部に以下の注記がある。
    「注記 圧造機は 1.5 秒に 1 個のブランク,転造機は 2 秒に 1 個のネジを製造できる。また,圧造工程と転造工程間にはブランクを滞留できる機構があり,その機構から1個ずつ,転造機の生産速度に合わせて転造工程へ投入される。」

メインタスクの状態遷移を図5に,メインタスクの各状態の概要を表10に示す。

図5 メインタスクの状態遷移
図の説明テキスト

図5 メインタスクの状態遷移

  • ノード: 起動待機中, 準備中, エラー待機中, 展開中, 保存中, 通常動作中, 中断中
  • 遷移:
    • 起動待機中 -> 準備中: 起動
    • 準備中 -> エラー待機中: 条件3 1)
    • エラー待機中 -> 準備中: ボタン押下 (再読込)
    • 準備中 -> 展開中: 準備完了 (条件1が偽,条件2が真)
    • 準備中 -> 保存中: 準備完了 (条件1が真)
    • 準備中 -> 通常動作中: 準備完了 (条件1, 条件2ともに偽)
    • 保存中 -> 展開中: 保存完了 (条件2が真)
    • 保存中 -> 通常動作中: 保存完了 (条件2が偽)
    • 展開中 -> 通常動作中: 展開完了
    • 通常動作中 -> 中断中: ボタン押下 (中断)
    • 中断中 -> 通常動作中: ボタン押下 (再開)
  • 注記: 注1) 条件3は“モデル又はモデルに記述されている識別IDのドライバが,フラッシュメモリにもSDカードにも存在しない場合”である。
表10 メインタスクの各状態の概要
図の説明テキスト

表10 メインタスクの各状態の概要

状態 概要
起動待機中 制御プログラムが RAM に展開された後,起動を待っている状態
準備中 モデル及びドライバを RAM に展開している状態
エラー待機中 エラーを表示し,利用者が適切な SD カードを挿入するのを待っている状態
保存中 フラッシュメモリへの書込みを行っている状態
展開中 フラッシュメモリから読出しを行っている状態
通常動作中 収集及び分析を行っている状態
中断中 収集及び分析を中断している状態

〔本システムの適用例〕のS工場に設置された可視化装置におけるタスク間通信シーケンスの例を図6に示す。

図6 タスク間通信シーケンスの例
図の説明テキスト

図6 タスク間通信シーケンスの例
ライフライン(左から):タッチパネル、メイン、工程1(太線の枠「工程1」で囲まれている)、生産ライン、出力、太線の枠「工程2」の中に破線の枠「工程2のドライバタスク」(d、e、f、振動センサ の 4 本。d〜f は空欄)と 工程2。
メッセージ(上から時間順。g〜i はメッセージ名の空欄で、ラベルの枠は対応する矢印の直上にある):

  1. f → 工程2
  2. 工程2 → 工程1(ラベル g)
  3. タッチパネル → メイン「ボタン押下(中断)」
  4. メイン → 生産ライン
  5. 生産ライン → 工程1(ラベル h)
  6. 生産ライン → 工程2(ラベル h)
  7. 工程2 → d
  8. 工程2 → e
  9. 工程2 → f
  10. 工程2 → 振動センサ
  11. タッチパネル → メイン「ボタン押下(再開)」
  12. メイン → 生産ライン
  13. 生産ライン → 工程1(ラベル i)
  14. 生産ライン → 工程2
  15. 工程2 → d
  16. 工程2 → e
  17. 工程2 → f
  18. 工程2 → 振動センサ
  19. e → 工程2
  20. f → 工程2
  21. 工程2 → 工程1(ラベル g)
  22. e → 工程2
  23. f → 工程2
  24. 工程2 → 工程1(ラベル g)
  25. d → 工程2
  26. 工程2 → 出力
  27. 工程2 → 生産ライン
    メッセージ 27 の下に、全ライフラインを横切る水平の破線「(ア)」が引かれている。
    注記1 工程1のドライバタスク,及び工程タスクが1秒ごとに通知する工程情報通知は省略している。
    注記2 タスクがメッセージを受け,対応する処理を行ってから他タスクにメッセージを通知している場合,メッセージを受けてから通知までの間に,他メッセージを受けることはない。

複数の工場で分担しているラインにおいて,E社が設置する情報共有サーバ(以下,サーバという)と,それぞれの工場にある可視化装置をインターネットを介して接続し,統合して可視化したい。そのため,可視化装置には,自工程の工程情報をサーバに送信する機能と,他工場の工程情報をサーバから受信する機能を追加する。機能追加後の本システム(以下,新システムという)の概要を図7に示す。

図7 新システムの概要
図の説明テキスト

図7 新システムの概要
工場とサーバの接続を示すシステム概要図。

  • 左側に「工場1」(中に「可視化装置1」)
  • その下に縦の三点リーダー
  • その下に「工場N」(中に「可視化装置N」)
  • 中央に楕円の「インターネット」
  • 右側に「サーバ」
    「可視化装置1」と「可視化装置N」からそれぞれ「インターネット」へ実線が伸びており、「インターネット」から「サーバ」へ実線が伸びている。

〔モデルの変更点〕

モデルの変更点を次に示す。

  • 作成日時の次に,64 バイトの“サーバへの接続情報”を追加する。サーバに接続しない場合は,“サーバへの接続情報”の先頭バイトを0にする。
  • 他工場が担当する工程は,工程名の先頭に“@”を付加する。
  • 他工場が担当する工程は,工程名の次に,その工程を担当する工場の識別子(以下,工場IDという)を追加する。工場IDは 4 バイトである。
  • 他工場が担当する工程は,投入センサのセンサ情報,産出センサのセンサ情報,設備数及び設備に関する情報を記述しない。

〔制御プログラムのタスク変更概要〕

制御プログラムのタスク変更概要を表11に示す。ここで,他工場工程タスク及びサーバ接続タスクは新規に作成するタスクである。他工場工程タスクは,他工場が担当する工程ごとに起動され,工程情報をサーバから取得して,生産ラインタスクに通知するタスクである。

表11 制御プログラムのタスク変更概要
図の説明テキスト

表11 制御プログラムのタスク変更概要

タスク名 変更概要
生産ライン ・モデルの工程名の先頭に“@”が付いている場合,他工場工程タスクを起動する。
・メインタスクから“中断”,“再開”を受けても,他工場工程タスクには転送しない。
工程 ・“j”をサーバ接続タスクにも通知する。
・“投入量通知”は,他工場工程タスクには通知しない。
他工場工程 ・起動されると,10 秒ごとに,他工場が担当している工程の工程情報を,サーバ接続タスクを介してサーバから受け取り,収集情報及び分析情報を更新する。更新したら,その工程情報を生産ラインタスクに通知する。また,k 場合,投入量を転送する。
サーバ接続 ・l でない場合,無線 LAN I/F を介して,サーバと通信する。

設問と解答・解説

設問1

本システムの仕様について,(1)〜(3)に答えよ。

(1)配点 4点

図2中の a に入れる適切な字句を答えよ。

模範解答

出力ノード

採点基準

正確性(内容)4点
  • 4点: 「出力ノード」(「出力ノードの識別ID」も可)を解答できている。
  • 2点: 出力ノードを指しているが、表1の名称になっていない(「出力ポート」など)。
  • 0点: 工程・設備・状態センサなど他の構成要素を解答している。

解説

図2「モデルの構成及び構成要素」 を確認すると、「工程に関する情報」ブロックの中に以下の情報が含まれています。

  • 工程名
  • 投入センサのセンサ情報
  • 産出センサのセンサ情報
  • [ a ] の識別ID
  • 設備に関する情報

次に、図1「本システムの概要」 及び 表1「本システムの構成要素」 を確認します。工程に直接関連づけて設置されている要素として、投入センサ、産出センサ、状態センサのほかに、「出力ノード」 が存在します。状態センサは「設備に関する情報」内に定義されているため、「工程に関する情報」に直接含まれる識別IDは 「出力ノード」 のものとなります。

高得点のポイント

  • システム構成要素のうち、工程に紐づくものが「出力ノード」であることを正確に特定できている。
(2)配点 4点

可視化装置の動作概要について,表8中の b に入れる適切な処理を70字以内で述べよ。

模範解答

フラッシュメモリ上のモデルとSDカード上のモデルの作成日時を比較し,より新しい方のモデルを読み込み,RAMに展開する。

採点基準

知識・理解度(内容)2点
  • 2点: フラッシュメモリ上とSDカード上のモデルの作成日時を比較し、新しい方を読み込んでRAMに展開することを記述できている。
  • 1点: 新しい方を読み込むことに触れているが、比較の対象(作成日時)やRAMへの展開の記述が欠けている。
  • 0点: 常にSDカード(又はフラッシュメモリ)から読み込むなど、作成日時による選択がない。
論理性(構造)2点
  • 2点: 比較、読込み、展開の順に処理として記述できている。
  • 1点: 処理の順序がやや不明確である。
  • 0点: 処理として成り立たない(知識・理解度が0の場合も0とする)。

解説

表8「モデルの読込み処理」 のフラッシュメモリとSDカードの双方にモデルがある状態(表の右下)の処理について問われています。

表8の注記には「複数のモデルが存在した場合は,作成日時が最も新しいモデルを読み込み,RAMに展開する。」と明記されています。したがって、フラッシュメモリ上のモデルとSDカード上のモデルが存在する場合、両者の作成日時を比較し、より新しい方を読み込んでRAMに展開する処理を行うことになります。

高得点のポイント

  • フラッシュメモリとSDカード上のモデルの「作成日時を比較する」ことに言及している。
  • 「より新しい方のモデル」を選択して読み込み、RAMに展開することを明記している。
(3)配点 4点

本文中の下線①の処理を行う目的を30字以内で述べよ。

模範解答

次回以降の起動をフラッシュメモリだけから行うため

採点基準

知識・理解度(内容)2点
  • 2点: 次回以降の起動をフラッシュメモリだけから行う(SDカードなしで起動できる)ようにするためであることを記述できている。
  • 1点: フラッシュメモリへの保存・バックアップに触れているが、次回起動時にSDカードが不要になる点が不明確である。
  • 0点: 記載がない、あるいは誤りである。
論理性(構造)2点
  • 2点: 目的(〜ため)として記述できている。
  • 1点: 目的の表現がやや不明確である。
  • 0点: 目的になっていない(知識・理解度が0の場合も0とする)。

解説

下線①の処理は「モデル又はドライバをSDカードから読み込んだ場合,当該モデル又は当該ドライバをフラッシュメモリに書き込む」というものです。

〔可視化装置の起動時等の動作概要〕 の(1)に「出荷時のフラッシュメモリには,... モデルは書き込まれていない。」とあり、初期状態ではSDカードからモデルを読み込む必要があります。しかし、(5)でフラッシュメモリに書き込んでおけば、次回以降の起動時には 表8「モデルの読込み処理」 に従ってフラッシュメモリから直接モデルを読み込むことが可能になります。これにより、起動のたびにSDカードを挿入しておく必要がなくなります。

高得点のポイント

  • フラッシュメモリに保存することで、次回以降はSDカードが不要になる(フラッシュメモリのみから起動できる)という目的を正しく記述している。
(4)配点 4点

模範解答

2222

解説

表6「可視化装置が算出するロットごとの生産指標」 によると、工程生産能力は以下の式で求められます。
工程生産能力=工程生産量÷工程の稼働状態が“工程動作”であった時間工程生産能力 = 工程生産量 \div 工程の稼働状態が“工程動作”であった時間

まず、図4のタイムチャート を用いて圧造工程の「工程動作」であった時間を求めます。

  • 表4 より、設備の稼働状態が“設備動作”となるのは「全ての状態センサから得られる状態が“動作”」のときです。
  • 圧造工程の状態センサは「振動センサ」と「電流センサ」です。
    • 振動センサが動作している時間: 8:30 〜 13:00 (4.5時間)
    • 電流センサが動作している時間: 8:00 〜 14:30 (6.5時間)
  • 両方が動作している時間帯は 8:30 〜 13:00 (4.5時間) です。圧造機はこの1台のみなので、これが圧造工程の「工程動作」時間となります。

次に、工程生産量を求めます。

  • 問題文より、1ロットは 10,000個 なので、工程生産量は 10,000 です。

したがって、1時間当たりの圧造工程の工程生産能力は以下のようになります。
10000÷4.5=2222.22...10000 \div 4.5 = 2222.22...

小数第1位を四捨五入して、2222 となります。

(5)配点 4点

模範解答

1667

解説

表6 によると、ライン生産能力は以下の式で求められます。
ライン生産能力=ライン生産量÷ラインの稼働状態が“ライン動作”であった時間ライン生産能力 = ライン生産量 \div ラインの稼働状態が“ライン動作”であった時間

まず「ライン動作」であった時間を求めます。

  • 表5 より、ラインの稼働状態が“ライン動作”となるのは「一つ以上の工程が“工程動作”であり、かつ、一つも“工程異常”がない」ときです。
  • 圧造工程の“工程動作”時間は 8:30 〜 13:00 です。
  • 転造工程の“工程動作”時間を同様に求めます。
    • 振動センサが動作している時間: 8:30 〜 14:30
    • 電流センサが動作している時間: 8:00 〜 15:00
    • したがって、両方が“動作”である転造工程の“工程動作”時間は 8:30 〜 14:30 です。
  • ライン内に異常を示す工程はなく、圧造工程または転造工程のいずれかが動作している時間帯は 8:30 〜 14:30 (6.0時間) となります。

次にライン生産量を求めます。

  • 表6 より、ライン生産量は「ラインの最後の工程における産出量」です。転造工程からの産出量も1ロット分であり、10,000 となります。

したがって、1時間当たりのライン生産能力は以下のようになります。
10000÷6.0=1666.66...10000 \div 6.0 = 1666.66...

小数第1位を四捨五入して、1667 となります。

(6)配点 4点

模範解答

2500

解説

表6 によると、工程間滞留量は以下の式で求められます。
工程間滞留量=工程生産量−次の工程への投入量工程間滞留量 = 工程生産量 - 次の工程への投入量

圧造工程の産出速度と転造工程の投入速度の違いから、滞留量が最大になるタイミングとその量を求めます。

  • 注記より、圧造機は 1.5秒に1個、転造機は 2秒に1個を生産・処理します。
    • 圧造機の産出速度 = 3600÷1.5=24003600 \div 1.5 = 2400 個/時間
    • 転造機の投入速度 = 3600÷2=18003600 \div 2 = 1800 個/時間
  • 圧造工程からの産出と転造工程への投入はどちらも 8:30 に開始されます。
  • 圧造機の方が処理速度が速いため、圧造機の産出が続いている間は滞留量が増加し続けます。滞留量が最大になるのは、圧造機の産出がすべて完了した時点です。

圧造機が1ロット (10,000個) を産出完了するのにかかる時間は、
10000÷2400≈4.16710000 \div 2400 \approx 4.167 時間 (4時間10分) です。
つまり、12:40 に産出が完了します。(図4で産出センサの帯が13:00より少し前で終わっていることとも一致します)

この 12:40 の時点において、

  • 圧造工程の工程生産量(累積) = 10,000個
  • 転造工程へ投入された量(累積) = 1800個/時間×25060時間=1800×256=75001800 \text{個/時間} \times \frac{250}{60} \text{時間} = 1800 \times \frac{25}{6} = 7500 個
    (※4時間10分 = 250分)

したがって、工程間滞留量の最大値は以下のようになります。
10000−7500=250010000 - 7500 = 2500

設問1(1)は,正答率が平均的であったが,“工程”という誤った解答が散見された。工程ごとに存在し,かつIDが必要なものは何かを考え,正答を導き出してほしかった。 設問1(2)(b)は,正答率がやや低かった。フラッシュメモリの更新目的について,記述が不十分な解答が散見された。起動時にSDカードを不要にするための処理であることを明確に記述してほしい。

設問2

制御プログラムについて,(1)〜(3)に答えよ。

(1)配点 4点

ドライバタスクについて,ドライバタスクの生成時にパラメタとして受け取る必要がある情報を,二つ答えよ。

模範解答

センサ情報

通知先の工程タスクのメールボックス

採点基準

知識・理解度(内容)4点
  • 4点: 「センサ情報」又は「通知先の工程タスクのメールボックス」のどちらか一方を解答できている(順序は問わない)。
  • 2点: どちらかの一部だけを解答している(センサの識別ID・ドライバの識別ID・個別データのいずれかだけ、メールボックスに触れず「通知先の工程タスク」だけなど)。
  • 0点: どちらにも当たらない。

解説

表9「制御プログラムの主なタスクの処理概要」 の「ドライバ」タスクの欄を確認します。

初期化処理について、「起動されると,生成時に受け取ったパラメタに従って,管理対象のセンサを初期化する。」と記載されています。センサを初期化するために必要なパラメタは、図2「センサ情報の詳細」 に定義されている情報(しきい値などのドライバ用の個別データ)です。したがって、「センサ情報」 またはその一部である個別データが必要です。

また、ドライバタスクはセンサから取得した値を変換した後、「工程タスクに通知する」役割を持ちます。タスク間のメッセージ通信(図3参照)を行うためには、通知先の情報である 「工程タスクのメールボックス」 等の通信先パラメタを生成時に受け取る必要があります。
なお、二つを解答する順序は問われません。

高得点のポイント

  • センサを初期化するための「センサ情報(個別データ)」が解答に含まれている。
(2)配点 4点

ドライバタスクについて,ドライバタスクの生成時にパラメタとして受け取る必要がある情報を,二つ答えよ。

模範解答

センサ情報

通知先の工程タスクのメールボックス

採点基準

知識・理解度(内容)4点
  • 4点: 1つ目の解答と異なるもう一方(センサ情報または通知先の工程タスクのメールボックス)を解答できている。
  • 2点: 1つ目の解答と異なるもう一方の一部だけ(センサの識別ID・ドライバの識別ID・個別データのいずれかだけ、メールボックスに触れず「通知先の工程タスク」だけなど)を解答している。
  • 0点: 1つ目の解答と同じ内容である、又はどちらにも当たらない。

解説

表9「制御プログラムの主なタスクの処理概要」 の「ドライバ」タスクの欄を確認します。

初期化処理について、「起動されると,生成時に受け取ったパラメタに従って,管理対象のセンサを初期化する。」と記載されています。センサを初期化するために必要なパラメタは、図2「センサ情報の詳細」 に定義されている情報(しきい値などのドライバ用の個別データ)です。したがって、「センサ情報」 またはその一部である個別データが必要です。

また、ドライバタスクはセンサから取得した値を変換した後、「工程タスクに通知する」役割を持ちます。タスク間のメッセージ通信(図3参照)を行うためには、通知先の情報である 「工程タスクのメールボックス」 等の通信先パラメタを生成時に受け取る必要があります。

高得点のポイント

  • 変換した値を工程タスクに通知するための「通知先(工程タスクのメールボックス)」が解答に含まれている。
(3)配点 4点

表9中の c に入れる適切な字句を15字以内で答えよ。

模範解答

センサ情報内の個別データ

ドライバ用の個別データ

採点基準

正確性(内容)4点
  • 4点: 「センサ情報内の個別データ」または「ドライバ用の個別データ」のどちらか(同じものを指す「個別データ」の言い換えも可)を解答できている。
  • 2点: 「しきい値」だけ、又は「センサ情報」だけなど、個別データに当たるが不十分な解答である。
  • 0点: 誤りである。

解説

表9の「ドライバ」タスクの処理概要には、「取得したセンサ値について,[ c ] を基に,投入センサであれば投入量に変換し...状態センサであれば“停止”,“動作”又は“異常”のいずれかを示す値に変換し...」とあります。

図2「モデルの構成及び構成要素」 の「センサ情報の詳細」ブロックを見ると、「設備の稼働状態を判別するしきい値など,ドライバ用の個別データ」という要素が存在します。ドライバタスクは、センサ値を状態や投入量に変換・判別するために、このしきい値などの個別データを用います。

高得点のポイント

  • ドライバがセンサ値を変換・判別するために必要なデータが「個別データ」であることを、図2のデータ構造に基づいて特定できている。
(4)配点 4点

図5中の条件1について,適切な内容を30字以内で述べよ。

模範解答

モデル又はドライバをSDカードから読み込んだ場合

採点基準

知識・理解度(内容)2点
  • 2点: モデル又はドライバをSDカードから読み込んだ場合であることを記述できている(モデル・ドライバの両方に触れている)。
  • 1点: モデルかドライバの一方だけに触れている。
  • 0点: 誤りである(フラッシュメモリから読み込んだ場合など)。
論理性(構造)2点
  • 2点: 条件(〜場合)として記述できている。
  • 1点: 条件の表現がやや不明確である。
  • 0点: 条件になっていない(知識・理解度が0の場合も0とする)。

解説

図5「メインタスクの状態遷移」 において、「準備中」から「保存中」へ遷移するためのトリガーは「準備完了 (条件1が真)」です。また、表10より「保存中」は「フラッシュメモリへの書込みを行っている状態」です。

〔可視化装置の起動時等の動作概要〕 の(5)の①を確認すると、「モデル又はドライバをSDカードから読み込んだ場合,当該モデル又は当該ドライバをフラッシュメモリに書き込む。」と記載されています。

したがって、フラッシュメモリへの保存処理(保存中状態)へ移行する「条件1」は、モデルやドライバをSDカードから読み込んだ場合となります。

高得点のポイント

  • フラッシュメモリへの保存(書き込み)が発生する条件が、「モデル又はドライバをSDカードから読み込んだ場合」であることを正確に抜き出して記述している。
(5)配点 4点

図5中の条件2について,適切な内容を35字以内で述べよ。

模範解答

フラッシュメモリに収集情報及び分析情報が保存されている場合

採点基準

知識・理解度(内容)2点
  • 2点: フラッシュメモリに収集情報及び分析情報が保存されている場合であることを記述できている。
  • 1点: 収集情報・分析情報の一方だけである、又は保存場所(フラッシュメモリ)が不明確である。
  • 0点: 誤りである。
論理性(構造)2点
  • 2点: 条件(〜場合)として記述できている。
  • 1点: 条件の表現がやや不明確である。
  • 0点: 条件になっていない(知識・理解度が0の場合も0とする)。

解説

図5「メインタスクの状態遷移」 において、「準備中」から「展開中」への遷移条件は「準備完了 (条件1が偽,条件2が真)」です。また、表10より「展開中」は「フラッシュメモリから読出しを行っている状態」です。

〔可視化装置の起動時等の動作概要〕 の(5)を確認すると、モデルやドライバの処理に続く動作として「フラッシュメモリに収集情報及び分析情報が保存されている場合は,RAMに展開する。」と記載されています。

したがって、フラッシュメモリからデータを読み出して展開処理(展開中状態)へ移行する「条件2」は、収集情報および分析情報がフラッシュメモリに保存されている場合となります。

高得点のポイント

  • フラッシュメモリからの読み出し(展開)が発生する条件が、「フラッシュメモリに収集情報及び分析情報が保存されている場合」であることを正確に抜き出して記述している。
(6)配点 2点

図6中の d について,どのセンサを管理するドライバタスクか。入れる適切な字句を,投入センサ,電流センサ,産出センサのうち,いずれかで答えよ。

ア. 投入センサ
イ. 電流センサ
ウ. 産出センサ

模範解答

選択肢イ: 電流センサ

解説

図6「タスク間通信シーケンスの例」 における工程2のドライバタスク d, e, f を特定します。
工程2(転造工程)には、投入センサ、産出センサ、状態センサとして振動センサと電流センサの4つのセンサがあります(表3より)。図6にはすでに「振動センサ」が明記されているため、d, e, f は投入センサ、産出センサ、電流センサのいずれかです。

シーケンス図の下部、メッセージ (25) で d から工程2へ通知があり、その直後のメッセージ (26) で工程2から出力タスクへ「出力指示」が送られています。
表9「工程」 タスクの処理を見ると、「通知元が,状態センサのドライバである場合,設備及び工程の稼働状態を決定する。決定した稼働状態が“設備異常”の場合は,出力タスクに“出力指示”を通知し...」とあります。
つまり、「出力指示」の直前に通知を送ってきた d は状態センサでなければなりません。状態センサのうち振動センサは別にあるため、d はもう一つの状態センサである 「電流センサ」 となります。

各選択肢の解説

  • ア (投入センサ): f が該当します(解説は q2_sq2_8 参照)。
  • ウ (産出センサ): e が該当します(解説は q2_sq2_7 参照)。
(7)配点 2点

図6中の e について,どのセンサを管理するドライバタスクか。入れる適切な字句を,投入センサ,電流センサ,産出センサのうち,いずれかで答えよ。

ア. 投入センサ
イ. 電流センサ
ウ. 産出センサ

模範解答

選択肢ウ: 産出センサ

解説

図6「タスク間通信シーケンスの例」 における工程2のドライバタスク e を特定します。
d は電流センサであることが分かりました(q2_sq2_6の解説参照)。残る e と f は投入センサまたは産出センサです。

シーケンス図において、メッセージ (20) と (23) で f から工程2へ通知があった直後、それぞれメッセージ (21) と (24) で工程2から工程1へ通知 (g) を行っています。
表9「工程」 タスクの処理を見ると、「通知元が投入センサのドライバで,かつ,前の工程が存在する場合,通知された投入量を,前の工程の工程タスクに“投入量通知”で通知する。」とあります。
これより、前の工程(工程1)へ通知を送るトリガーとなっている f が投入センサであると分かります。

消去法により、残った e は 「産出センサ」 となります。

各選択肢の解説

  • ア (投入センサ): f が該当します。
  • イ (電流センサ): d が該当します。
(8)配点 2点

図6中の f について,どのセンサを管理するドライバタスクか。入れる適切な字句を,投入センサ,電流センサ,産出センサのうち,いずれかで答えよ。

ア. 投入センサ
イ. 電流センサ
ウ. 産出センサ

模範解答

選択肢ア: 投入センサ

解説

図6「タスク間通信シーケンスの例」 における工程2のドライバタスク f を特定します。

シーケンス図を見ると、メッセージ (20) や (23) で f から工程2へ通知が送られ、その直後にメッセージ (21) や (24) で工程2から工程1へ通知 (g) が送られています。
表9「工程」 タスクの処理概要には、「通知元が投入センサのドライバで,かつ,前の工程が存在する場合,通知された投入量を,前の工程の工程タスクに“投入量通知”で通知する。」と明記されています。
したがって、自工程からの通知を契機として前の工程にメッセージを中継している f は 「投入センサ」 となります。

各選択肢の解説

  • イ (電流センサ): d が該当します。
  • ウ (産出センサ): e が該当します。
(9)配点 4点

図6中の g に入れる適切なメッセージ名を答えよ。

模範解答

投入量通知

採点基準

正確性(内容)4点
  • 4点: 「投入量通知」(“ ”の有無は問わない)を解答できている。
  • 2点: 「投入量」など投入量の通知を指しているが、メッセージ名として不完全である。
  • 0点: 誤りである。

解説

図6「タスク間通信シーケンスの例」 において、メッセージ g は工程2から工程1へ送られています。

工程2において、ドライバタスク f(投入センサ)から値を受け取った直後に送信されています。
表9「工程」 タスクの処理概要を見ると、「通知元が投入センサのドライバで,かつ,前の工程が存在する場合,通知された投入量を,前の工程の工程タスクに “投入量通知” で通知する。」とあります。

したがって、後続の工程(工程2)から前の工程(工程1)へ送られるメッセージ名は「投入量通知」となります。

高得点のポイント

  • 投入センサからの通知を契機として前の工程に送られるメッセージが「投入量通知」であることを正確に抜き出している。
(10)配点 4点

図6中の h に入れる適切なメッセージ名を答えよ。

模範解答

中断

採点基準

正確性(内容)4点
  • 4点: 「中断」(“ ”の有無は問わない)を解答できている。
  • 2点: 中断を指しているが、別の形(「ボタン押下(中断)」「中断指示」など)で解答している。
  • 0点: 再開など誤った解答である。

解説

図6「タスク間通信シーケンスの例」 を見ると、メッセージ h は、タッチパネルからメインタスクへ「ボタン押下(中断)」が通知され、メインタスクが生産ラインタスクへメッセージを送った後、生産ラインタスクから各工程タスク(工程1、工程2)へ送られているメッセージです。

表9「生産ライン」 タスクの処理概要には、「メインタスクから“中断”,“再開”を受けると,全ての工程タスクに転送する。」とあります。
このタイミングでは「中断」ボタンが押下されているため、生産ラインタスクが工程タスクに転送するメッセージ名は 「中断」 となります。

高得点のポイント

  • メインタスクからの「中断」指示が生産ラインタスクを経由して工程タスクに転送される際のメッセージ名が「中断」であることを正確に抜き出している。
(11)配点 4点

図6中の i に入れる適切なメッセージ名を答えよ。

模範解答

再開

採点基準

正確性(内容)4点
  • 4点: 「再開」(“ ”の有無は問わない)を解答できている。
  • 2点: 再開を指しているが、別の形(「ボタン押下(再開)」「再開指示」など)で解答している。
  • 0点: 中断など誤った解答である。

解説

図6「タスク間通信シーケンスの例」 を見ると、メッセージ i は、タッチパネルからメインタスクへ「ボタン押下(再開)」が通知され、メインタスクが生産ラインタスクへメッセージを送った後、生産ラインタスクから各工程タスク(工程1、工程2)へ送られているメッセージです。

表9「生産ライン」 タスクの処理概要にある通り、「メインタスクから“中断”,“再開”を受けると,全ての工程タスクに転送する。」という動作に従っています。
このタイミングでは「再開」ボタンが押下されているため、転送されるメッセージ名は 「再開」 となります。

高得点のポイント

  • メインタスクからの「再開」指示が生産ラインタスクを経由して工程タスクに転送される際のメッセージ名が「再開」であることを正確に抜き出している。
(12)配点 2点

図6中の工程1,工程2のうち,どちらが圧造工程か。工程1又は工程2のいずれかで答えよ。

ア. 工程1
イ. 工程2

模範解答

選択肢ア: 工程1

解説

図1「本システムの概要」において、工程はラインの上流から下流へと配置されています。表2によると、S工場の生産ラインでは圧造工程の次に転造工程が行われるため、圧造工程が上流(前の工程)、転造工程が下流(次の工程)となります。

図6「タスク間通信シーケンスの例」 を見ると、工程2から工程1に対してメッセージ g(投入量通知)が送られています。
表9「工程」 タスクの処理概要において、「前の工程が存在する場合,通知された投入量を,前の工程の工程タスクに“投入量通知”で通知する。」とあります。
工程2が「前の工程」である工程1に対して通知を送っていることから、工程1が上流の圧造工程、工程2が下流の転造工程であることがわかります。
したがって、圧造工程は 工程1 です。

各選択肢の解説

  • イ (工程2): 工程2は工程1へ通知を送っている主体であり、下流にあたる転造工程です。
(13)配点 4点

その理由を25字以内で述べよ。

模範解答

工程2から,工程1に通知を行っているから

採点基準

知識・理解度(内容)2点
  • 2点: 工程2から工程1へ通知を行っている(後の工程から前の工程へ通知する)ことを記述できている。
  • 1点: 通知(投入量通知)に触れているが、通知の向きが不明確である。
  • 0点: 通知の向きが逆である、又は無関係である。
論理性(構造)2点
  • 2点: 理由(〜から)として記述できている。
  • 1点: 理由の表現がやや不明確である。
  • 0点: 理由になっていない(知識・理解度が0の場合も0とする)。

解説

工程1が圧造工程である理由は、タスク間のメッセージの向きから判断できます。

表9「工程」 タスクの処理概要に、「通知元が投入センサのドライバで,かつ,前の工程が存在する場合,通知された投入量を,前の工程の工程タスクに“投入量通知”で通知する。」と規定されています。
図6のシーケンス では、工程2から工程1に対してメッセージ(投入量通知)が送信されています。これは工程1が「前の工程(=ラインの上流にある工程)」であることを意味します。
表2の順番から、上流の工程が圧造工程であるため、工程1が圧造工程となります。

高得点のポイント

  • メッセージ(投入量通知)が後続工程から先行工程へ送られる仕様を理解している。
  • 図6において「工程2から工程1へ通知が送られている」という事実を端的に記述できている。
(14)配点 4点

図6中の破線(ア)のタイミングにおける,工程2の稼働状態を,表5中の工程・ラインの稼働状態で答えよ。ここで,工程1の稼働状態は“工程動作”であるものとする。

模範解答

工程異常

採点基準

知識・理解度(内容)2点
  • 2点: 「工程異常」を解答できている。
  • 1点: 「異常」とだけ答え、表5の名称になっていない。
  • 0点: 工程動作、工程停止、設備異常など他の状態を解答している。
論理性(構造)2点
  • 2点: 「工程異常」を表5の稼働状態名として簡潔に答えている。
  • 1点: 名称に余分な説明が付加されている。
  • 0点: 「工程異常」を答えていない。

解説

破線(ア)の直前のシーケンスを確認します。
メッセージ (25) で d(状態センサである電流センサ)から工程2へ通知が送られ、その直後のメッセージ (26) で工程2から出力タスクへ「出力指示」が送られています。

表9「工程」 タスクの処理概要によると、「決定した稼働状態が“設備異常”の場合は,出力タスクに“出力指示”を通知し...」とあります。したがって、この時点で工程2内にある設備(転造機1台)の稼働状態が「設備異常」であると判定されています。

次に 表5「工程及びラインの稼働状態を決定するための条件」 を確認します。工程の稼働状態について、「工程内の一つ以上の設備が“設備異常”」である場合、その工程の状態は “工程異常” と決定されます。
したがって、工程2の稼働状態は「工程異常」となります。

高得点のポイント

  • 出力指示が出ていることから、設備の稼働状態が「設備異常」になっていることを正しく特定できている。
  • 表5の条件に当てはめ、一つでも設備異常がある工程は「工程異常」となることを導出できている。
(15)配点 4点

図6中の破線(ア)のタイミングにおける,ラインの稼働状態を,表5中の工程・ラインの稼働状態で答えよ。ここで,工程1の稼働状態は“工程動作”であるものとする。

模範解答

ライン異常

採点基準

知識・理解度(内容)2点
  • 2点: 「ライン異常」を解答できている。
  • 1点: 「異常」とだけ答え、表5の名称になっていない。
  • 0点: ライン動作、ライン停止、工程異常など他の状態を解答している。
論理性(構造)2点
  • 2点: 「ライン異常」を表5の稼働状態名として簡潔に答えている。
  • 1点: 名称に余分な説明が付加されている。
  • 0点: 「ライン異常」を答えていない。

解説

破線(ア)のタイミングにおけるラインの稼働状態を求めます。

設問の条件として、工程1(圧造工程)の稼働状態は“工程動作”であると与えられています。
また、q2_sq2_14の解説の通り、工程2(転造工程)の稼働状態は“工程異常”となっています。

表5「工程及びラインの稼働状態を決定するための条件」 において、ラインの稼働状態を確認します。
「ライン内の一つ以上の工程が“工程異常”」である場合、決定されるラインの稼働状態は “ライン異常” となります。
工程2が“工程異常”であるため、この条件に合致し、ライン全体の稼働状態は“ライン異常”となります。

高得点のポイント

  • 工程2が「工程異常」であることを前提として、表5のラインの稼働状態決定条件を正しく適用できている。

設問2(1)(a)は,正答率が低かった。必要な情報の一部だけを答えている解答が散見された。動的に生成されるタスクが動作するのに必要な情報をよく理解して解答してほしい。

設問3

本システムの機能追加について,(1),(2)に答えよ。

(1)配点 4点

〔本システムの適用例〕におけるネジの生産ラインについて,S工場が圧造工程及び転造工程を,T工場が熱処理工程を,U工場が表面処理工程をそれぞれ担当する。各工場は,既に導入されている本システムを,新システムに更新する。

S工場の可視化装置におけるモデルのバイト数は,新システムに更新すると,何バイト増加又は減少するか。増加を正,減少を負として,正又は負の整数で答えよ。

模範解答

144

解説

新システム導入に伴う、S工場のモデルデータの増減バイト数を計算します。

元々のS工場のモデルは、自工場が担当する2つの工程(圧造工程、転造工程)の情報を保持していました。新システムでは可視化装置に「他工場の工程情報をサーバから受信する機能」を追加するため、モデルに他工場が担当する熱処理工程と表面処理工程の情報が追加されます。

〔モデルの変更点〕 を基に増減を計算します。

  1. 共通の追加分:
    • 作成日時の次に「サーバへの接続情報」として 64バイト を追加。
  2. 他工場が担当する工程(熱処理工程・表面処理工程)の追加分:
    • 追加される工程数は 2工程 です。
    • 他工場の工程では、投入・産出センサ情報(各264)、設備数(2)、設備情報が記述されません。
    • 記述される構成要素は、図2の「工程に関する情報」から削減対象を除いたものです。
      • 工程名: 32バイト (先頭に"@"が付加されるがバイト数変更の言及なし)
      • 工場ID: 4バイト (新規追加)
      • 出力ノードの識別ID: 4バイト (削減リストに含まれていない)
    • したがって、1つの他工場工程あたりのバイト数は 32+4+4=4032 + 4 + 4 = 40 バイトです。
    • 2工程分で 40×2=8040 \times 2 = 80 バイトとなります。

これらを合計すると、64+80=14464 + 80 = 144 バイト増加します。
よって答えは 144 となります。

(2)配点 4点

表6で示す生産指標のうち,S工場とT工場の可視化装置で稼働する工程タスクでは算出するが,U工場の可視化装置で稼働する工程タスクでは算出しない生産指標が一つある。表6中の生産指標で答えよ。

模範解答

工程間滞留量

採点基準

知識・理解度(内容)4点
  • 4点: 「工程間滞留量」を解答できている。
  • 2点: 「滞留量」など、表6の名称として不完全である。
  • 0点: 他の生産指標を解答している、あるいは誤りである。

解説

表6「可視化装置が算出するロットごとの生産指標」 に列挙されている指標について、各工場の工程タスクで算出できるかを確認します。

表6の中で、「工程間滞留量」は「工程生産量 − 次の工程への投入量」という式で算出されます。
U工場は「表面処理工程」を担当しており、表2の工程一覧を見ると表面処理工程はラインの「最後の工程」です。
最後の工程であるため「次の工程」が存在せず、その結果として「次の工程への投入量」を受け取ることができません。

したがって、U工場の工程タスクでは「工程間滞留量」を算出することができません。

高得点のポイント

  • 表面処理工程がラインの最後の工程であり「次の工程が存在しない」という関係性から、工程間滞留量が計算不可能であることを導き出せている。
(3)配点 4点

ライン及び全ての工程について,表6中の生産指標を各工場のタッチパネルに表示している。S工場が稼働し,T工場が休業していると,S工場のタッチパネルでは,転造工程の工程間滞留量はどのように表示されるか。15字以内で答えよ。

模範解答

数値が減少しない

数値が増え続ける

工程生産量と同じとなる

採点基準

知識・理解度(内容)2点
  • 2点: 3つの別解(数値が減少しない、数値が増え続ける、工程生産量と同じとなる)のいずれかを解答できている。
  • 1点: 「正しく表示されない」「異常な値になる」など、値の変化が特定されていない。
  • 0点: 0になる、減少するなど誤った解答である。
論理性(構造)2点
  • 2点: 表示のされ方として簡潔に記述できている。
  • 1点: 表示のされ方としての表現がやや不明確である。
  • 0点: 表示のされ方になっていない(知識・理解度が0の場合も0とする)。

解説

転造工程の工程間滞留量の算出式は、表6 より「工程生産量 − 次の工程への投入量」です。

S工場の転造工程の「次の工程」は、T工場が担当する熱処理工程です。
問題の条件で「S工場が稼働し,T工場が休業している」とされています。
T工場が休業しているため、熱処理工程への投入が行われず(投入センサが反応せず)、サーバを経由して送られてくる「次の工程への投入量」はゼロのまま増加しません。

一方で、S工場の転造工程は稼働し産出し続けているため、「工程生産量」は時間とともに増加し続けます。
引かれる数(次の工程への投入量)が変わらず、引く元の数(工程生産量)が増えるため、結果として工程間滞留量は「数値が減少しない」、「数値が増え続ける」または「工程生産量と同じとなる」状態として表示されます。

高得点のポイント

  • T工場(次の工程)が休業しているため投入量が増加しないことを理解している。
  • S工場が稼働しているため工程生産量のみが増加し、結果として滞留量が増え続けるという計算結果を論理的に表現できている。
(4)配点 4点

制御プログラムのタスク変更について,表11中の j に入れる適切なメッセージ名を答えよ。

模範解答

工程情報通知

採点基準

正確性(内容)4点
  • 4点: 「工程情報通知」(“ ”の有無は問わない)を解答できている。
  • 2点: 「工程情報」など、メッセージ名として不完全である。
  • 0点: 投入量通知など誤った解答である。

解説

表11「制御プログラムのタスク変更概要」 において、工程タスクが新たにサーバ接続タスクに対して通知するようになった内容 j が問われています。

新システムでは、各可視化装置は自工程の情報をサーバに集約させる必要があります。
表9「制御プログラムの主なタスクの処理概要」 において、工程タスクは従来「1秒ごとに,工程情報を生産ラインタスクに“工程情報通知”で通知する」という処理を行っていました。
この生産ライン全体の稼働状況や表示更新に必要な情報群(工程情報通知)をサーバにも共有することで、他の工場が情報を取得できるようになります。

したがって、工程タスクがサーバ接続タスクに対して送信する通知も「工程情報通知」となります。

高得点のポイント

  • 工程タスクが定期的に生成・通知している情報が「工程情報通知」であることを既存仕様から正しく抽出できている。
(5)配点 4点

表11中の k に入れる適切な字句を25字以内で述べよ。

模範解答

前の工程があり,前の工程を自工場が担当する

採点基準

知識・理解度(内容)2点
  • 2点: 前の工程が存在し、かつ、前の工程を自工場が担当するという両方の条件を記述できている。
  • 1点: 一方の条件(前の工程がある/自工場が担当する)だけ記述している。
  • 0点: 誤りである。
論理性(構造)2点
  • 2点: 条件として表11の文につながる形で記述できている。
  • 1点: 条件の表現がやや不明確である。
  • 0点: 条件になっていない(知識・理解度が0の場合も0とする)。

解説

表11「制御プログラムのタスク変更概要」 における他工場工程タスクの処理「また,[ k ] 場合,投入量を転送する。」の条件を考えます。

表9「工程」 タスクの既存の処理概要を確認すると、「通知元が投入センサのドライバで,かつ,前の工程が存在する場合,通知された投入量を,前の工程の工程タスクに“投入量通知”で通知する」とあります。この仕様の目的は、前の工程が「次の工程への投入量」を使って「工程間滞留量」を計算できるようにすることです。

他工場工程タスクは、サーバから取得した他工場の工程情報を扱います。もしその「他工場が担当している工程」の直前の工程を「自工場」が担当している場合、自工場の工程タスクは工程間滞留量を計算するためにその投入量データを必要とします。
したがって、投入量を自工場の生産ラインタスク(または工程タスク)へ転送しなければならない条件は、「前の工程が存在し、かつ、その前の工程を自工場が担当している場合」となります。

高得点のポイント

  • 投入量通知の目的が「前の工程での滞留量計算」であることを理解している。
  • 「前の工程が存在し、それが自工場の担当である」という条件を過不足なく記述できている。
(6)配点 4点

表11中の l に入れる適切な字句を25字以内で述べよ。

模範解答

“サーバへの接続情報”の先頭バイトが0

採点基準

知識・理解度(内容)2点
  • 2点: サーバへの接続情報の先頭バイトが0であることを記述できている。
  • 1点: 「サーバに接続しない設定」など、先頭バイトが0であることに触れていない。
  • 0点: 誤りである。
論理性(構造)2点
  • 2点: 表11の「〜でない場合」につながる条件として記述できている。
  • 1点: 条件の表現がやや不明確である。
  • 0点: 条件になっていない(知識・理解度が0の場合も0とする)。

解説

表11「制御プログラムのタスク変更概要」 におけるサーバ接続タスクの処理条件 l を考えます。
「[ l ] でない場合,無線 LAN I/F を介して,サーバと通信する。」とあり、サーバと通信を行わない条件を記述する必要があります。

〔モデルの変更点〕 のリストを確認すると、「サーバに接続しない場合は,“サーバへの接続情報”の先頭バイトを0にする。」と明記されています。
したがって、サーバ接続タスクがサーバとの通信処理をスキップする条件は、モデルデータ内の「“サーバへの接続情報”の先頭バイトが0」である状態となります。

高得点のポイント

  • モデル変更点の定義に基づき、サーバ接続が無効化されている判定条件を「“サーバへの接続情報”の先頭バイトが0」と正確に記述できている。

設問3(1)(a)は,正答率が低かった。他工場が担当する工程の情報を加えていない解答や,加え方を誤っていると思われる解答が散見された。設問で与えられた条件をよく読んで解答してほしい。

Spineチーム