# 手順

> 操作員がユニットで開始するものです。実行の時間の幅、それが組み立てるレシピ、データログ、別名セット、判定、尋ねる項目、監視する発生記録、出すアクション、そして完了した実行が生むものです。

**手順**は、操作員がユニットで開始するものです。実行の枠組み（方式と、時間指定の実行ならその長さとサイクル数）に、モデルの段取りのライブラリへの任意の参照が加わります。そのページは、それが組み立てる実行そのものとして読めます。起きることごとに 1 つの段があり、それぞれが、今の選択が何を生むかを述べます（「1 分 30 秒 のサイクルを 3 回」、「500 ms ごとにチャネル 6 個を記録します」）。何も選んでいない段も、薄いまま見えています。実行が何をするかという形には、それがしないことも含まれるからです。手順は Process > モデル > モデル > 段取り > **手順**の下にあり、**レシピと判定の編集**の権限が要ります。手順を用意して開始するのは、運転の下のユニットの行です（[実行記録とコメント](process-runs)を参照）。

## 手順のフォルダー {#the-procedures-folder}

**手順**の行を選ぶとフォルダーのページが開き（「操作員がユニットで開始するものです。適用するレシピ、それを判定する判定、記録するデータログ、そして取り込むメタデータです。」）、手順 1 つにつき 1 枚のカードが名前順に並びます。カードを押すとそれが開き、X が取り除きます。1 つもないときは「まだ手順がありません。追加してください。」と出ます。

| 指令 | 何をするか | 灰色になるとき（状況） | 描かれないとき（ロール） |
| --- | --- | --- | --- |
| **手順**（詳細のバー、フォルダーを選んだとき。右クリック**手順を追加**） | `手順 <n>` を足します。即時、何も参照せず、必須の項目だけを尋ね、何も監視せず、何も出さず、生産を数えません。行はそのグループに足され、そこで強調表示されて見える位置までスクロールされます。開くのはそのカードです。 | どれか 1 つのユニットが実行に占められているとき、またはランタイムが停止しているとき。 | レシピと判定の編集がないとき。 |

## 手順のページ {#the-procedures-page}

見出しには名前と、「操作員がユニットで開始するものです。実行に与える時間の幅、適用し、記録し、名前を付け、判定するのに使うモデルのライブラリ、そして何を出すかです。」の行と、方式のピルが載ります。時間指定の手順には、長さとサイクル数のピル（「90000 ms ×3」）も載ります。組み立てが検証を通らないときは、見出しの下の注意書きが理由を言います（下の「検証」を参照）。下書きはそれでも保存されます。どの項目も自動で保存し、ステーションが拒んだ書き込みは、その欄を元に戻します。

### 定義 {#definition}

| 項目 | 何であるか | 値 / 既定 |
| --- | --- | --- |
| **名前** | ツリーでの呼び名、どのユニットの手順の選択欄での呼び名、そして実行記録ファイルでの呼び名です。名前を変えても、そのコードが変わることは決してありません。 | 自由な文字。作成時は `手順 <n>` です。 |
| **備考** | それを読む人のための自由な文字です。 | 複数行。既定は空です。 |

### 実行が行うこと {#what-a-run-does}

5 つの段で、それぞれが、手を伸ばすライブラリの記号、その名前、今の選択の結果を 1 行で、そしてそれを決める項目を持ちます。結果の行の中の数値（1 分に満たない長さの秒数、サンプルの数）は、ステーションの数値の形式（[言語と形式](settings-localization)）で書きます。

