このブログはもともとcimetrix.comに掲載されていました。
GEM対応機器のインターフェース機能を開発時だけでなく稼働中にもテストすることには、測定可能な利点がある。GEM規格の一部は明示的に規定されておらず、機器ごとに実装が異なる可能性がある。したがって、機器メーカーは機器固有のテストを作成すべきであり、それらは機器の耐用年数を通じて価値を提供し続ける。
処理状態モデル
GEMアイテムの中でほぼ常に変動する要素の一つが、装置の処理状態モデルです。ここではCimetrix GEMテストユーティリティ「EquipmentTest」を用いて、装置の処理状態に対するカスタムテスト作成の例を示します。EquipmentTestの評価版は当社ウェブサイトからご請求いただけます。
E30規格は、処理状態図と遷移表の例を提供している。
プロセス状態要件
実装は標準に違反せずに異なる場合があるが、処理状態セクションにはインターフェースが準拠するために従わなければならない以下の要件が含まれる:
SEMI E030-00-0520
説明:
処理状態(INIT、IDLE、SETUPなど)の例は、GEM実装において絶対的に必須ではありません。ただし、機器メーカーは機器の状態を特定し、例と同様に文書化する必要があります。
SEMI E030-00-0520
説明:
- 処理状態モデルにおける各状態遷移に対して、収集イベントが存在しなければならない。
- 以下のステータス変数を必ず提供してください:
- プロセス状態
- 前のプロセス状態
- 状態遷移が発生するたびに、ProcessStateおよびPreviousProcessStateステータス変数の値を更新しなければならない
擬似例:自動販売機
自動販売機にGEMインターフェースが実装される可能性は低いものの、これは広く認知されたシステムであり、学術界では状態遷移機の教育例として頻繁に用いられる。したがって、我々も同様に架空のGEM準拠自動販売機を例として用いることにする。
単純性を維持するための前提条件
- この自動販売機は非接触型決済を採用しており、取引開始時に5ドルの認証を行います。
- 自動販売機は、商品の位置と価格以外の情報を一切把握していない。
- すべての商品は常時在庫がございます。
図を作成する
GEMドキュメントが最終版となった際には、プロセス状態図はハレル表記で作成してください。ブレインストーミングの目的上、ここでは簡易的なUML図を使用しています。
図を作成する際には、まずすべての可能なGEM状態、遷移/収集イベント、変数、アラーム、およびエラーを特定する。
| 州 | 変数 | アラーム/エラー |
| 初期化中 | 過去および現在のプロセス状態 | ディスペンシングエラー |
| 支払い待機 | 場所が選択されました | 残高不足 |
| 待機_選択 | 利用可能な通貨 | カード読み取りエラー |
| アイテムを配布する | 請求通貨 | |
| 取引完了 |

遷移表
上記の図では、各状態遷移が赤色でマークされていることに注意してください。例: T1。
各状態遷移は遷移表に記録されなければならない。遷移表は効果的なテストを開発する上で極めて重要となる。
| # | 現在の状態 | トリガー | 新国家 | アクション | コメント |
| T1 | 初期化中 | 自動販売機が初期化されました | 支払い待機 | なし | イベントと変数の更新 |
| T2 | 支払い待機 | 認証に失敗しました | 支払い待機 | なし | イベントと変数の更新 |
| T3 | 支払い待機 | 認証が成功しました | 待機_選択 | なし | イベントと変数の更新 |
| T4 | 待機_選択 | 残高不足 | 取引完了 | なし | イベントと変数の更新 |
| T5 | 待機_選択 | 選択および配布されたアイテム | アイテムを配布する | なし | イベントと変数の更新 |
| T6 | アイテムを配布する | ユーザーはより多くのアイテムを望んでいる | 待機_選択 | なし | イベントと変数の更新 |
| T7 | アイテムを配布する | ユーザーはこれ以上アイテムを望んでいません | 取引完了 | なし | イベントと変数の更新 |
| T8 | 取引完了 | 機器は次の取引に備える | 初期化中 | なし | イベントと変数の更新 |