このブログはもともとcimetrix.comに掲載されていました。
SECS/GEMシリーズの第一弾として、GEM規格の主要機能の一つである「収集イベント」について解説します。まずその仕組みを説明した後、製造装置からのデータ収集においてなぜこれらが非常に効果的なのかを説明します。
収集イベントとは何ですか?
「収集イベント」という名称の二語は説明的である。
「イベント」という言葉が示す通り、収集イベントは通知です。その目的は、装置で何らかの関心事が発生した際にホストに通知することです。 「ホスト」とは、装置のGEMインターフェースに接続する工場クライアントソフトウェアを指します。例えば、材料到着時、消耗品残量低下時、ハードウェア問題発生時、カメラによる材料検査時、材料搬出準備完了時、チャンバーが目標真空圧に到達時、処理完了時などに収集イベントが通知されます。装置は収集イベント機能を用いて、あらゆる関心事の発生を報告できます。 GEMインターフェースの開発元が、ホストが利用可能な収集イベントを正確に決定します。したがって、利用可能な収集イベントのセットは装置タイプごとに異なります。
「収集」という言葉が示す通り、収集イベントは収集イベントメッセージと共にデータを公開することも可能です。これは非常に効率的なデータ収集形式であり、情報が利用可能になるにつれて非同期的に提供します。例えば、材料到着を報告する収集イベントは、到着した材料のバーコードや位置情報も同時に報告できます。 GEMインターフェースには3種類のデータが存在します:収集イベントに関する情報(データ変数と呼ばれる)、ステータス情報(ステータス変数と呼ばれる)、機器設定(機器定数と呼ばれる)です。GEMインターフェースを作成する者が、各収集イベントで利用可能な情報を正確に決定します。したがって、収集イベントで利用可能な情報のセットは機器タイプごとに異なります。また、利用可能なデータは、ホストがレポートを設定した場合にのみ送信されます。
要約すると、収集イベントはホストに何かが発生したことを通知するだけでなく、発生した内容や機器の状態に関するより詳細な情報を提供することも可能です。
ちょっとした例え話
例えとして、工場を社長に、購入する設備を従業員と考えてみてください。工場の種類や運営スタイルが様々であるように、管理手法にも多くの異なるスタイルが存在します。他人の工場と同じ方法で運営することを強制されたくはないでしょう。自分なりの方法で運営したいはずです。
さらに、各従業員は独自性があり、それぞれに異なるレベルの注意を必要とします。そして各従業員は独自の仕事を行っています。 一般的に、すべての管理者は従業員に関する基本情報と、従業員が何をしているのかを知りたいと考えています。従業員がプロジェクトを開始する時期と完了する時期を知りたいのです。最小限の監督と報告でも非常に生産的な従業員もいれば、広範な監督と報告を必要とする従業員もいます。GEMは工場が各設備を個別に扱うことを可能にします。具体的には、GEM収集イベントにより、設備は自身の動作状況を報告する手段を得ます。
ホストは報告のルールを設定し、適切に調整する必要があります。例えば、管理者が従業員のトイレ休憩を気にしない場合もあれば、特定の従業員については把握したい場合もあります。GEMインターフェースでは、ホストが通知の有無を選択できます。
時には、従業員が出勤・退勤・休憩開始・休憩終了といった行動を取ったタイミングを、管理者が知らされるだけで十分です。また時には、管理者はより詳細な情報——例えば「どのプロジェクトを完了したか」「所要時間は」「プロジェクトの主な成果は」といった内容——を必要とします。同様に、GEMはホストが単に発生時刻を追跡するだけでなく、活動内容の詳細も提供できるようにします。GEMレポートはこのニーズを非常に効果的に満たします。
なぜこの機能が必要なのですか?
簡潔に言えば、収集イベントにより設備の稼働状況をリアルタイムで追跡できます。工場がスマート製造を推進する場合、あるいは単に生産性を向上させたい場合、まず必要なのは設備の稼働状況を追跡する能力です。収集イベントはこの機能を提供します。 設備稼働率、資材移動、加工工程の進捗、予知保全のための稼働サイクル数、消耗品使用量、そして公開された収集イベントに関連するあらゆる情報を追跡できます。こうした情報の応用範囲は無限大です。
収集イベントは、機器がホストからの情報または進行許可を必要とするシナリオの実装にも使用されることがある。収集イベントは、機器がホストの指示または許可を受ける準備が整ったことをホストに通知する。
コレクションイベント通知はどのように機能しますか?
機器のGEMインターフェースは、様々な収集イベントを公開できます。ホストは通常、それらすべてを同時に通知されることを望まず、またその必要もありません。収集イベントは、2つの方法でパブリッシュ/サブスクライブ設計パターンを採用しています。
基本パブリッシュ/サブスクライブ通知
ホストは特定の収集イベントを購読し、発生時に通知を受け取ります。この購読により、ホストはGEMインターフェースで利用可能な各収集イベントの報告を有効化または無効化できます。機器は収集イベントが発生するたびにこれを公開します。
イベントレポート 公開/購読 データ収集
デフォルトでは、収集イベントメッセージにはデータは含まれません。サブスクリプションにより、ホストは有効化された各収集イベントのメッセージに含めるデータを決定できます。ホストはレポートを定義し、収集イベントにレポートをリンクすることで、データへのサブスクリプションを確立します。各収集イベントは異なるレポートを持つことができます。また、複数の収集イベント間でレポートを共有することも可能です。 レポートには、収集イベントに関連付けられたデータ変数、ステータス変数、および機器定数のいずれもを含めることができます。機器は要求されたデータと共に収集イベントを公開します。
識別
機器が公開する各収集イベントには、識別用の固有ID番号が付与されます。ホストソフトウェアは収集イベントの有効化または無効化時にこのID番号を使用します。機器は収集イベントメッセージ送信時にこのID番号を使用します。利用可能な各データ変数、ステータス変数、機器定数にも固有のID番号が割り当てられています。ホストがレポートを定義する際には、そのレポートに固有のID番号が割り当てられます。
ブローカー
収集イベントの公開/購読をすべて処理するブローカーは、装置のGEMインターフェースに組み込まれています。これは装置システムの一部です。ホスト(クライアント)とGEMインターフェース間の通信は、SECS/GEM通信を用いて標準化されています。 GEMインターフェースと装置のその他のハードウェア・ソフトウェア(装置収集イベントおよびデータの発生源)との間の通信は、適切な技術であればどれでも使用可能であり、GEMインターフェースが適切に機能し十分な性能を発揮する限り、通信方式は問われません。
これは、ホストがサブスクライブしている場合にのみ、機器からホストへメッセージが送信されることを意味します。ブローカーを機器とGEMインターフェースの一部として組み込むことで、GEMインターフェースは非常に効率的になり、すべてのメッセージとデータを常にブローカーへ送信しなければならない外部ブローカーを使用するプロトコルよりもはるかに少ない帯域幅で動作します。

