このブログはもともとcimetrix.comに掲載されていました。
工場で機器を導入する段階になると、適切なソフトウェアテストが実施されているかどうかは一目瞭然です。ロン・マイケルが述べたように、「混乱を自動化すれば、自動化された混乱が生じる」のです。この考え方はGEM対応機器にも当てはまります。自動テストを容易かつ効率的に行うためのソフトウェアツールが利用可能です。機器上の全ソフトウェアをテストすることは重要ですが、本ブログではGEMインターフェースのテストに焦点を当てます。
GEMインターフェースのテストは、以下の通り、機器のソフトウェア開発ライフサイクル全体を通じて極めて重要です。
開発段階
ステークホルダー(顧客)は、自社内のGEMホストと統合できるよう、当該機器にGEMインターフェースが必要であることを伝達した。顧客の書面による仕様書には、ホストと効果的に連携するために機器がサポートすべきGEMシナリオが含まれている。
要求された機能がGEMインターフェースに追加されるにつれ、開発者は各シナリオにおいてホストの役割をシミュレートできる必要があります。機器が各要件を正しく満たすことを保証するには、テストが極めて重要です。GEMインターフェースが完成した後、導入前にはE30準拠テストが最優先事項となります。
展開フェーズ
装置が恒久設置場所に設置された後、フィールドエンジニアは、装置が工場ホストに接続される前に、装置に接続しGEMインターフェースをテストする方法を必要とします。
装置が稼働状態になると、地理的な位置や工場へのアクセス制限により、装置へのアクセスが困難になる場合があります。そのため、テスト済みで準拠したGEMインターフェースを備えた装置を導入することで、大幅な時間とリソースの損失を回避し、円滑な導入を確保できます。
維持・保守フェーズ
GEMインターフェースは、ソフトウェアの更新、GEM機能の追加、またはインターフェースの動作に影響を与える可能性のある変更のたびにテストする必要があります。
この維持・保守段階では、適切に試験された機器はダウンタイムが少なくなります。
適切なツールの使用
機器メーカーが直面する最大の課題のいくつかは、適切なGEM試験ツールを保有していないことに起因している。
おそらく、テストツールは持っているものの、それは時代遅れで、効果がないのでしょう。テストポートフォリオに時代遅れのツールがあることは、使い古した錆びたレンチを使い続けるようなものです。一見、機能しているように見えるかもしれませんが、徐々にボルトを傷つけています。ベンジャミン・フランクリンが述べたように、「最良の投資は、自分の仕事に必要な道具への投資である」のです。 したがって、開発者としては、「錆びたレンチを捨てる」べき時を見極めることが重要です。
CimetrixEquipmentTestTMは、工場受入時間を短縮し、工場のGEMインターフェースを強化するために設計された新しいソフトウェアツールです。また、工場および装置サプライヤーが装置の特性評価、装置からの情報収集、SEMI規格への適合性判定を行い、装置固有のユニットテストを単一のインターフェースに統合することを支援します。
EquipmentTestは、あらゆる機器開発者がツールキットに備えておくべき多目的ツールです。
その理由を理解するために、その主な特徴をいくつか見てみましょう。
メッセージタブ
EquipmentTestのメッセージタブは、開発およびテスト中に極めて重要です。GEMインターフェースの一部が完成するにつれ、アトミックメッセージを送信したり、装置からのメッセージに応答したりする機能が不可欠となります。 メッセージはSMN(SEMI E173、SECSメッセージ表記法)でフォーマットされます。このXML構文と生のメッセージテンプレートライブラリを組み合わせることで、コードを一切書かずにSECSメッセージを迅速に作成・送信できます。これは、機器へのリモートコマンド送信やGEMアラームのホストへの確実な報告といった状況で特に有用です。
ユーザーはカスタムメッセージを定義し、自身のライブラリに追加することもできます。これらのメッセージは、後で再利用するために、その機器のEquipmentTestプロファイルに保存できます。

