# Connector

> Connector のページ：「通信」欄と、そのツリー（ステーションに追加したドライバーとその回線、ブローカー、フォルダー、機器、タグを収めるドライバーのフォルダー、OPC UA サーバー、Modbus サーバー、MQTT ブローカーを収めるサーバーのフォルダー）、そのツリーをたどる新規…メニュー、すべてのタグが持つ 2 つの識別名、そして編集を左右する権限とロック。

Connector は、現場の機器がアプリケーションのほかの部分から読めるデータになる場所です。ナビゲーションバーにある Connector というページで、**Connector の表示**を持つロールであれば開けます。ページは左の「通信」欄、つまり Connector が話す相手をすべて並べたツリーと、右の詳細パネル、つまり選んだノードをその場で編集する面を組み合わせています。ページ自身の説明にもあるとおり、「ノードを選ぶとその場で編集でき、変更は自動で保存されます。」

## 「通信」欄 {#the-communication-column}

この欄は「通信」という見出しを持ち、上から順に、4 つの状態チップが付いた検索ボックス、ツリー、そして欄のコマンドを並べたフッターが入っています。ツリーのいちばん上の階層には、同じ種類の 2 つのフォルダー、**ドライバー**のフォルダーと**サーバー**のフォルダーがあり、ページを開いたときはどちらも開いています。

### ドライバーのフォルダー {#the-drivers-folder}

最初のフォルダーには、ステーションに追加したドライバーが、下に何があってもなくても、アルファベット順に平らに並びます。フォルダーの行には**ドライバー**、その下のドライバーが持つ機器の台数（「機器 3 台」）、そしてそれらのドライバーをまとめた稼働状態のドットが並びます。選ぶと、このステーションが持つすべてのドライバーのカタログが開きます。追加したものが先頭の「このステーション」に、残りはつながる設備の種類ごとにまとまります。ドライバーの追加と削除はここで行い、どちらのコマンドも[ドライバーの一覧とドライバーのページ](connector-drivers)で説明しています。

| 状況 | ドライバーの下にあるもの |
| --- | --- |
| 新しいステーション | ドライバーはありません。欄はドライバーのフォルダーを選んだ状態で開くので、最初に目に入るのはカタログです。 |
| 以前のバージョンから更新したステーション | すでに使っていたドライバー、つまり機器、シリアル回線、ブローカー、フォルダーのいずれかを持つドライバーです。 |
| ドライバーを追加したとき（カタログのその行の**ドライバーを追加**、または新規… > **ドライバーを追加**） | そのドライバーが下に何もない状態で並び、カタログの「このステーション」でその行が強調表示されます（ドライバーのフォルダーは画面に残ります）。行には「機器 0 台」と出ます（Modbus RTU では「回線 0 本 · 機器 0 台」、MQTT では「ブローカー 0 台 · 機器 0 台」）。 |
| ドライバーの最後の機器、シリアル回線、ブローカー、フォルダーを削除したとき | ドライバーは残り、「機器 0 台」に戻ります。 |
| ドライバーを削除したとき（カタログのその行、そのドライバーのバー、または右クリックメニューの**ドライバーを削除**） | 何も残りません。ドライバーはツリーから出て、カタログのその行は元のカテゴリーに戻ります。この削除は何も消さないので、ドライバーが機器、シリアル回線、ブローカー、フォルダーのいずれかを持つあいだは拒否されます。また、そのいずれかを持つドライバーは常に追加済みです。 |
| このパッケージに含まれないドライバーを、保存済みの機器が名前で指しているとき | そのドライバーとその機器が、機器が 1 台でも残っている限り並びます。 |

### サーバーのフォルダー {#the-servers-folder}