| 段 | 項目 | 値 / 既定 | 結果の行 |
| --- | --- | --- | --- |
| **時間の幅** | **方式**：実行の枠組みです。 | **即時**（既定）。1 発で、当てて、1 行を記録して、1 度判定します。**時間指定**：区切られた時間の幅で、繰り返せます。**制御あり**：終わりを決めず、開始と停止で区切ります。 | 即時：「1 度だけ適用し、記録し、判定して終わります。」制御あり：「操作員が止めるまで実行します。」 |
| | **所要時間（ms）\***（時間指定のみ）：時間の幅の長さです。 | ミリ秒の数。負の入力は 0 として保存されます。時間指定の方式では必須で、正の数でなければなりません。実行の仲間はみな、この 1 つの時間の幅を共有します。 | 「実行の長さは 1 分 30 秒です。」または「長さを決めてください。長さのない時間範囲は何も記録しません。」 |
| | **サイクル数**（時間指定のみ）：その時間の幅を何回繰り返すかです。全体で 1 件の実行記録になります。 | 1 以上（1 未満の入力は 1 として保存されます）。既定は 1 です。判定はサイクルごとに起点を取り直し、不合格のサイクルが数えられます。 | 「1 分 30 秒 のサイクルを 3 回、合計 4 分 30 秒 実行します。」 |
| **適用** | **レシピ**：当てる[レシピ](process-recipes)です。 | 「（なし）」か、モデルのレシピです。方式に種類が合わないレシピは「`<name>`（合いません）」として並び、使えない状態になり、理由がツールチップに出ます（「時間指定の方式には、時間指定のレシピが必要です。即時の設定には、時間の流れがありません。」または「`<Mode>` の方式には、即時のレシピが必要です。時間のプロファイルには、1 つの時点がありません。」）。時間指定のレシピは、レシピのページが描くのと同じ下見で、段の下に自分のプロファイルを描きます。 | 「設定値を書き込みません。」、「開始時に設定値 4 個を書き込みます。」、「開始時に設定値 4 個、終わりに設定値 2 個を書き込みます。」、「2 分 30 秒 かけて 3 区間を進め、終わりに設定値 2 個を書き込みます。」 |
| **記録** | **データログ**：記録する[データログ](process-datalogs)です。 | 「（なし）」か、モデルのデータログです。 | 「何も記録しません。この実行記録にデータログは残りません。」、「500 ms ごとにチャネル 6 個を記録します。」、そして時間指定の時間の幅では、さらに「チャネルあたり約 540 サンプルです。」 |
| **名前** | **別名セット**：手順に固定する[別名セット](process-aliases)です。 | 「（なし）」か、モデルの別名セットです。その組は、手順がユニットに用意され、そのユニットの別名がそれと違うときに、ユニットへ適用されます。実行の中に固定される別名は、ユニット自身のものです。 | 「ユニットは今のチャネル名のままです。」、「この手順がユニットに用意されると、そのユニットのチャネル 5 個の名前を変えます。」 |
| **判定** | **判定**：実行がそれに照らして判断される[判定](process-evaluations)です。 | 「（なし）」か、モデルの判定です。 | 「総合判定を出しません。実行記録は判定なしで終わります。」、「判定基準 4 個を判定します。重大 の不合格で実行記録を中止します。」、「判定基準 4 個を判定します。不合格でも実行記録を中止しません。」 |
| | **不合格で中止する重大度 ≥**（判定を選ぶと描かれます）：この重大度以上で確定した不合格の判定基準が出た時点で、実行を終わらせます。サイクルのある実行では、これが続けるか止めるかの舵です。しきい値を決めると、それ以上で不合格になった最初のサイクルで試験の全体が終わり、**（中止しない）**なら、すべてのサイクルを走らせて、不合格の数を数えるだけです。 | **（中止しない）**（既定）、**軽微**、**重大**、**致命的**。 | 上の判定の行にまとめて出ます。 |

### メタデータ {#metadata}

「開始時に尋ねる」項目を数えるピルを見出しに持つ 1 枚のカードが、実行が何を尋ねるかと、その連番の項目に効く 2 つのものを持ちます。

