このブログはもともとcimetrix.comに掲載されていました。
GEM標準
GEMは業界標準であり、監視および制御を目的としてプロセス機器と工場ホストソフトウェア間で通信するための標準的な方法を定義しています。GEM機器を接続することで、工場は即座に運用上のメリットを実感できます。工場ホストは複数の方法でデータを収集できます。以前のブログ記事では、機器が実行する状態遷移に基づいてデータがホストにプッシュされる収集イベントレポートを使用したデータ収集について説明しました。イベントレポートに加えて、工場ホストは現在のデータ値を機器からポーリングする必要性がしばしばあります。 データ値はホストが直接要求することも、トレースレポート内で周期的にサンプリングすることも可能です。これをデータポーリングと呼び、本日の議論の主題となります。
データの種類
GEMインターフェースには3種類のデータがあります:
- データ変数(DV) – 機器イベント発生時に収集可能なデータ項目。このデータはイベントのコンテキスト内でのみ有効性が保証される。 例えば、GEMインターフェースはPPChanged(レシピ変更時にトリガーされる)というイベントを提供する可能性があります。また、changed recipeというデータ変数も提供する可能性があります。このDVの値は、PPChangedイベントのコンテキスト内でのみ有効です。異なるタイミングで値をポーリングすると、無効または予期しないデータが得られる可能性があります。
- ステータス変数(SV) – 機器に関する情報を含むデータ項目。このデータは常に有効であることが保証される。例えば、機器のプロセスモジュールに温度センサーが搭載されている場合、GEMインターフェースはModuleTemperatureステータス変数を提供する可能性がある。ホストはいつでもこのSVの値を要求でき、その値が正確であることを期待できる。
- 機器定数(EC) – 機器設定を含むデータ項目。機器定数は機器の動作を決定します。例えば、GEMインターフェースにはMaxSimultaneousTracesという機器定数が存在し、ホストから同時に要求可能なトレースの最大数を指定します。機器定数の値は常に有効かつ最新の状態が保証されます。
データプロパティ
上記の3つのデータタイプはそれぞれ、データを定義するのに役立つ類似の特性を有しています。機器サプライヤーは、工場ホストがデータとやり取りできるように、これらの特性をGEMマニュアルで提供する必要があります。重要なデータ特性の一部は以下の通りです:
- ID – GEMインターフェース内で一意である必要がある数値ID。これらのIDはデータタイプごとにグループ化され、SVID(ステータス変数ID)、DVID(データ変数ID)、ECID(収集イベントID)として参照される。
- 名前 – データ項目の人間が読み取れる名前
- フォーマット – 項目のデータ型。
- データ形式は単純なもの(数値、ASCII、ブール値)と複雑なもの(配列、リスト、構造体)がある。例えば数値型にはI1、I2、I4、I8(異なるバイト長の符号付き整数型)、U1、U2、U4、U8(符号なし整数型)、F4またはF8(浮動小数点型)などがある。
- リスト型と配列型は、データ項目内に複数の値を含みます。例えば、画像データはバイト配列としてフォーマットされます。
- 構造体タイプは特定のデータ型を含む。例えば、変数はキャリア情報とスロットのリスト、およびそれらのウェーハ配置状態を含むスロットマップを表す場合がある。
- 値 – データ項目の実際の値。データ値は正確で効率的な自己記述型バイナリ形式で保存されるため、ホストはデータを解釈する方法を知っている。このデータ形式により、より多くのデータをより効率的に収集することが可能となる。
コレクションイベント(CE)とアラームにもIDと名前が割り当てられます。これらの項目については他のブログ記事で解説していますが、本記事では特定のプロパティについて理解することが重要です。これらのプロパティも同様にクエリ対象となるためです。
データポーリング
前述の通り、ファクトリホストは、自身が定義したトレースレポートやイベントレポートを通じて、定期的にデータを取得することが多い。GEMはまた、ファクトリホストが必要に応じてデータをポーリングするための方法も提供する。
ステータス変数
ホストは、値を取得するSVIDのリストを含むS1F3メッセージを送信することで、いつでもステータス変数の値を問い合わせることができる。リストの長さが1の場合、単一のSVの値のみが返される。リストの長さが0の場合、インターフェースで定義されたすべてのSVの値が返される。値は、機器からのS1F4メッセージ内のリストとして返される。
ホストは、装置に対してS1F11メッセージを送信することで、装置からSV名のリストを要求することもできます。上記のリスト規則はこのメッセージにも適用されます。返されるメッセージには、各SVのSVID、名前、およびユニットを表示するエントリが含まれます。
装置定数
SVの動作と同様に、ホストはS2F13メッセージを送信することでGEMインターフェースに定義された機器定数の値を問い合わせることができます。値は機器からS2F14メッセージを用いて返されます。
SVと同様に、ECの名前もS2F29メッセージを使用して問い合わせることができる。
データ変数
データ変数は収集イベントのコンテキスト内でのみ有効であるため、データ変数の値をポーリングする方法は存在しません。データ変数の値は収集イベントレポートでのみ報告可能です。
その他
上記のデータポーリング方法に加え、機器をポーリングすることにより、GEMホストから以下の項目も取得できます:
- 収集イベント(CE) – ホストは、GEMインターフェース上で利用可能な収集イベントと、各CEに関連付けられたデータ値(DV)を照会できます。これらはS1F23メッセージを使用して要求されます。
- アラーム – ホストは、対象アラームのALIDを列挙したS5F5メッセージを送信することで、システム上で利用可能なアラームを照会できます。応答メッセージには、ALIDに関連付けられたアラームコードとアラームテキストがリストされます。 すべてのGEMインターフェースには、2つのステータス変数が存在する必要があります。AlarmsEnabledには、機器上で有効なすべてのアラームのIDリストが含まれます。AlarmsSetには、機器上で現在セット状態にあるアラームのIDリストが含まれます。これらはステータス変数であるため、いつでも問い合わせが可能です。
- MDLN および SOFTREV – S1F1(応答可能か?)メッセージへの応答には、機器のモデルタイプ(MDLN)とソフトウェアリビジョン(SOFTREV)が含まれます。
- DateTime – 機器の日付と時刻はS2F17メッセージを使用して要求できます。ホストはS2F31メッセージを使用して機器の時刻を同期できます。GEMは機器が現在の時刻を含むクロックSVを維持することを要求します。ホストによる時刻の照会と同期を許可することで、システム上でほぼ同時発生するイベントを順序付けする機能を提供します。
トレースデータ収集
トレースデータ収集は、データを定期的にサンプリングする方法を提供する。時間ベースのデータ収集アプローチは、トレンドの追跡や時間枠内での反復的なアプリケーション、あるいは連続データの監視に有用である。
トレース定義を作成する際、ホストは以下の情報を提供します:
- サンプリング間隔 – サンプル間の時間。分解能は100分の1秒単位であるため、トレースを用いて非常に高速にデータを収集することが可能である。機器が10Hzという高速なトレース間隔をサポートすることは一般的である。
- グループサイズ – トレースレポートに含まれるサンプル数
- SVIDs – トレースに含まれるステータスデータのリスト
- 総サンプル数 – トレースの寿命にわたって採取されるサンプルの数
- トレースリクエストID – トレースリクエストの識別子(GEMは整数型のトレースIDのみ許可します)
ホストはS2F23メッセージを使用してトレース要求を定義する。トレースレポートはS6F1メッセージを使用して機器からホストへ送信される。
トレースサンプル
ある装置がウェーハを処理していると仮定し、その処理に5分かかる場合を考える。チャック温度を許容範囲内に維持し、チャンバー圧力が指定レベル以下であることを確認することが重要である。15秒間隔で値を監視すれば十分だが、データをグループ化して1分ごとに報告を受け取るように設定できる。ホストは次のトレース構成を持つS2F23メッセージを送信できる:
トレースID: 100 (IDは整数である必要があります)
サンプリング周期: 00001500 (15秒ごとにサンプリング)
総サンプル数: 75 (15秒間隔で5分間サンプリング)
グループサイズ: 4
SVIDリスト:
300 (チャック温度に関する情報を含むステータス変数のID)
301 (チャンバー圧力に関する情報を含むステータス変数のID)
1分後、装置からS6F1メッセージを用いて最初のトレースレポートが配信されます。メッセージには以下の情報が含まれます:
100 (トレースID)
4 (最終サンプル番号)
2018-01-22T14:20:34.8 (日付形式はTimeFormat機器定数に依存)
ステータス値リスト: (長さ8: グループサイズ4の2つのSV)
219.96 (第1サンプル用チャック温度)
0.0112 (第1サンプル用圧力)
219.97 (2番目サンプルのチャック温度)
0.0122 (2番目サンプルの圧力)
219.97 (3番目サンプルのチャック温度)
0.0120 (3番目サンプルの圧力)
219.96 (4番目サンプルのチャック温度)
0.0119 (4番目サンプルの圧力)
さらに1分後、トレースレポートは以下のような内容になる可能性があります:
100 (トレースID)
8 (最終サンプル番号)
2018-01-22T14:21:34.8 (日付時刻は最初のトレースより1分遅れている)
ステータス値リスト: (長さ8: グループサイズ4の2つのステータス値)
219.96 (第五サンプルのチャック温度)
0.0112 (第五サンプルの圧力)
219.97
0.0122
220.01
0.0120
220.00
0.0119
さらに3件のレポートが1分間隔で受信されます。ホストはレポート内の戻り値を確認し、値が想定範囲外の場合に適切に対応できます。
結論
ホストは、特定の時点での値を確認したい場合、S1F3を使用してステータスデータをポーリングできます。特定の期間にわたって継続的にデータを収集したい場合は、トレースを設定できます。
本ブログで概説したデータサンプリング手法を用いることで、ホストアプリケーションは必要なデータを必要なタイミングで取得できるようになります。GEMは、ホストが特定の時点での値を問い合わせるか、トレースを用いた定期的なサンプリングのいずれかを選択できるようにすることで、機器からのデータ要求に柔軟性をもたらします。