コンテンツにスキップ

シナリオ:レシピ管理

1. 概要

本シナリオでは、完全なレシピ(プロセスプログラム)管理フローについて説明します。ダウンロード、アップロード、検証、削除操作を含みます。

2. 前提条件

条件 必要な状態
通信 COMMUNICATING
制御状態 ONLINE
プロセス状態 IDLE(ほとんどの操作)

3. レシピダウンロード(ホスト → 装置)

3.1 完全ダウンロードシーケンス

sequenceDiagram participant Host participant Equipment rect rgb(240, 248, 255) Note over Host,Equipment: フェーズ1:問い合わせ Host->>Equipment: S7F1 W (PPID, Length) Equipment-->>Host: S7F2 (PPGNT=0) end rect rgb(240, 255, 240) Note over Host,Equipment: フェーズ2:転送 Host->>Equipment: S7F3 W (PPID, PPBODY) Note over Equipment: レシピ検証 Note over Equipment: レシピ保存 Equipment-->>Host: S7F4 (ACKC7=0) end rect rgb(255, 248, 240) Note over Host,Equipment: フェーズ3:イベント通知 Equipment->>Host: S6F11 W (RecipeDownloaded) Host-->>Equipment: S6F12 end

3.2 S7F1 - ロード問い合わせ

S7F1 W
<L[2]
  <PPID "RECIPE001">
  <LENGTH 102400>         // 予想バイト数
>

3.3 S7F2 - ロード許可

S7F2
<PPGNT 0>                 // 送信OK

PPGNT応答コード:

意味 アクション
0 OK S7F3へ進む
1 既存 ダウンロードスキップまたは強制上書き
2 空き容量なし 古いレシピを削除
3 無効なPPID PPIDフォーマット確認
4 ビジー 後で再試行
5 受け付けない 装置状態確認

3.4 S7F3 - レシピ送信

S7F3 W
<L[2]
  <PPID "RECIPE001">
  <PPBODY 0x...>          // バイナリレシピデータ
>

3.5 S7F4 - 確認応答

S7F4
<ACKC7 0>                 // 受理

ACKC7応答コード:

意味
0 受理
1 権限なし
2 長さエラー
3 マトリクスオーバーフロー
4 PPIDなし
5 モード非対応
6 非同期完了

4. レシピアップロード(装置 → ホスト)

4.1 アップロードシーケンス

sequenceDiagram participant Host participant Equipment Host->>Equipment: S7F5 W (PPID) Note over Equipment: レシピ検索 Note over Equipment: データ準備 Equipment-->>Host: S7F6 (PPID, PPBODY) Note over Host: 受信データ検証

4.2 S7F5 - レシピ要求

S7F5 W
<PPID "RECIPE001">

4.3 S7F6 - レシピデータ

成功:

S7F6
<L[2]
  <PPID "RECIPE001">
  <PPBODY 0x...>
>

レシピなし:

S7F6
<L[0]>

5. レシピ検証

5.1 ダウンロードと検証シーケンス

sequenceDiagram participant Host participant Equipment Note over Host,Equipment: ダウンロード Host->>Equipment: S7F1 W (PPID, Length) Equipment-->>Host: S7F2 (PPGNT=0) Host->>Equipment: S7F3 W (PPID, PPBODY) Equipment-->>Host: S7F4 (ACKC7=0) Note over Host,Equipment: アップロードで検証 Host->>Equipment: S7F5 W (PPID) Equipment-->>Host: S7F6 (PPID, PPBODY) Note over Host: オリジナルとアップロードを比較 Note over Host: 一致を確認

6. レシピ削除

6.1 特定レシピの削除

sequenceDiagram participant Host participant Equipment Host->>Equipment: S7F17 W Note right of Host: 削除するPPIDリスト Note over Equipment: レシピ削除 Equipment-->>Host: S7F18 (ACKC7=0) Equipment->>Host: S6F11 W (RecipeDeleted) Host-->>Equipment: S6F12

6.2 S7F17 - 削除要求

特定レシピの削除:

S7F17 W
<L[2]
  <PPID "RECIPE001">
  <PPID "RECIPE002">
>

全レシピの削除:

