コンテンツにスキップ

スプーリング状態モデル

1. 概要

スプーリング機能により、通信障害によりホストに配信できないメッセージを装置が保存できます。通信が回復すると、スプールされたメッセージは順序通りにホストに送信されます。

2. スプーリング状態図

stateDiagram-v2 [*] --> SPOOL_INACTIVE SPOOL_INACTIVE --> SPOOL_ACTIVE: Communication Lost & Spooling Enabled SPOOL_ACTIVE --> SPOOL_TRANSMITTING: Communication Restored SPOOL_TRANSMITTING --> SPOOL_INACTIVE: All Messages Transmitted SPOOL_TRANSMITTING --> SPOOL_ACTIVE: Communication Lost Again SPOOL_ACTIVE --> SPOOL_INACTIVE: Spool Purged / Disabled SPOOL_ACTIVE --> SPOOL_FULL: Spool Capacity Reached SPOOL_FULL --> SPOOL_TRANSMITTING: Communication Restored SPOOL_FULL --> SPOOL_INACTIVE: Spool Purged

3. 状態定義

状態 説明
SPOOL INACTIVE 通常操作。メッセージはホストに直接送信されます。
SPOOL ACTIVE 通信が切断されました。メッセージがスプールに保存されています。
SPOOL FULL スプールが容量に達しました。最も古いメッセージが上書きされる可能性があります。
SPOOL TRANSMITTING スプールされたメッセージがホストに送信されています。

4. 遷移表

# 現在の状態 トリガー 次の状態 アクション
1 SPOOL INACTIVE 通信障害 SPOOL ACTIVE メッセージのスプールを開始
2 SPOOL INACTIVE ホストがスプールを要求 (S2F43) SPOOL INACTIVE スプールストリームを設定
3 SPOOL ACTIVE 通信回復 SPOOL TRANSMITTING スプール送信を開始
4 SPOOL ACTIVE 容量に達した SPOOL FULL オーバーフローを処理
5 SPOOL ACTIVE スプール無効化/パージ SPOOL INACTIVE スプールをクリア
6 SPOOL FULL 通信回復 SPOOL TRANSMITTING スプール送信を開始
7 SPOOL FULL スプールパージ SPOOL INACTIVE スプールをクリア
8 SPOOL TRANSMITTING すべてのメッセージ送信完了 SPOOL INACTIVE 通常操作を再開
9 SPOOL TRANSMITTING 通信切断 SPOOL ACTIVE スプールを継続

5. スプーリング設定

5.1 スプール可能なストリーム

ストリーム 機能 スプール 備考
S5 アラームメッセージ はい すべてのアラームイベントがスプールされます
S6 収集イベント はい イベントレポートがスプールされます
S6 トレースデータ [はい/いいえ] トレースレポート(設定可能)

5.2 スプールパラメータ

パラメータ 説明
最大スプールサイズ [10000] メッセージ スプール内の最大メッセージ数
オーバーフロー動作 [最古を上書き / 新規を拒否] スプールが満杯時の動作
スプールストリーム S5, S6 スプールするストリーム

6. 関連メッセージ

メッセージ 方向 説明
S2F43 H→E スプールストリームの定義
S2F44 E→H スプール定義確認応答
S6F23 E→H スプールデータの要求
S6F24 H→E スプールデータ要求の許可

6.1 S2F43 - スプールストリームの定義

構造:

S2F43 W
<L[n]
  <L[2]
    <STRID>           // ストリーム ID
    <STSPM>           // スプールフラグ (0=オフ, 1=オン, 2=パージ)
  >
  ...
>

6.2 S2F44 - スプール定義確認応答

構造:

S2F44
<L[n]
  <L[2]
    <STRID>           // ストリーム ID
    <STSPACK>         // 確認応答コード
  >
  ...
>

STSPACK 値:

説明
0 OK、スプール定義完了
1 ストリームが無効
2 ストリームはスプーリング非対応

6.3 S6F23 - スプールデータの要求

通信が回復すると、装置はスプールデータの送信許可を要求できます:

構造:

S6F23 W
<RSDC>                // スプールデータ件数の要求

6.4 S6F24 - スプールデータ要求の許可

構造:

S6F24
<RSDA>                // 0=送信, 1=送信しない, 2=パージ

7. スプール送信シーケンス

sequenceDiagram participant Host participant Equipment Note over Equipment: Communication Restored Equipment->>Host: S6F23 (RSDC=150) Host-->>Equipment: S6F24 (RSDA=0, Transmit) Note over Equipment: Begin Spool Transmission loop For each spooled message Equipment->>Host: Spooled Message (S5F1, S6F11, etc.) Host-->>Equipment: Acknowledge end Equipment->>Host: S6F11 (SpoolTransmitComplete) Host-->>Equipment: S6F12 Note over Equipment: State: SPOOL INACTIVE

8. 関連ステータス変数

SVID 名前 説明
[4001] SpoolState U1 現在のスプーリング状態
[4002] SpoolCount U4 スプール内のメッセージ数
[4003] SpoolCapacity U4 最大スプール容量
[4004] SpoolOverflowCount U4 オーバーフローにより失われたメッセージ数

SpoolState 値:

状態
0 SPOOL INACTIVE
1 SPOOL ACTIVE
2 SPOOL FULL
3 SPOOL TRANSMITTING

9. 関連収集イベント

CEID 名前 説明
[4001] SpoolActivated 通信切断によりスプーリングが開始
[4002] SpoolFull スプール容量に達した
[4003] SpoolTransmitStart スプール送信を開始
[4004] SpoolTransmitComplete すべてのスプールメッセージの送信完了
[4005] SpoolPurged スプールがパージされた

10. 関連アラーム

ALID ALTX カテゴリ 説明
[4001] Spool Overflow 警告 スプール容量に達し、メッセージが失われる可能性があります

11. 実装備考

11.1 スプールストレージ

  • スプールされたメッセージは不揮発性メモリに保存されます
  • メッセージは装置再起動後も保持されます
  • FIFO 順序が維持されます

11.2 送信順序

スプールメッセージの送信時: 1. メッセージは時系列順(最古のものから)で送信されます 2. 装置は次のメッセージを送信する前に確認応答を待ちます 3. 送信が失敗した場合、メッセージはスプールに残ります

11.3 スプールパージ

スプールは以下の方法でパージできます: - ホストコマンド(STSPM=2 を指定した S2F43) - オペレータ操作(許可されている場合) - オーバーフロー時の自動パージ(設定されている場合)