GEMコンプライアンスプラグインレポート
EquipmentTest Proは、GEMコンプライアンスプラグインと呼ばれる、GEM(SEMI E30)準拠テスト機能を標準装備しています。このプラグインは、装置に実装されたすべてのGEM要件が正しく実施されていることを保証します。 GEMコンプライアンスプラグインは、装置がGEM規格のどの領域を適切に実装し、どの領域に改善が必要かを判断できるレポートも提供します。このレポートは、関係者の間で意図せず不一致が生じ、GEM項目の実装漏れや不適切な実装につながるという、私が目撃したよくあるシナリオの軽減に役立ちます。
EquipmentTestは設定可能であり、工場がGEM機能の特定領域を必要としない場合、レポートではそれを「未実装」と定義します。EquipmentTestにより、開発者、テスター、およびすべての関係者は自信を持ってGEMインターフェースを展開できます。
テスト実行
テストは個別に実行することも、グループとして実行することもできます。各テストには、テストの目的と構成手順を説明する埋め込みドキュメントが含まれています。出力タブにはテスト結果が表示されます。テストが失敗した際の診断や、EquipmentTestが送受信したメッセージの内容を確認するには、SMNログを利用できます。
カスタムテスト
あらゆる設備は唯一無二である。さらに、特定の設備の独自機能こそが競合製品との差別化要因となり、その価値を大きく左右する。このため、全ての製造設備のあらゆる動作シナリオをテストすることは不可能である。必然的に、革新的な設備にはカスタムテストが必要となる。また、特定の工場の要件を満たすことを保証するためにも、カスタムテストが求められる場合がある。
カスタムテストのサポートは、EquipmentTestの最も価値ある機能の一つです。制限のあるスクリプト言語を使用する従来製品とは異なり、EquipmentTestでは標準的な.NETプログラミング言語で「プラグイン」と呼ばれるカスタムテストを作成できます。 拡張可能なプログラミング言語でホスト側テストを記述し、EquipmentTestのSECS/GEMソフトウェアライブラリにアクセスできる機能は、無限のテスト可能性を提供します。これにより、カスタムテスト内でのSECSメッセージの送受信が非常に簡単になります(下記参照)。
開発者がテストを作成すると、プロジェクトのダイナミックリンクライブラリ(.dll)ファイルをテストプロジェクトに関わる他の関係者に配布できます。これにより、エンジニア、技術者、その他の関係者は、コードを一切記述することなくカスタムプラグインをロードし、機器のテストを実施できます。
トレースレポートテスト例
このプラグインはトレーニング中に作成され、プラグイン開発の基本を実演しています。カスタムプラグインをロードすると、見た目や操作感がCimetrix提供のプラグインと同一になります。
ドキュメント
UIに表示されるドキュメントは、以下のメソッドデコレーションから生成されます。

パラメータ
パラメータはEquipmentTestユーザーによって変更可能であり、任意の型(カスタムデータ型を含む)を取ることができます。

テストロジック
テストの実行中、コード内でコンソールに出力される内容はすべて出力ウィンドウに表示されます。

断言
アサーションはテストが実際に評価する対象です。この例では、トレースの全サンプルが機器によって送信されたことをアサートします。いずれかのアサーションが失敗すると、テストはUI上で失敗します。この場合、テスト失敗時にUIに「1つ以上のサンプルが完了しなかった」と表示されます。
SMNログ
SMNログにはテスト中に送信された全メッセージが含まれます。テスト出力と併せて使用することで、テスト失敗の根本原因を診断する際に非常に役立ちます。
結論
Cimetrix EquipmentTestソフトウェアは、自動テストを容易かつ効率的に行うために設計されています。この新しく洗練されたツールを、時代遅れのツールの代わりに使用することで、高品質なGEMインターフェースの導入が格段に容易になり、新規または既存のGEMインターフェースが完全にE30規格に準拠していることを保証するのに役立ちます。