S7F17 W
<L[0]>

6.3 S7F18 - 削除確認応答

S7F18
<ACKC7 0>                 // OK

7. レシピリスト照会

7.1 照会シーケンス

sequenceDiagram participant Host participant Equipment Host->>Equipment: S7F19 W Equipment-->>Host: S7F20 (PPID list)

7.2 S7F19 - リスト要求

S7F19 W
<L[0]>

7.3 S7F20 - リスト応答

S7F20
<L[5]
  <PPID "RECIPE001">
  <PPID "RECIPE002">
  <PPID "RECIPE003">
  <PPID "DEFAULT">
  <PPID "TEST">
>

8. レシピ選択

8.1 リモートコマンド経由

sequenceDiagram participant Host participant Equipment Host->>Equipment: S2F41 W Note right of Host: RCMD="PP_SELECT"<br/>RecipeID="RECIPE001" Equipment-->>Host: S2F42 (HCACK=0) Equipment->>Host: S6F11 W (RecipeSelected) Host-->>Equipment: S6F12

8.2 STARTコマンド経由

sequenceDiagram participant Host participant Equipment Host->>Equipment: S2F41 W Note right of Host: RCMD="START"<br/>RecipeID="RECIPE001" Note over Equipment: レシピ選択 Note over Equipment: プロセス開始 Equipment-->>Host: S2F42 (HCACK=0)

9. フォーマット済みレシピ転送

9.1 S7F23 - フォーマット済みレシピ送信

フォーマット済み(パラメータ化)レシピをサポートする装置の場合:

S7F23 W
<L[3]
  <PPID "RECIPE001">
  <MDLN "MODEL-001">
  <L[n]                   // レシピパラメータ
    <L[2]
      <CCODE "STEP1">
      <L[m]
        <PARAM1 100>
        <PARAM2 200>
      >
    >
    ...
  >
>

9.2 S7F24 - フォーマット済みレシピ確認応答

S7F24
<ACKC7 0>

9.3 S7F25/S7F26 - フォーマット済みレシピアップロード

S7F5/S7F6と同様ですが、フォーマット済み構造を返します。

10. エラーシナリオ

10.1 ストレージ満杯

sequenceDiagram participant Host participant Equipment Host->>Equipment: S7F1 W (PPID, Length) Equipment-->>Host: S7F2 (PPGNT=2) Note left of Equipment: 空き容量なし Note over Host: 先に古いレシピを削除 Host->>Equipment: S7F17 W (old PPIDs) Equipment-->>Host: S7F18 (ACKC7=0) Note over Host: ダウンロード再試行 Host->>Equipment: S7F1 W (PPID, Length) Equipment-->>Host: S7F2 (PPGNT=0)

10.2 レシピ検証エラー

sequenceDiagram participant Host participant Equipment Host->>Equipment: S7F1 W (PPID, Length) Equipment-->>Host: S7F2 (PPGNT=0) Host->>Equipment: S7F3 W (PPID, PPBODY) Note over Equipment: レシピ検証 Note over Equipment: 構文不正 Equipment-->>Host: S7F4 (ACKC7=5) Note left of Equipment: モード非対応<br/>(検証失敗)

10.3 レシピ使用中

sequenceDiagram participant Host participant Equipment Note over Equipment: RECIPE001現在実行中 Host->>Equipment: S7F17 W (PPID="RECIPE001") Equipment-->>Host: S7F18 (ACKC7=4) Note left of Equipment: 削除不可<br/>レシピ使用中

11. 関連イベント

CEID 名前 トリガー
400 RecipeSelected 処理用レシピ選択
401 RecipeUploaded レシピがホストへアップロード
402 RecipeDownloaded レシピがホストからダウンロード
403 RecipeDeleted レシピ削除
404 RecipeValidationError レシピ検証失敗

12. ベストプラクティス

  1. 必ず検証:ダウンロードしたレシピをアップロードして比較
  2. 空き容量確認:大きなレシピをダウンロードする前に
  3. レシピリスト照会:レシピの存在を想定する前に
  4. 「既存」の適切な処理:(PPGNT=1)
  5. 使用中のレシピは削除しない