# インターロック

> ユニットごとの停止インターロックのラッチの、永続する履歴。作動、信号源が健全に戻ったこと、そして誰が行ったかを添えた手動の再投入です。

[イベント](events)のインターロックのタブ（`/events?view=interlocks`）は、**停止インターロック**の永続する時系列です。停止インターロックとは、機械が外から止められたときに実行を終わらせるために、モデルがユニットごとに見張るブール値の信号のことです。見るには**イベントの表示**が要り、書き出すには**履歴のエクスポートとインポート**が要ります。インターロックは [Process > 定義 > 自動化](process-automation)で設定し、ダッシュボードのインターロックのコンポーネントかユニットの画面から再投入します。このタブは記録するだけで、何も変えません。

[イベント](events#how-the-three-timelines-behave)にある 3 つの時系列の共通のふるまいに従います。

## 3 つの遷移 {#the-three-transitions}

インターロックの監視は、設定された信号源を 100 ミリ秒ごとに読みます。読むのは Connector か Logic がすでに公開している値と品質だけで、式もデバウンスもありません。ユニットのラッチは、取得不可（まだ正しい読み値がない）、正常、作動、再投入待ちの間を動きます。そのうち 3 つの動きが記録簿に書かれます。

| 遷移 | いつ記録されるか | メッセージ |
| --- | --- | --- |
| 作動 | 最初の正しい読み値で構えたあと、信号源が設定された作動の極性を伝えたか、品質を失いました。ラッチは残る形で保たれ、そのユニットでの新しい実行はすべて拒まれ、書き込める信号源は塞がれ、進行中の実行は理由 StopInterlock とともに中止 / 不合格として終わります。再投入を待っていたユニットがもう一度作動すると、新しい作動が記録されます。 | 「信号源が、設定した作動値（真）を報告しています。」（または「（偽）」）、あるいは「インターロックが働いた後、信号源が使えないか品質が悪い状態です。」 |
| 信号源が健全 | ラッチが掛かっている間に、信号源が安全側の値の正しい読み値へ戻りました。誰かが再投入するまで、ユニットは塞がれたままです。 | 「信号源は安全側に戻りました。手動での再投入が必要です。」 |
| 再投入済み | 信号源が正しく安全で、ユニットが実行の後始末で塞がっていないときに、人がラッチを外しました。その人の名前とともに記録されます。 | 「インターロックのラッチを手動で再投入しました。」 |

監視が起動中や再開中（公開せずに読んでいる間）に観測された遷移は、取っておかれ、次に公開する読み取りのときか、そのあとに続く再投入の瞬間に書かれます。そのため、再投入が、それが答えている安全側の変わり目より先に記録されることはありません。1 つのユニットの中では、記録されるどの時刻も 1 ミリ秒以上あとになるので、行の順があいまいになることはありません。

## 検索と絞り込み {#search-and-filter}

| 操作部 | 値 | 何をするか |
| --- | --- | --- |
| 検索 | 入力例は「モデル、ユニット、信号源、実施者、メッセージを検索」 | モデルの名前、ユニットの名前、信号源のキーと名前、再投入を行った実施者、メッセージに対する「含む」の一致です。 |
| 遷移 | **すべての遷移**（既定）、**作動**、**信号源が健全**、**再投入済み** | 1 つの遷移の種類だけを残します。 |
| 再読み込み | | 記録簿を読み直します。ツールチップは「インターロックのイベントを再読み込み」です。 |
| エクスポート | **CSV で書き出す…**、**JSON で書き出す…** | 検索と遷移の絞り込みと期間に一致するイベントをすべて、ページを次々にたどって書きます。今並んでいる行だけではありません。**履歴のエクスポートとインポート**があるときだけ描かれ、一覧が空の間は灰色になります。 |

## 行 {#the-rows}

| 行の部分 | 内容 |
| --- | --- |
| 時刻 | その遷移の日付と時刻です。 |
| 点 | 作動には重大、信号源が健全には注意、再投入済みには中立です。 |
| 名前 | その当時のユニットの名前です。 |
| 要約 | 「遷移 · モデル / ユニット · 信号源 = 値 · 品質 良好」です。たとえば「作動 · プレス 40 / セル A · EmergencyStop = 真 · 品質 良好」です。値は真、偽、取得不可と読め、品質は良好か取得不可と読めます。 |
| レベル | 遷移の言葉です。作動、信号源が健全、再投入済みのいずれかです。 |

## 詳細のパネル {#the-detail-panel}

行を選ぶと、遷移のバッジとユニットの名前、完全な時刻、要約の行、メッセージ、そして 3 枚のカードを持つパネルが開きます。

| カード | 項目 | 内容 |
| --- | --- | --- |
| イベント | レベル | 遷移です。 |
| イベント | イベント ID | この遷移についての記録簿の識別情報です。 |
| インターロックのスナップショット | 遷移 | 作動、信号源が健全、再投入済みのいずれかです。 |
| インターロックのスナップショット | 記録簿の連番 | 記録簿へのその行の挿入番号です。 |
| インターロックのスナップショット | モデル、モデル ID | その当時のモデルの名前と、その変わらない識別子です。 |
| インターロックのスナップショット | ユニット、ユニット ID | その当時のユニットの名前と、その変わらない識別子です。 |
| 固定した信号源 | 信号源 | その当時に見張っていたタグか変数の名前です（読めなかったときは「取得できない信号源」、変数がもう存在しなかったときは「削除された変数」）。 |
| 固定した信号源 | 信号源のキー | 名前によらない信号源の識別情報 `tag:<id>` または `var:<id>` で、名前を変えた信号源も自分の履歴に一致し続けます。ユニットに信号源が設定されていなかったときは `unit:<id>` です。 |
| 固定した信号源 | 作動の極性 | 「真で作動」または「偽で作動」。ブール値のどちらの読み値が実行を終わらせるかです。 |
| 固定した信号源 | 観測した値 | 真、偽、または取得不可（信号源を読めなかったか、ブール値に変換できなかったとき）です。 |
| 固定した信号源 | 品質 | 良好、または取得不可です。 |
| 固定した信号源 | 記入者 | 再投入済みのときは、再投入した画面でサインインしていたユーザーの表示名です（誰もいなかったときは「未サインイン」、名前が届かなかったときは「不明な操作員」）。作動と信号源が健全のときは「自動」です。 |

**イベントをコピー**は 1 行をコピーします。「時刻 | インターロック | 遷移 | ユニット | 要約 | メッセージ | EventId=… | ModelId=… | UnitId=… | SourceKey=… | SourceName=… | TripWhenTrue=… | QualityGood=… | ObservedValue=… | Author=…」です。

## エクスポートの列 {#export-columns}

CSV と JSON は同じ項目をこの順に持ちます。`Timestamp`（CSV の見出しは時刻の基準を足して「Timestamp (UTC-03:00)」になります）、`JournalSequence`、`Transition`（生の名前 `SourceSafe` で書きます）、`Model`、`ModelId`、`Unit`、`UnitId`、`SourceKey`、`SourceName`、`TripWhenTrue`、`QualityGood`、`ObservedValue`（取得できないときは空）、`Author`（自動の遷移では空）、`Message`、`EventId` です。JSON は `TimeZone` と `Events` を持つ包みです。ファイル名は `interlock-history-<yyyyMMdd-HHmmss>.csv` と `.json` です。CSV はほかのエクスポートと同じく、ステーションの小数の区切り記号の設定に従います。小数点が点なら並びの区切りは `,`、小数点がコンマなら `;` です。`=`、`+`、`-`、`@` で始まるます目には、表計算がそれを文字として読むよう、アポストロフィーを前に付けます。

## 遷移がほかにどこへ記録されるか {#where-else-a-transition-is-recorded}

どの遷移も Process の領域にコンソールの行を残します。「Interlock tripped: …」は警告として、「Interlock source returned safe: …」と「Interlock rearmed: …」は情報として出て、それぞれにモデル、ユニット、信号源、極性、品質、値が付きます。作動が終わらせた実行は、理由 StopInterlock とともに[履歴](histories)に自分の記録を保ちます。保たれるラッチそのものは、監視が再投入まで持つ別の行で、このタブには出ません。

## 空の状態と状態の行 {#empty-states-and-the-status-line}

- 「インターロックのイベントはまだありません」と、「インターロックの作動、信号源が健全になった変わり目、手での再投入が、ここに出ます。」
- 「この絞り込みに合うインターロックのイベントはありません」と、「遷移や検索の語を変えると、この履歴が広がります。」
- 状態の行は「表示 N 件 · 1 ページ目」と読め、検索か遷移か期間が効いているときは「 · 絞り込みあり」が続きます。右側には「1 件を選択中」と「更新 hh:mm:ss」が出ます。

## インターロックのタブがしないこと {#what-the-interlocks-tab-does-not-do}

- インターロックを有効にすることも、その信号源や極性を選ぶことも、ユニットをモデルの既定から切り離すこともしません（[Process > 定義 > 自動化](process-automation)）。
- 再投入もしません。再投入の指令はインターロックのコンポーネントとユニットの画面にあり、正しく安全な信号源と、実行の後始末が済んだユニットを必要とします。
- ラッチの実時間の状態（取得不可、正常、作動、再投入待ち）も見せません。それはユニットの操作パネルとインターロックのコンポーネントの仕事です。まだ再投入を待っているユニットは、ここでは、あとに続く再投入済みのない信号源が健全の行によってだけ見分けられます。
- 最初の正しい読み値の前の取得不可の状態は遷移ではないので、行を残しません。
- ユニットや日付による絞り込みはありません。ユニットかモデルの名前で検索してください。