2 つ目のフォルダーには、ステーションがネットワークに開くものが入ります。ほかのシステムや端末が接続してくる相手です。**OPC UA サーバー** は機器とそのタグを OPC UA クライアントに公開し、**Modbus サーバー** からは PLC、HMI、ビル管理システムがステーションのタグと Logic の変数を読み、**MQTT ブローカー** はネットワーク上の機器が発行するメッセージを受け取ります。3 つの行はいつも、この順番であります。ステーション自身のダッシュボードをほかの端末のブラウザーで開くリモートアクセスは、ここにはありません。レールに独立したページ [リモートアクセス](remote-access) があります。どれもドライバーではなく、子もありません。それぞれが自分の状態（新しいステーションではどれも「オフ」）をドットの横に示し、ドットは待ち受け中は緑、オンなのに届かないときは赤で、どのドットもドライバーのフォルダーやステータスバーには入りません。選ぶとそのパネルが開きます。3 つとも[サーバー](connector-servers)で説明しています。フォルダー自身の行には数もドットもなく、選んでもパネルは開かず、「サーバーを選ぶと、その状態と設定が表示されます。」という一文だけが出ます。

### 検索と状態チップ {#search-and-the-state-chips}

| コントロール | 何をするか |
| --- | --- |
| 検索ボックス（「ドライバー、回線、機器、タグを検索」） | 名前に入力した文字を含む行だけにツリーを絞ります。大文字と小文字は区別しません。ドライバー、シリアル回線、ブローカー、フォルダーが一致すると、その下にあるものはすべて残ります。いちばん上の 2 つのフォルダーの名前が一致したときも同じで、「ドライバー」なら追加したすべてのドライバーが、「サーバー」ならその 3 つの行が残ります。シリアル回線は物理的な組（ポート、ボーレート、形式、タイムアウト）でも、ブローカーはアドレスでも、サーバーは名前でも一致します。一致した枝は入力に合わせて展開します。 |
| **すべて** | 状態では絞りません。 |
| **正常** | 有効で、オンラインか、まだ判断する材料のない機器、回線、ブローカー（ホストがまだ入力されていない機器と、その有効なタグを含みます）、そして有効で、いま上下限の内側の測定値を読めているタグ。オンで、起動に失敗していないサーバー。 |
| **問題あり** | 有効だがオフラインまたは一部応答の機器、回線、ブローカー、そして、ステーションが読んでいる機器にあって、有効だが値がない（機器が接続してから最初の値がまだ届いていないために機器の稼働状態の数から外れているタグを除きます）か、値が代替値か上下限の外にあるか、読み取りが途絶えたタグ。オンなのに起動できなかったサーバー（Modbus サーバーは、ほかのプログラムがそのポートを使っているときも）。 |
| **オフ** | 無効な機器、回線、ブローカー、タグと、無効な機器のすべてのタグ。無効なシリアル回線やブローカーの下にある機器もオフとして数え、そのタグも同じです。オフにしたサーバーもオフに入ります。 |

チップと検索文字は重ねて効きます。選んでいるノードは常に見えたままなので、パネルが見えない行を編集することはありません。下に何もないか空のフォルダーしか持たないドライバーと、ドライバーが 1 つもないあいだのドライバーのフォルダーは、「すべて」のときだけ、または検索が自分の名前に一致したときだけ表示されます。

### ツリー {#the-tree}

形はドライバーごとに決まっています。

- Modbus RTU と MQTT 以外のすべてのドライバー：**ドライバー > フォルダー（最大 2 階層） > 機器 > タグ**。フォルダーが名前順で先に並び、そのあとにドライバー自身の階層に置かれた機器が続きます。
- Modbus RTU：**ドライバー > 回線 > 機器 > タグ**。機器は共有する物理回線にぶら下がり、フォルダーには入りません。
- Generic serial and TCP：両方が並びます。シリアル回線が先に並び、それぞれ**ドライバー > 回線 > 機器 > タグ**となり、そのあとにほかのドライバーと同じくフォルダーとネットワークの機器が続きます。
- SCPI instruments：同じく、シリアル回線が先に並び、そのあとにフォルダーと、TCP や VISA でつなぐ機器が続きます。
- Omron：同じく、シリアル回線が先に並び、そのあとにフォルダーと、ネットワークでつなぐ PLC が続きます。
- MQTT：**ドライバー > ブローカー > 機器 > タグ**。機器は接続を共有するブローカーにぶら下がり、フォルダーには入りません。

