> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# プロトコルビルダー

> Ionworks Studio で Universal Cycler Protocol ファイルをビジュアルに作成・編集する

プロトコルビルダーは、Ionworks Studio で [Universal Cycler Protocol](/ja/simulate/universal-cycler-protocol) (UCP) ファイルを作成するためのビジュアルエディタです。ステップの追加と設定、グローバルパラメータと安全制限の設定、生成された YAML のリアルタイムプレビューが可能です。YAML を手書きする必要はありません。

## はじめに

Studio の **Protocol Builder** ページからプロトコルビルダーを開きます。エディタには2つのパネルがあります：

* **左パネル** — グローバル設定とステップリストを含むステップエディタ
* **右パネル** — 変更に応じて更新されるライブ YAML プレビュー

## グローバル設定

エディタ上部の折りたたみ可能な **Global Settings** セクションで、プロトコル全体のデフォルトを設定できます：

* **Initial state** — SOC パーセンテージ（0〜100%）または電圧としてセルの初期状態を設定
* **Initial temperature** — 周囲温度（°C）
* **Resolution** — シミュレーション出力の時間、電圧、電流の分解能

### 安全制限

任意のステップで超過した場合にステップを終了するグローバル安全制限を定義できます：

| 制限                    | 説明             |
| --------------------- | -------------- |
| Voltage min / max     | 電圧の下限および上限（V）  |
| Temperature min / max | 温度の下限および上限（°C） |
| Charge current max    | 最大充電電流（A）      |
| Discharge current max | 最大放電電流（A）      |

これらは [UCP 形式](/ja/simulate/universal-cycler-protocol#safety-limits)の `safety_limits` セクションに対応します。

## ステップの追加

**Add Step** をクリックして、利用可能なステップタイプの分類メニューを開きます：

**一般的なステップ：**

* **Charge** — 定電流、定電圧、定電力、または C-rate 充電
* **Discharge** — 定電流、定電圧、定電力、または C-rate 放電
* **Rest** — 開回路休止期間
* **Drive** — CSV ファイルからのドライブサイクル

**高度なステップ：**

* **EIS** — 電気化学インピーダンス分光法スイープ
* **Waveform** — カスタム波形ステップ
* **Ambient temperature** — プロトコル途中での周囲温度の変更
* **Step block** — ステップを名前付きの繰り返し可能なブロックにグループ化

**制御フロー：**

* **Control** — 変数の設定またはプログラマティックロジックの追加
* **Subroutine** — 再利用可能なステップシーケンスの呼び出し
* **Increment cycle number** — サイクルカウンターの進行
* **End / Pause** — プロトコルの終了

各ステップはスライドアウトエディタで開き、パラメータ、制御モード、終了条件を設定します。

## ステップの編集

任意のステップカードをクリックしてエディタを開きます。ステップタイプに応じて、以下を設定できます：

* **Mode** — 制御モード（C-rate、Current、Power、または Voltage）
* **Value** — セットポイント。固定値または `input["..."]` 構文を使用したパラメータ化された式
* **Duration** — 最大ステップ持続時間（秒）
* **End conditions** — 1つ以上の終了条件（電圧、電流、C-rate、容量、温度、または持続時間の閾値）。微分ベースの終了条件（`d/dt`）にも対応
* **Variables** — ステップ完了後に値を計算する `set_variable` エントリの定義
* **Notes** — 自由テキストの注釈

<Tip>
  ステップの値と終了条件で **Fixed** と **Input** を切り替えることで、
  パラメータ化されたプロトコルを作成できます。Input 式は
  [UCP リファレンス](/ja/simulate/universal-cycler-protocol#parameterized-steps-with-input)
  に記載されている `input["name"]` 構文を使用します。
</Tip>

### ドライブサイクルステップ

Drive ステップでは、時間-電流または時間-電力プロファイルを含む CSV ファイルをアップロードできます。ビルダーはアップロードされた波形のチャートプレビューを表示し、ファイル名からステップ名を自動設定します。

### 終了条件

各終了条件は、変数、演算子（`<` または `>`）、および閾値を指定します。以下の設定も可能です：

* **微分終了条件** — 変数の変化率（`d/dt`）に基づいて終了
* **Goto** — 条件が満たされたときに名前付きステップブロックにジャンプ

## ステップの整理

プロトコルビルダーは、ステップの順序と構造を管理するためのツールを提供します：

* **上下に移動** — リスト内でステップの順序を変更
* **複製** — ステップ（またはネストされたすべてのステップを含むブロック全体）のコピーを作成
* **ブロックにラップ** — 複数のステップを選択してオプションの `repeat` 回数を持つ新しいステップブロックにグループ化
* **ブロックに移動** — 選択したステップを既存の名前付きブロックに移動
* **ブロックから取り出す** — ブロック内のステップを親レベルに昇格

ステップブロックは任意のネストをサポートしているため、ブロックを他のブロック内に配置して複雑なループ構造を作成できます。

## YAML プレビューとインポート/エクスポート

右パネルには生成された YAML がリアルタイムで表示されます。このパネルから以下の操作が可能です：

* **クリップボードにコピー** — 完全な YAML をクリップボードにコピー
* **ダウンロード** — プロトコルを `.yaml` ファイルとして保存
* **アップロード** — 既存の `.yaml` または `.yml` ファイルをインポートしてエディタに読み込み
* **手動編集** — テキストエディタに切り替えて YAML を直接編集し、変更をビジュアルエディタに反映

<Note>
  アップロードされた YAML および手動で編集された YAML は、適用前にバリデーションされます。
  YAML にエラーが含まれている場合、バリデーションメッセージが表示され、
  エラーが解決されるまで変更は適用されません。
</Note>

## バリデーション

プロトコルビルダーは2つのレベルでプロトコルをバリデーションします：

1. **フロントエンドバリデーション** — 編集中に構造、必須フィールド、一般的なミス（重複するブロック名や不足している終了条件など）をチェック
2. **バックエンドバリデーション** — シミュレーションエンジンとの互換性を含む、より詳細なチェックのためにプロトコルをサーバーに送信

バリデーションエラーは、グローバル設定とステップリストの間にアラートとして表示されます。シミュレーションでプロトコルを使用する前に、報告された問題を修正してください。

## 次のステップ

<CardGroup cols={2}>
  <Card title="UCP リファレンス" icon="arrows-rotate" href="/ja/simulate/universal-cycler-protocol">
    Universal Cycler Protocol YAML 形式の完全なリファレンス。
  </Card>

  <Card title="実験テンプレート" icon="flask-vial" href="/ja/simulate/experiment-templates">
    一般的なバッテリーテストプロトコル用の組み込みテンプレートを使用。
  </Card>
</CardGroup>