| 操作 | 何であるか | 値 / 既定 |
| --- | --- | --- |
| チェックの一覧 | モデルの[メタデータの一覧](process-metadata)の項目 1 つにつき 1 つのチェックが、一覧の順に並び、`<name>（<kind>）` という名札が付きます。必須の項目には `<name> *（<kind>）` です。 | 必須の項目はチェックが付いたまま固定されます（「必須の項目は、どの手順でも尋ねます」）。ほかはチェックなしで始まります。チェックを付けると、開始の問い合わせと操作パネルのメタデータのカードが尋ねるものに、それが加わります。一覧に項目が 1 つもないとき、カードは「一覧にまだ項目がありません。モデルの「メタデータ」で追加してください。」と言います。 |
| **手順のコード** | 「手順のコード」を含む連番の項目が組み立てに使う、動かないコードです（「「手順のコード」を含む、尋ねるすべての連番の項目が、これを読みます。」）。手順の名前を変えても、これが変わることは決してありません。 | 自由な文字で、欄を離れたときに効きます。入力例は「使うまでは任意」です。 |
| **カウンター**（尋ねる連番の項目が手順ごと、または手順とユニットごとに数えるときに描かれます） | そういう項目 1 つにつき 1 行です。手順ごとなら「この手順」という名札の 1 行、手順とユニットごとならモデルのユニット 1 台につき 1 行です。どの行も**最後に出した値**と、編集できる**次**を見せ、次が最後に出した値と同じかそれ以下の間は「識別子が重複する可能性があります」と警告します。 | 次は 0 から、その項目の最大値までを受け付けます。その外の入力は「「`<field>`」の次の値は、0 から `<max>` までにしてください。」と言って拒まれます。行の下の助けの文は「「最後」は書き換えられません。「次」を下げたり、最大値の後に折り返したりすると、識別子が重複することがあります。」です。 |

### この手順の実行中に監視する発生記録 {#occurrences-armed-during-this-procedure}

ピルが監視する発生記録を数え、チェックの一覧が、モデルのすべての[発生記録](process-occurrences)を名前順に差し出します。チェックの付いた発生記録は、この手順の実行の間、記録された行の上で判定されます。**常時**で監視される発生記録は、チェックと関わりなく見張ります。モデルに 1 つもないとき、カードは「このモデルにはまだ発生記録がありません。モデルの「発生記録」で追加してください。」と言います。

### この手順が出すアクション {#actions-this-procedure-emits}

