このブログはもともとcimetrix.comに掲載されていました。
メッセージをスプールする目的
最も堅牢なコンピュータネットワークでさえ通信障害を経験する。原因にかかわらず、わずかな停止でもミッションクリティカルなデータの重大な損失を引き起こす可能性がある。GEMはメッセージスプール機能を提供することで、このデータ損失を緩和する。
スプール定義
スプール処理とは、通信障害時にホスト宛てのメッセージを機器がキューに蓄積し、通信復旧後にこれらのメッセージを配信する機能である。SEMI E30-0717 7.12.
スプール処理の利点
自動化された工場はデータ駆動型である。データは抽出・分析され、エンジニアリングチームと管理チームが製品歩留まりを高め、廃棄物を低減するためにどのように対応するかに影響を与える意思決定が行われる。
このデータの欠落は誤った判断や推測を招く可能性があります。スプール処理はバックアップシステムであり、このデータの保存と復元を保証することで、貴重なデータを失うリスクを軽減します。
GEM能力要件
スプール処理はGEMの必須要件ではありません。ただし、この追加機能を実装する場合は、適切に実装する必要があります。準拠したスプールインターフェースを実装するための要件を以下に示します。
機器は、機器定数「EnableSpooling」を介してスプール機能を有効化および無効化する機能をホストに提供しなければならない。このECは機器によって公開され、ホストは希望の状態を選択できる。
スプール機能が実装される場合、関連するすべてのプライマリメッセージに対して機能し、S2、F43/F44トランザクションを使用してアクセス可能でなければならない。ただし、ストリーム1メッセージはこれに含まれず、これらが「スプール設定」を試みた場合には拒否されなければならない。
不揮発性メモリ
本装置は、少なくとも1回の処理サイクル分スプールされた全メッセージを保存するのに十分な不揮発性ストレージを割り当てる役割を担う。NVSにはスプール関連の状態変数も全て格納される。停電発生時にもデータが保持されるよう、このデータにはNVSが使用される。
電力喪失
機器の電源喪失前にスプールされたすべてのメッセージは、不揮発性ストレージに永続化されているため利用可能です。電源喪失発生時にスプールがアクティブだった場合、すべてのスプールコンテキストはNVSから復元されます。これにはスプールされたデータに加え、NVSに永続化されたスプール関連のすべてのステータス変数が含まれます。
スプール処理の実装に関するホストの責任
メッセージのスプール処理は、通信障害発生後の正常な復旧にホストの参加を必要とします。ホストがこのステートマシンの全状態において発生し得るあらゆる状況を適切に処理できるようプログラムされるまでは、スプール機能を無効状態に保つことが理想的です。不適切に管理されたスプール処理よりも、無効化されたスプール処理の方が望ましいです。
通信が再確立された後、ホストはスプールされたメッセージの要求を管理する必要があります。また、ホストは必要に応じて機器からファイルを削除するオプションも有しています。
結論
スプール処理はGEMの基本要件ではないが、実装する場合は適切に行わなければならない。スプール処理が有効な場合、ホストソフトウェアと機器ソフトウェアの双方がGEM準拠を確保する責任を負う。GEMスプール処理は貴重なデータの潜在的な損失を防ぎ、機器ソフトウェアとホストソフトウェアの双方が容易に準拠できる標準を提供する。