持続性
コレクションイベントのサブスクリプションはGEMインターフェースに永続化されます。したがって、ホストが切断・再接続した場合や機器が再起動された場合でも、GEMインターフェースはすべてのサブスクリプションの設定を記憶します。
どのメッセージが使用されますか?
以下は、収集イベントに関連する主要なメッセージの要約です。なお、「S」は「ストリーム」を、「F」は「機能」を識別します。ストリーム番号と機能番号を組み合わせることで、メッセージを一意に識別できます。
| メッセージID | 方向 | 説明 |
| S2F37 | ホスト → 機器 | 一連の収集イベントに対するレポート機能を有効または無効にします。
空のリストは、すべての収集イベントの報告を有効化または無効化します。GEMインターフェースの特性評価時には、すべての収集イベント報告を有効化することが有用です。必要な収集イベントの報告を有効化する前には、すべての収集イベントを無効化することが有用です。 |
| S2F33 | ホスト → 機器 | 1つ以上のレポートを定義します。
空のリストは、すべてのレポートとレポートのコレクションイベントへのリンクを削除します。すべてのレポートを削除することは、サブスクリプションをリセットする場合や、GEMインターフェースに初めて接続してデフォルトのサブスクリプションを上書きする場合に有用です。 |
| S2F35 | ホスト → 機器 | 1つ以上のレポートを、一連の収集イベントにリンクします。
レポートが既に収集イベントにリンクされている場合、それらを削除してから、すべての収集イベントを1つのメッセージでリンクし直す必要があります。空のリストを指定すると、収集イベントからレポートリンクが削除されます。 |
| S1F23 | ホスト → 機器 | 利用可能な収集イベントの一覧と、各収集イベントで利用可能なデータを要求する。 |
| シーズン6エピソード11 | 機器 -> ホスト | 収集イベントメッセージ。
レポートがリンクされていない場合、メッセージには収集イベントのID番号のみが含まれます。収集イベントに1つ以上のレポートがリンクされている場合、リンクされた各レポートのデータがメッセージに含まれます。 |
回収イベントに関するよくある質問
収集イベントにはどの程度の帯域幅が必要ですか?
これはいくつかの要因によって異なります。
- ホストによって有効化された収集イベントの数。
- 収集イベントに関連付けられたデータレポートのサイズ。
- 機器によって有効化された収集イベントがトリガーされる頻度。これは収集イベントの意味によって異なります。
収集イベントはどのくらいの速さでトリガーできますか?
GEM規格は収集イベントの頻度を制限せず、標準的な通信ハードウェアを使用します。つまり、ハードウェアを改良することでより高速な収集イベントを実現できます。
GEMは2つのプロトコルをサポートします:SECS-IとHSMSです。SECS-IはRS-232シリアル通信を基盤としているため、現在ではほとんど使用されていません。このような実装では、収集イベントを非常に迅速にトリガーすることができません。
HSMSはネットワーク通信に基づいています。シリアル通信は低速であるため、GEMの実装の大半はHSMSを採用しています。GEMはTCP/IPを非常に効率的に利用します。収集イベントの発生頻度は、ネットワークハードウェアの速度、機器のコンピュータ性能、およびホストコンピュータの性能に依存します。ほとんどのプロトコルと同様に、メッセージを処理するには、メッセージを生成する場合よりも多くのコンピュータリソースを必要とするのが一般的です。
収集イベントの生成速度は、収集イベントに紐づくデータレポートにも依存します。例えば、データレポートが10MBといった大容量の場合、パフォーマンスに影響を及ぼします。
なぜコレクションイベントのメッセージを受信できないのですか?
ホストが収集イベントメッセージを受信しない理由はいくつかあります。
- ホストと機器は、S1F13/S1F14交換の成功により確立されたGEM通信を有していなければならない。
- GEM制御状態はオンラインでなければならない。ホストオフライン状態または機器オフライン状態であってはならない。
- GEMスプール処理は非アクティブである必要があります。アクティブな状態でスプール処理を無効化しても、スプール処理が非アクティブになることはありません。スプールされたメッセージが不要な場合は、メッセージS6F23を使用してスプール処理を消去してください。スプールされたメッセージが必要な場合は、スプール状態が非アクティブになるまで、S6F23を使用して反復的に要求してください。
- 収集イベントを有効にする必要があります。S1F3を使用して「EventsEnabled」ステータス変数を確認し、収集イベントが有効であることを確認してください。メッセージS2F37を使用して収集イベントを有効にしてください。
- 収集イベント活動は発生する必要があります。例えば、資材が実際に到着しない場合、資材到着を報告する収集イベントは決して発生しません。活動が発生し、上記の条件が満たされているにもかかわらず、装置のGEMインターフェースに不具合がある場合です。
機器のGEMインターフェースが必要な収集イベントを公開しない場合はどうすればよいですか?
装置サプライヤーに、希望する回収イベントを追加するよう依頼してください。装置サプライヤーが工場が求める全ての回収イベントを正確に予測することは困難です。装置サプライヤーは工場のGEMインターフェースソフトウェアをアップグレードする必要があります。
収集イベントにリンクされたデータレポートは、どの程度の規模になる可能性がありますか?
GEMでは、単一のデータ変数値またはステータス変数値が、浮動小数点数、文字列、整数を含む任意のデータ型の配列または構造体となることが可能です。単一配列のサイズは16.777215 MBに制限されます。メッセージの総サイズは4.294967295 GBに制限されます。