ピルが選ばれたアクションを数え、チェックの一覧が、モデルのすべての[アクション](process-actions)を一覧の順に差し出します。それぞれに発行の行（「開始時のラベル、完了時のラベルとレポート」）が付き、選ばれると**準備完了**か**要確認**のピルが付きます。要確認は、そのアクションの差し込み項目についてこの手順に足りないものを並べます（尋ねないメタデータの項目、判定が宣言していない判定基準、走らせないサイクル）。それぞれに手当てが添えられます。発行の順と、このカードの残りは[アクション](process-actions#how-a-procedure-selects-actions)にあります。

### 生産数 {#production-output}

最後のカードは**数える**か**数えない**のピルを見出しに持ち、完了した実行がユニットの生産の指標に何を足すかを宣言します（[生産性](process-productivity)を参照）。

| 項目 | 何であるか | 値 / 既定 | 効果 |
| --- | --- | --- | --- |
| **生産の単位** | 生産の物理的な単位です。 | 自由な文字で、欄を離れたときに効きます。入力例は「個、kg…」で、既定は空です。生産を数えている間、この欄を空にはできません。空の入力は無視されます。 | どの指標でも、数量の名前になります。 |
| **生産と数える時点** | 実行のどの区切りを生産と数えるかです。 | **生産を数えない**（既定）、**完了した実行記録ごと**、**完了したサイクルごと**、**完了した実行記録ごとに固定の数量**。生産の単位を決めるまで、数える方式は使えません（「先に、物理的な生産の単位を決めてください。」）。サイクルの方式は、時間指定の方式の外では使えません（「サイクルの完了は、時間指定の手順にしかありません。」）。効いている名前付きの数量がこの手順を合計している間は「生産を数えない」が使えません（「先に、生産性の画面にある名前付きの数量から、この手順を外してください。」）。それはモデル自身の数量と、切り離したユニットの数量です。モデルに従うように戻したユニットは、持っていた数量を保ちますが、また切り離すまで、それは何も数えません。 | 説明の行：「実行記録のどの区切りを生産と数えるか、そしてそこに達したときにいくつ足すかです。」効果：「完了した実行記録 1 件につき 個 を 1 つ生産します。スナップショットとその場の判定は数えません。」、「完了したサイクル 1 回につき 個 を 1 つ生産します」…、「完了した実行記録 1 件につき kg を 25 生産します」…、または「この手順は生産数に加算しません。」数える方式を選ぶと、数量は 1 に戻ります。効果の中の数量は、ステーションの数値の形式で、持つ桁のまま最大 6 桁まで書きます。 |
| **1 回の完了あたりの数量**（固定の方式） | 完了した実行が足す、まとまりの数量です。 | 正の数。既定は 1 です。 | |
| **基準の生産速度**（生産を数えている間） | 目標とする生産の速さです（「経過時間に対して測ります。一時停止や再開も含みます。」）。 | 正の数か空。既定は空です。これがなくても数量と実際の速さは求まりますが、生産性の割合は出ません。 | |
| **基準の期間**（生産を数えている間） | 基準の生産速度の時間の土台です（「指標は、これを 1 時間あたりの生産数に換算します。」）。 | **1 時間あたり**（既定）、**1 日あたり**。 | |

中止された実行と失敗した実行は、数量 0 で自分の生産の記録に封をします。完了したサイクルは、あとのサイクルがその実行を中止させても、数えられたまま残ります。

## 検証 {#validation}

見出しの下の注意書きは、開始が守らせる関門でもあり、次のどれかを言います。

- 「実行するものがありません。この手順は、データログもレシピも参照していません。」
- 「判定は、記録した行に対して行います。この手順は判定を持っていますが、データログがありません。」
- 「時間指定の方式には、長さが必要です。長さを決めてください。」
- 「即時の方式には、即時のレシピが必要です。レシピなしでもかまいません。時間のプロファイルには、1 つの時点がありません。」
- 「制御ありの方式には、即時のレシピが必要です。レシピなしでもかまいません。設定値は開始時に、安全な状態は停止時に書き込みます。」
- 「時間指定の方式には、時間指定のレシピが必要です。レシピなしでもかまいません。即時の設定には、時間の流れがありません。」
- 「レシピのプロファイル（*N* ms）は、時間範囲（*M* ms）より長くなっています。」
- 「手順「*名前*」が完了サイクルを数えられるのは、時間指定の方式のときだけです。」、「手順「*名前*」の生産量は、有限の正の数でなければなりません。」、「手順「*名前*」の回数で数える生産は、1 回の完了につきちょうど 1 単位でなければなりません。」、「手順「*名前*」には、生産を数える単位が必要です。」
- 有効で、監視されていて、条件が検証を通らない発生記録には「発生記録「*名前*」は成り立ちません。…」
- 「発生記録「*名前*」は「Channels.*チャネル*」を監視しますが、この手順のデータログはそれを記録しません。」発生記録は記録された列の上で判定されるので、データログが載せていないチャネルを見張っても、実行の全体で信号を取得不可と印を付けることしかできません。
- 「発生記録「*名前*」は、記録したサンプルを監視します。この手順はこれを有効にしていますが、データログがありません。」

参照しているライブラリの項目を削除しても、手順は壊れずに力を弱めます。参照が空になり、その段は、それなしで今どうするかを述べます。

## 手順を削除 {#remove-procedure}

**手順を削除**は、手順を選んだときの詳細のバーの危険のまとまり、その右クリックのメニュー、そしてフォルダーのページのカードの X にあります。先に尋ねます（「手順を削除」、「モデルからこの手順を削除します。」）。その手順は、生産性の画面でそれを合計していたすべての名前付きの数量からも、モデルの層でも、各ユニットの層でも外れます。信号源がなくなった数量は、それと一緒に消えます。レシピと判定の編集が要り、エンジニアリングロックの下とランタイムの停止中は灰色になります。その手順の記録された実行記録は、履歴に残ります。

## 手順がしないこと {#what-a-procedure-does-not-do}

- ここでは何も開始しません。ユニットが、[運転](process-operate)の下の自分の行でそれを用意して開始するか、それを選ぶ自動化が開始します（[自動化と停止インターロック](process-automation)を参照）。
- ユニットごとに何も持ちません。どのユニットも、自分のバインドの上で同じ組み立てを走らせます。
- 自分のアクションや発生記録の順を決めません。順はモデルのものです。
- 自分のテンプレートは持ちません。実行が何を印刷し、何を発行するかは、アクションのものです。