ドライバーのフォルダーの下では、ドライバーがアルファベット順に平らに並び、カテゴリーごとのまとまりはありません。機器のタグも、大文字か小文字かにかかわらず名前の順に並びます。ツリーでも、機器のグリッドの型ごとのまとまりの中でも同じで、追加したタグや名前を変えたタグはすぐにその位置へ移ります。ドライバーは、下に何があっても、追加した時点から削除するまでツリーにあります。各行は自分の下にあるものを要約します。

| 行 | 表示するもの |
| --- | --- |
| ドライバー | 名前、「機器 3 台」（Modbus RTU と、回線を持つ Generic serial and TCP、SCPI instruments、Omron は「回線 1 本 · 機器 2 台」、MQTT は「ブローカー 1 台 · 機器 2 台」）、稼働状態のドット。 |
| シリアル回線 | 名前、ポートが失敗したときのエラー印、状態の文字と機器の台数（「オンライン · 機器 2 台」）、稼働状態のドット。 |
| ブローカー | 名前、ブローカーに接続できないときのエラー印、状態の文字と機器の台数（「オンライン · 機器 2 台」）、稼働状態のドット。[MQTT](driver-mqtt#broker-states)を参照してください。 |
| フォルダー | 名前、「機器 2 台」または「空」、サブフォルダーを含む中のすべての機器をまとめた稼働状態のドット。 |
| 機器 | 名前、最後のエラーをツールチップに持つエラー印、続けて「タグ 4 件」、「証明書の承認を待っています」、「ホストがまだ入力されていません」（NI-DAQmx の機器では「NI-DAQmx の機器がまだ入力されていません」、File の機器では「フォルダーがまだ入力されていません」、Database の機器では「サーバーがまだ入力されていません」、LoRaWAN の機器では「DevEUI がまだ入力されていません」または「基地局の EUI がまだ入力されていません」）、または「このパッケージに含まれていないドライバーです。」、最後に稼働状態のドット。 |
| タグ | データ型を表す字形（数値、ブール値、日付、テキスト）、名前、直前の読み取りが失敗したときのエラー印、そして実時間のドット。値が代替値であるか、上下限の段階が異常を上げたか、読み取りが途絶えたときは黄色、タグに値があるあいだは緑、それ以外は灰色です。ステーションが読んでいないタグ、つまり無効なタグや、機器が無効か、無効な回線の下にあるか、ホストがまだ入力されていないタグは、最後に何を表示していても灰色です。 |

ドットの色とこれらの文字は[有効化と稼働状態](connector-health)で説明します。行を右クリックするとその行が選ばれ、そのノードのコマンドバーと同じ内容のメニューが開きます。ロールにできることが何もない行では、メニューは開きません。欄とパネルのあいだの仕切りはドラッグして幅を変えられます。

### フッター：新規…、すべて展開、すべて折りたたむ {#the-footer-new-expand-all-collapse-all}

| コマンド | 何をするか | 灰色になるとき（状況） | 描かれないとき（ロール） |
| --- | --- | --- | --- |
| **新規…** | 欄のメニューを開きます。どの行を選んでいても同じメニューで、**ドライバーを追加**のあとに、追加した各ドライバーの項目が続き、ツリーを機器の**新しいタグ**までたどります（[新規…メニュー](#the-new-menu)を参照）。 | 実行がステーションを占有しているか、ランタイムが停止しているとき（理由はツールチップにあります）。または機器検出のスキャンや Matter のペアリングが進行中のとき（「進行中のスキャンまたはペアリングを終えてから追加してください。」）。 | Connector の構成がないとき。 |
| **すべて展開** / **すべて折りたたむ** | 枝をすべて開くか閉じます。いちばん上の 2 つのフォルダーとドライバーのグループも含みます。すべて折りたたむと、欄にはドライバーとサーバーの 2 つのフォルダーだけが残ります。 | ありません。サーバーのフォルダーには、開ける 3 つの行がいつもあります。 | ありません。 |

### 新規…メニュー {#the-new-menu}

このメニューはツリーを読み、選択は読みません。最初に**ドライバーを追加**があり、区切り線のあとに、追加した各ドライバーの項目がツリーの順に並びます。ドライバーの項目には、まずそのドライバーの下に作れるものが、区切り線のあとにそのドライバー自身の行が並び、その行もまた、受け入れるものと持っているもののサブメニューになって、機器とその**新しいタグ**まで続きます。どの項目も置き場所を名前で示しません。そこまでたどった道筋がそれを示します。

| 項目 | 並ぶもの | 項目の働き |
| --- | --- | --- |
| **ドライバーを追加** | このパッケージが持ち、まだ追加していないドライバーの名前が、ドライバーのカタログと同じ順番で、カテゴリーの名前の下にまとまって並びます。 | カタログのドライバーを追加と同じようにドライバーを追加します。画面はドライバーのフォルダーに移り、カタログでそのドライバーの行が強調表示され、ツリーではフォルダーの下にそのドライバーが並びます。すべてのドライバーを追加済みのときも項目は残り、灰色になります：「このステーションに含まれるドライバーは、すべて追加済みです。」 |
| ドライバー | まず、そのドライバーが受け入れるものがこの順に並びます：**新しい機器**（機器がドライバーの直下に付くドライバー。つまり Modbus RTU、MQTT、Matter 以外）、**新しいシリアル回線**（Modbus RTU、Generic serial and TCP、SCPI instruments、Omron）、**新しいブローカー**（MQTT）、**機器をペアリング**（Matter）、**新しいフォルダー**（機器をフォルダーに入れられるドライバー。つまり Modbus RTU と MQTT 以外）。そのあとに、そのシリアル回線、ブローカー、フォルダー、機器が、ツリーの描く順に並びます。 | それぞれ、ドライバーのページの同じコマンドと同じことをします。機器をペアリングは Matter のページにペアリングのフォームを開き、ネットワークカードに使えるネットワークがないあいだは「先に、機器が参加するネットワークを追加してください。」と示して灰色のままです。 |
| シリアル回線またはブローカー | **新しい機器**、そのあとにその機器。 | その回線またはそのブローカーに機器を作ります。 |
| フォルダー | **新しい機器**（Matter の下ではペアリングのフォームを開き、ペアリングした機器はそのフォルダーに入ります）と**新しいサブフォルダー**（1 段目のフォルダーだけ）、そのあとにそのサブフォルダーと機器。 | そのフォルダーの中に機器、またはサブフォルダーを作ります。 |
| 機器 | **新しいタグ**。 | 機器のタグを追加と同じように、機器にタグを 1 つ追加します。画面は機器のページに移り、タグのグリッドで新しいタグが強調表示されます。 |

作ったものは開きません。画面はその親（ドライバーのフォルダー、ドライバー、回線、ブローカー、フォルダー、機器）のページに移り、ツリーはその親を選んで展開し、新しい行は親の表で強調表示されて見える位置までスクロールされます。強調表示はほかのものを選ぶまで残ります。項目を開くのは、行の**開く**か、ツリーのその行です。このパッケージに含まれないドライバーの下では、新しいタグ以外の項目はすべて「このパッケージに含まれていないドライバーです。」と示して灰色のままです。サーバーのフォルダーにはステーションが持つ 3 つの行があるので、このメニューはサーバーを作らず、タグも並べません。名前はどれも 1 行に収まり、長い一覧はスクロールします。サブメニューは、ポインターがそこへ向かう途中でほかの行を横切っても開いたままです。ポインターがほかの場所で 3 分の 1 秒ほど止まったときに初めて閉じるか、別のサブメニューに替わり、クリックするとすぐに替わります。すでにある機器をフォルダーに移すのは機器のコマンドで、[機器のフォルダー](connector-folders)で説明します。

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

何も選んでいないとき、パネルには「ツリーでドライバー、シリアル回線、機器、タグを選ぶと、内容を見て編集できます。変更は自動で保存されます。」と出ます。ドライバーのフォルダーはカタログを開き、サーバーのフォルダーには「サーバーを選ぶと、その状態と設定が表示されます。」と出ます。ほかのノードは、それぞれ下のページで説明するパネルを開きます。

編集は自動保存です。テキストや数値の入力欄は離れたとき（または Enter を押したとき）、スイッチやチェックボックスは切り替えたとき、コンボボックスは選んだときに保存します。同じ機器を続けて編集すると、最後の操作からおよそ半秒後に 1 回の保存にまとまります。ステーションが拒否した保存はデータベースの内容に戻され、理由はウィンドウ下端の操作ログ帯に出ます。機器が使えなくなる編集（名前が空）は保存されず、パネルが足りないものを伝えます。ページを開いているあいだ、ツリーとパネルの値は 1 秒ごとに更新されます。

## バス識別子とアドレス：タグが持つ 2 つの識別名 {#wire-key-and-address-the-two-identities-of-a-tag}

すべてのタグは 2 つの名前を持ち、その違いが 1 回の変更の重さを決めます。

**バス識別子**は `<Driver>.<Device>:<Tag>`、たとえば `ModbusTcp.Furnace:Temperature` です。Connector が定周期読み出しをし、内蔵の OPC UA サーバーが公開するのはこれで、Process のチャネルがバインドするのもこれ、外部の OPC UA クライアントが見る名前もこれです。機器の部分は、ドライバーの種類に機器の名前をつなげたもので、名前のうち英字でも数字でもない文字はすべてアンダースコアに置き換わります。バス識別子はフォルダーを見ないので、機器をどこに整理してもバス上では何も変わりません。

**アドレス**は `Connector.<Driver>.<Folders…>.<Device>.<Tag>`、たとえば `Connector.Simulated.Air.CompressedAir.HeaderPressure` です。ツリーが見せている経路そのもので、各区切りは同じ規則で整えられ（先頭が数字ならその前にアンダースコアが付きます）、Logic の式、スクリプト、警報の条件、ダッシュボードのバインドが書くのはこれです。機器やタグの名前を変えること、機器をフォルダーに入れること、フォルダーの名前を変えたり削除したりすることは、いずれもアドレスの変更で、アプリケーションは同じ操作の中で古いアドレスを読んでいるすべての箇所を書き換えます。名前の入力欄は、確定する前にいくつの参照が追随するかを先に見せます。[Logic のアドレス空間](logic-address-space)が読むのも同じアドレスです。

機器の名前は、自分のドライバーの中で一意であればよく、大文字と小文字は区別しません。Modbus TCP の機器と OPC UA の機器がどちらも `Furnace` という名前でも構わないのは、バス上の識別が `ModbusTcp.Furnace` と `OpcUa.Furnace` になるからです。1 つのドライバーの下で、有効な 2 台の機器の名前が同じ技術的な区切り（`Line A` と `Line-A`）に整うと衝突が起き、どちらかが勝つのではなく両方が定周期読み出しから外されます。どちらかの名前を変えるか無効にするまで、両方の行に値は出ません。技術的な機器の識別名は 128 文字までです。1 つのドライバーの下では、同じ階層のフォルダーと機器が同じ区切りに整うことも認められません。1 つのアドレスが、展開する枝であると同時に読み取る点であることはできないからです。

Connector のツリーだけを取り込んだり書き出したりする機能はありません。この設定はアプリケーションの[バックアップ](settings-backups)と一緒に運ばれます。

## エンジニアリング上の境界 {#engineering-boundaries}

Connector は実時間で読む面であり続けますが、その構成は 2 つの状況で拒否され、ページはどちらであるかを伝えます。

- **Process の実行がステーションを占有している。** 「エンジニアリングロック中」という見出しの通知バーが、ユニットの操作が進行中で、すべてのユニットが終わるまで構成は読み取り専用のままであること、実行の操作やその他の運転操作は引き続き行えることを説明します。変更を伴うコマンドはすべて描かれたまま灰色になり、理由は「ユニットが実行中の間は構成がロックされます。」です。
- **ランタイムが停止している。** 「ランタイム停止中」という見出しの通知バーが、データ収集、Logic、記録が一時停止しており、ランタイムを再起動するまですべての変更が拒否されること、構成と記録済みの実行記録はそのまま残ることを伝えます。同じコマンドが「ランタイム停止中」という理由で灰色になり、通信が止まるためツリーの値は空欄になります。

どちらの状況でも、読むこと、検索すること、選ぶこと、行の「開く」操作、そしてタグの**値をコピー**は引き続き使えます。

## 権限 {#permissions}

このページが何を描くかは、[権限](users-permissions)に全体が載っている 3 つの Connector 用のビットが決めます。

| 権限 | 何を開くか |
| --- | --- |
| **Connector の表示** | ページ、ツリー、そしてすべてのパネルを読み取り専用で開きます。編集の部品は上に一言添えて不活性のまま保たれます：「Connector を変更するには「Connector の構成」の権限が必要です。」このロールが決して使えないコマンドは描かれもしません。新規…、ドライバーを追加とドライバーを削除、追加とペアリング、有効化と無効化、再接続、機器の複製、削除のまとまり、「開く」以外の行の操作、タグを追加、タグ検出、一括編集のチェック、書き込みの入力欄、そして差し替えの仕組みです。再読み込み、開く、値をコピーは残ります。 |
| **タグの校正** | 表示が与えるものすべてに加えて、タグの「校正」の段階、つまりそのチェックボックス、2 つの入力欄、2 点調整の補助が使えます。ほかは編集できるようになりません。[校正](connector-calibration)を参照してください。 |
| **Connector の構成** | ページ全体です。ドライバーの追加と削除、シリアル回線、ブローカー、フォルダー、機器、タグの作成、変更、有効化、無効化、削除、機器検出、ペアリング、書き込み、参照の差し替え、OPC UA サーバーとその構成とクライアントアクセス、Modbus サーバーとそのレジスターマップ、そして MQTT ブローカーとその認証ができます。 |

どのコマンドも実行時に権限をもう一度読むので、その後にロールが変わっていた場合、いったん描かれたコマンドは実行されず、同じ文言で拒否されます。

## この分野のページ {#in-this-area}

| ページ | 扱う内容 |
| --- | --- |
| [ドライバーの一覧とドライバーのページ](connector-drivers) | ドライバーのフォルダーが開く、ステーションのすべてのドライバーのカタログ、機器の表とコマンドを持つドライバーのページ、そして「このパッケージに含まれていないドライバー」という状態。 |
| [サーバー](connector-servers) | OPC UA サーバー、Modbus サーバー、MQTT ブローカー：それぞれのオンとオフ、OPC UA サーバーの構成とクライアントアクセス、Modbus サーバーのポート、クライアント、レジスターマップ、そして MQTT ブローカーのポート、クライアント、認証。 |
| [シリアル回線](connector-lines) | Modbus RTU、Generic serial and TCP、SCPI instruments、Omron ドライバーのシリアル回線：物理的な組、タイミング、状態、ユニットのスキャン、そしてその下に整理された機器。 |
| [機器のフォルダー](connector-folders) | フォルダーの作成、名前の変更、削除、フォルダー間の機器の移動、そしてフォルダーがアドレスをどう組み立てるか。 |
| [機器](connector-devices) | 機器のページ：見出しとコマンド、ドライバーごとの「機器」と「接続」のカード、資格情報と証明書、一括編集付きのタグの表、複製と衝突。 |
| [タグ](connector-tags) | タグのページをカードごとに：全般、ドライバーごとの「信号源」、値の変換、現在の値、使っている場所。 |
| [値の変換経路](connector-value-pipeline) | 生の読み取りから工業値までの型の決まった変換と、読み取りが欠けたときの表示。 |
| [校正](connector-calibration) | 校正の段階、2 点調整の補助の手順、そしてタグの校正だけで何ができるか。 |
| [機器検出](connector-discovery) | ドライバーに機器や点を探させ、候補を確認して追加すること、そして Matter の機器のペアリング。 |
| [有効化と稼働状態](connector-health) | どの階層で何がデータ収集に参加するか、ドット、チップ、ステータスバー、最後のエラー、再接続、再読み込み。 |

ドライバーそのものは、プロトコルごとに 1 ページずつ、接続の項目、アドレス指定、型、機器検出、書き込みの挙動を添えて、[ドライバー](drivers)の下にまとめてあります。
