# 機器

> 機器のページ：見出しとコマンド、「機器」のカード、ドライバーごとの項目が並ぶ「接続」のカード、資格情報と証明書、一括編集付きの「タグ」のグリッド、機器の複製、そして重複と名前の衝突の扱い。

**機器**は、ステーションがドライバー越しに話す 1 台の現場設備です。どうやって届くか、そこから読むタグは何か、の 2 つでできています。「通信」欄で機器の行を選ぶか、ドライバー、回線、ブローカー、フォルダーの表にある機器の行で「開く」を押すと、そのページが開きます。Connector の表示で読め、Connector の構成で編集できます。シリアル回線には[シリアル回線](connector-lines)という自分のページがあり、MQTT のブローカーは[MQTT](driver-mqtt#the-broker)で説明しています。

## 機器を作る {#creating-a-device}

| 操作 | 結果 |
| --- | --- |
| 欄のフッターの**新規…** > `<Driver>` > **新しい機器** | ドライバー自身の階層の機器。機器がドライバーの直下に付くドライバーの下に出ます。 |
| ドライバーのページの機器の表にある**機器を追加** | 同じもの。 |
| フォルダーの機器の表、またはその右クリックメニューにある**新しい機器**、または**新規…** > `<Driver>` > `<Folder>` > **新しい機器** | そのフォルダーに整理された機器。Matter の下ではペアリングのフォームが開き、ペアリングしたノードがそのフォルダーに入ります。 |
| シリアル回線の「機器」のカード、または右クリックメニューにある**機器を追加**、または**新規…** > `<Driver>` > `<Line>` > **新しい機器** | その回線の、最初の空きユニット ID を持つ Modbus RTU の機器。Generic serial and TCP ドライバーか SCPI instruments ドライバーの回線では、その回線上のそのドライバーの機器。Omron ドライバーの回線では、0 から 31 のうち空いている最初のユニット番号で PLC を回線に作ります。 |
| ブローカーの「機器」のカード、または右クリックメニューにある**機器を追加**、または**新規…** > MQTT > `<Broker>` > **新しい機器** | そのブローカーの、通常の MQTT の MQTT 機器。 |
| 機器検出の結果にある**機器を追加** | スキャンが見つけた接続先と、チェックしたタグを持つ機器。[機器検出](connector-discovery)を参照してください。 |
| Matter のドライバーのバーにある**機器をペアリング**、または**新規…** > Matter > **機器をペアリング** | ドライバー自身の階層に置かれる、参加処理を終えた Matter のノード。[機器検出](connector-discovery#pairing-a-matter-device)を参照してください。 |
| 機器の**機器を複製** | 選んだ機器の複製で、タグも含みます。 |

新しい機器は「新しい機器」（次は「新しい機器 2」、以下同様）という名前で、有効、読み出し周期 1000 ms、ユニット ID 1、そしてドライバーが使うポート（下の「接続」のカードを参照。Generic serial and TCP ドライバーの機器はポートなしで始まります）で作られますが、開かれません。それを並べるページ（ドライバー、フォルダー、回線、ブローカーのページ）の機器の表で強調表示され、見える位置までスクロールされて、操作ログ帯には「機器「新しい機器」を追加しました。詳細を編集するには、開いてください。」と出ます。その表から作れば画面はそのままで、新規…や右クリックから作れば画面はそのページに移ります。行の**開く**か、ツリーのその行で機器を開きます。パッケージが持たないドライバーの下では機器は拒否されます。Matter でも同じで、そこでの機器はペアリングか機器検出からしか生まれません（「新しい Matter のノードを追加するには「機器をペアリング」を、すでにコミッショニングされたものを追加するには「機器検出」を使ってください。」）。これらの操作はどれも追加済みのドライバーの下で行います。ドライバーの追加は[ドライバーの一覧とドライバーのページ](connector-drivers#row-actions)で説明しています。

ホストで現場設備につなぐドライバー（**ホスト**の欄を持つすべてのドライバー）の機器は、ホストが空のまま作られ、ホストが入力されるまでステーションは接続しようとしません。その点は灰色のままで、行とページには「ホストがまだ入力されていません」と出て、タグは空欄として読まれ、試すアドレスがないうちは接続エラーも出ません。そのあいだ、このコンピューターに向けられることはありません。機器が本当にこのコンピューター上にあるときは `localhost` と入力してください。NI-DAQmx の機器にはホストがありません。同じように**機器の名前**を待ち、名前が入るまで「NI-DAQmx の機器がまだ入力されていません」と表示します（[NI-DAQmx](driver-ni-daqmx#the-ni-daqmx-device-card)を参照）。Fluke NetDAQ の機器はホストを、続いて装置の**ベース チャネル**を待ち、入るまで「ベース チャネルがまだ入力されていません」と表示します（[Fluke NetDAQ](driver-fluke-netdaq#device)を参照）。File の機器は**フォルダーのパス**を待ち、入るまで「フォルダーがまだ入力されていません」と表示します（[File](driver-file#device)を参照）。Database の機器はデータベースの場所（サーバーとデータベース名、ファイル、またはデータ ソース）を待ち、サーバーが入るまで「サーバーがまだ入力されていません」と表示します（[Database](driver-database#the-database-card)を参照）。LoRaWAN の機器は **センサーの DevEUI**（センサー）または **基地局の EUI**（コンセントレーター）を待ち、入力されるまで「DevEUI がまだ入力されていません」または「基地局の EUI がまだ入力されていません」と表示します（[LoRaWAN](driver-lorawan#connection-fields)を参照）。入力されていて 16 進数 16 桁になっていない識別子は待たれず、拒否されます。

ホストが入ったあとは、接続は決して待たされる段取りではありません。Connector は機器を登録し、背後で再試行しながら接続するので、届かない機器があっても何も損はしません。接続がつながるまで、そのタグは空欄として読まれ、そのあいだページは直前の接続エラーを見せます。

## 見出し {#the-header}

名前、「このステーションが話す相手の現場設備 1 台です。どうやって届くのかと、そこから読むタグを決めます。」という一文、そして**基準 URI** のピルが並びます。基準 URI は Connector が接続する正確なアドレスで、「接続」のカードから実時間で組み立てられます（たとえば `modbus+tcp://192.168.0.10:502/1`、`opc.tcp://plc:4840`、`simulated://CompressedAir`）。ホストがまだない機器には基準 URI がないため、ホストが入力されるまでピルは出ません。欄の内容からドライバーが受け付けるアドレスが組み立てられないあいだも、ピルは出ません。たとえば、回線が見つからない Modbus RTU 機器や、回線のページで保存されなかった値を回線が持ったままの機器です。その下には、次の 6 つの知らせのいずれかが出ます。

- **このパッケージに含まれていないドライバー**：「この機器には … のドライバーが必要ですが、このインストールには含まれていないため、オフラインのままです。設定は保たれ、削除もできます。ここでのほかの操作が、読み取る内容を変えることはありません。」「…」の位置には、ドライバーの名前が入ります。
- **このコンピューターには VISA がインストールされていません**（SCPI instruments、VISA でつなぐ機器）：「この機器は VISA を通して測定器につながりますが、このコンピューターには VISA がないため、オフラインのままです。NI-VISA か Keysight IO Libraries Suite をインストールすると接続します。ネットワークポートのある測定器なら TCP でもつなげます。」[SCPI instruments](driver-scpi#visa-on-this-computer)を参照してください。
- **このコンピューターには NI-DAQmx がインストールされていません**（NI-DAQmx、NI-DAQmx のないコンピューター）：「この機器は NI-DAQmx を通して読み取りますが、このコンピューターには NI-DAQmx がないため、オフラインのままです。Ganter Lab には NI-DAQmx が含まれていません。ni.com から無料で入手してインストールすると、今の設定のまま機器が接続します。」[NI-DAQmx](driver-ni-daqmx#ni-daqmx-on-this-computer)を参照してください。
- **証明書の承認を待っています**（OPC UA、Redfish、AVEVA PI、HTTPS の HTTP、TLS の MQTT）：「この現場設備は、このステーションが一度も承認していない証明書を提示したため、まだ何も読み取っていません。設備を立ち上げた担当者とフィンガープリントを照合してから、OPC UA ドライバーのページの「現場設備へのアクセス」で承認してください。」（ドライバー名はその機器のもの）、MQTT の機器なら「この機器のブローカーが、このステーションが一度も承認していない証明書を提示したため、この機器からはまだ何も読み取っていません。ブローカーを管理している担当者とフィンガープリントを照合してから、MQTT ドライバーのページの「現場設備へのアクセス」で承認してください。」と表示します。その証明書を開いたドライバーのページの現場設備へのアクセス（[OPC UA](driver-opc-ua#equipment-access)、[Redfish](driver-redfish#equipment-access)、[AVEVA PI](driver-aveva-pi#equipment-access)、[HTTP](driver-http#equipment-access)、[MQTT](driver-mqtt#equipment-access)）に行く**証明書を確認する**のボタンが付きます。
- **ホストがまだ入力されていません**（有効でホストがまだ空の機器に出る、中立の知らせ）：「ホストが入力されるまで、ステーションはこの機器に接続しようとしません。そのため、まだ何も読み取っておらず、表示するエラーもありません。下の「接続」のカードでホストを入力すると、ステーションが接続します。」機器の名前のない NI-DAQmx の機器では、代わりに **NI-DAQmx の機器がまだ入力されていません** と出ます：「NI-DAQmx の機器名が入力されるまで、ステーションはこの機器に接続しようとしません。そのため、まだ何も読み取っておらず、表示するエラーもありません。下の「NI-DAQmx の機器」のカードで NI MAX が付けた機器名を入力すると、ステーションが接続します。」フォルダーのない File の機器では **フォルダーがまだ入力されていません** と出ます：「フォルダーが入力されるまで、ステーションはこの機器を読み取りません。そのため、まだ何も読み取っておらず、表示するエラーもありません。下の「フォルダーとファイル」カードでフォルダーを入力すると、ステーションが読み取りを始めます。」データベースの場所を示していない Database の機器では、まだ足りないものに応じて **サーバーがまだ入力されていません**、**データベース名がまだ入力されていません**、**データベース ファイルがまだ入力されていません**、**データ ソースがまだ入力されていません** と出ます：「データベースの場所が示されるまで、ステーションはこの機器に接続しません。そのため、まだ何も読み取っておらず、表示するエラーもありません。下の「データベース」カードに入力すると (サーバーとデータベース名、ファイル、またはデータ ソース)、ステーションが接続します。」
- それ以外の場合、エラーのあるシリアル回線やブローカーを経由する機器では、そちらを指す落ち着いた知らせ「この機器はシリアル回線 Bench bus を経由しますが、その回線にエラーがあります。理由は回線のページにあります。」が出ます。そうでなければ、機器自身のエラーがあれば赤で出ます（[有効化と稼働状態](connector-health#last-error)を参照）。

その下で、機器は自分のエラーがあるタグを、ツリーと同じ赤い印のあとに名前で挙げます：「エラーのあるタグ 3 件：C3、Opt_Int、T5」。3 つを超える分は数で示します。それぞれの理由はタグに残ります。機器が接続されていないあいだはタグを挙げません。理由は機器自身のエラーが示します。

## コマンドバー {#the-command-bar}

| コマンド | 何をするか | 灰色になるとき（状況） | 描かれないとき（ロール） |
| --- | --- | --- | --- |
| **再接続** | この機器の接続を閉じて開き直します。ほかの機器には触れません。操作ログ帯はドライバーを待ってから結果を伝えます：「「Furnace」に再接続しました。」または原因を添えて「「Furnace」に再接続できませんでした：」。何も読み直されず、あとから答える機器は結局それだけで戻ってきます。 | スキャンやペアリングが動いているとき、実行がステーションを占有しているとき、ランタイムが停止しているとき、機器がまだアドレスの入力を待っているとき。ツールチップには、そのドライバーに足りないものが機器自身の行と同じ言葉で出ます。ホストで現場設備につなぐドライバーでは「ホストがまだ入力されていませんので、開き直す接続がありません。」、ほかのドライバーでは同じ文がそれぞれの通知で始まります。NI-DAQmx は「NI-DAQmx の機器がまだ入力されていません」、File は「フォルダーがまだ入力されていません」に続けて「ファイル名がまだ入力されていません」、Database は「サーバーがまだ入力されていません」「データベース名がまだ入力されていません」「データベース ファイルがまだ入力されていません」「データ ソースがまだ入力されていません」、LoRaWAN は「DevEUI がまだ入力されていません」「基地局の EUI がまだ入力されていません」です。 | Connector の構成がないとき。 |
| **有効化** | 機器がデータ収集に参加できるようにします。 | すでに有効なとき、またはステーションが変更を拒否しているとき。 | Connector の構成がないとき。 |
| **無効化** | 機器とのすべての通信を止め、そのタグを実時間のアドレス空間から引き上げます。各タグは自分の有効のスイッチをそのまま保ちます。 | すでに無効なとき、またはステーションが変更を拒否しているとき。 | Connector の構成がないとき。 |
| **機器を複製** | 複製を作り、それを並べるページの表で強調表示します（下記）。 | パッケージがドライバーを持たないとき（「このパッケージに含まれていないドライバーです。」）、またはステーションが変更を拒否しているとき。 | Connector の構成がないとき。 |
| **機器を削除**（危険色、右側） | 「「Furnace」を削除しますか？そのタグもすべて削除されます。 この操作は元に戻せません。」と尋ね、削除したあと親（回線、ブローカー、機器を入れていたフォルダー、またはドライバー）を選び、ツリーで開いてその表を表示します。 | ステーションが変更を拒否しているとき。 | Connector の構成がないとき。 |

右クリックメニューには**タグを追加**と**移動先**が加わります（[機器のフォルダー](connector-folders#moving-a-device)を参照）。

## 「機器」のカード {#the-device-card}

| 項目 | 何であるか | 値と既定 | 効果 |
| --- | --- | --- | --- |
| **名前** | 分かりやすい名前で、機器のバス上の識別名とアドレスの最後の区切りになります。 | 必須。ドライバーの中で一意（大文字と小文字は区別しません）。 | 入力しているあいだ、名前の変更が何を連れていくかを先に見せます（「参照を確認しています…」、続けて追随する参照の件数、または「実効アドレスは変わらないため、更新が必要な参照はありません。」）。Enter か欄を離れると確定し、古いアドレスへのすべての参照が同じ操作で書き換えられます：「機器の名前を変え、参照 3 件を更新しました。」空の名前は拒否されます：「機器の名前は必須です。」 |
| **ドライバー** | 機器が話すプロトコル。 | 読み取り専用。 | 作成時に決まります。[ドライバー](drivers)を参照してください。 |
| **読み出し周期（ms）** | タグが上書きしない限り、ステーションがその機器のタグを読む間隔。 | 1000。0 以下の値は 1000 として保存されます。 | 固定の 1 秒で読むドライバー、または送りつけられるデータを受けるドライバー（Mitsubishi MC、BACnet、OCPP、LoRaWAN、MQTT）では出ません。 |

## 「接続」のカード {#the-connection-card}

このカードは接続の項目を宣言するすべてのドライバーで現れ、そのドライバーが読む項目だけを見せます。各項目の意味は、それぞれのドライバーのページで詳しく説明します。ここにあるのは、パネルが描くとおりの全体の一覧です。

| 項目 | 出るドライバー | 何であるか |
| --- | --- | --- |
| **ホスト** | Modbus TCP、OPC UA、Siemens S7、Rockwell、Omron、Beckhoff、Mitsubishi、BACnet、Redfish、AVEVA PI、HTTP、Generic serial and TCP（TCP クライアント）、SCPI instruments（TCP）、SNMP | ホスト名または IP アドレス。空のあいだ、機器はまったく接続されません（[機器を作る](#creating-a-device)を参照）。このコンピューター上の機器には `localhost` と書いてください。IPv6 の直書きは、基準 URI で自動的に角括弧に入ります。アドレス全体を貼り付けることもできます。ドライバー自身のスキーム（`opc.tcp://`、`modbus+tcp://` など）は取り除かれ、ホストの後のポートはポート欄に、パスはリソースパスに入ります。機器がどの欄にも持たないもの（別のプロトコルのスキーム、ドライバーが持たないパスやポート、スキームの後に角括弧なしで書いた IPv6 アドレス）は、欄の下に理由を示して拒否され、欄は現在のホストに戻ります。名前になり得ないホスト（ドットで区切った部分のどれかが空（`plc..local`）、63 文字を超える、またはハイフンで始まるか終わる）も同じように拒否されます。 |
| **ポート** | Modbus TCP、OPC UA、Beckhoff、Mitsubishi、Omron（FINS）、BACnet、Redfish、AVEVA PI、HTTP、Generic serial and TCP（TCP クライアント）、SCPI instruments（TCP）、SNMP | TCP ポート（1 から 65535）、または SNMP エージェントが応答する UDP ポート。新しい機器は、ドライバーが使うポート（502、4840、851、5007、5025、9600、47808、443、161）で作られます。欄が空のときはそのポートが灰色で表示され、機器はそのポートで呼び出されます。0 で保存された機器もそのように表示され、欄を空にするとそのポートに戻ります。AVEVA PI と HTTP は空で作られます。ポートが選んだ通信に従うためで、HTTPS なら 443、平文なら 80 になり、灰色のポートも通信に合わせて変わります。Generic serial and TCP も空で作られ、灰色のポートもありません。こうした装置に標準のポートはなく、ポートが入るまで機器は接続しません。 |
| **ユニット ID** | Modbus TCP、Modbus RTU | Modbus のユニット ID。TCP では 0 から 255、シリアル回線では 1 から 247 で、回線ごとに一意です。シリアル回線では、それ以外の数は機器に届く前に拒否され、操作ログ帯が理由を伝え（「ユニット ID は 1 から 247 の間にしてください。」）、欄は現在のユニット ID に戻ります。 |
| **フレーム形式** | Modbus TCP | 各要求が接続をどう流れるかです。MBAP（Modbus TCP そのもので、既定）か、RTU（CRC 付きの RTU フレームをそのまま送り、透過モードのシリアル-Ethernet 変換器向け）です。RTU のとき基準 URI には `framing=rtu` が付きます。[TCP 上の RTU](driver-modbus-tcp#rtu-over-tcp) を参照してください。 |
| **通信の最小間隔（ms）** | Modbus TCP | 1 回の試みが終わってから endpoint が次を始めるまでの休止。0 から 1000、既定は 0（「互換性のための調整、0〜1000 ms。0 は人為的な遅延を加えません。」）。ホストとポートを共有する有効な機器は、そのうち最大の値を使い、ほかの機器が引き上げているときはカードがそう伝えます：「実効 200 ms · 192.168.0.10:502 にある別の有効な機器が、この endpoint の最大値を押し上げています。」 |
| **シリアル回線 · 固定** | Modbus RTU、Generic serial and TCP（回線上の機器）、SCPI instruments（回線上の機器）、Omron（回線上の機器） | 回線の名前とその組で、読み取り専用です。変更は回線自身のページで行います。「回線がありません」または「物理的な回線が割り当てられていません」は、機器が回線を失って保存できない状態です：「シリアル回線が必要です。」 |
| **ブローカー · 固定** | MQTT | ブローカーの名前とその下のアドレスで、読み取り専用です。接続とサインインはブローカー自身のページで変えます。「ブローカーがありません」は、機器がブローカーを失って保存できない状態です：「MQTT ブローカーが必要です。」 |
| **プロトコル** | MQTT、Omron | MQTT では **通常の MQTT** か **Sparkplug B** で、各タグがトピックとメトリックのどちらを名指しするかを決めます。[MQTT](driver-mqtt#device)を参照してください。Omron では **FINS** か **NJ/NX のタグ（名前で指定）** で、各タグがメモリアドレスと変数のどちらを名指しするか、また機器にポートと FINS のカードがあるかを決めます。[Omron](driver-omron#connection)を参照してください。 |
| **グループ ID**、**エッジノード ID**、**機器 ID** | MQTT、Sparkplug B のみ | 機器そのものであるエッジノード、またはその後ろの機器です。機器 ID が空ならエッジノード自身のメトリックを読みます。Sparkplug B の識別は、ブローカーごとに一度しか設定できません。 |
| **ラック / スロット** | Siemens S7 | 2 つの数値。基準 URI は `s7://host:rack:slot` となります。 |
| **スロット** | Rockwell EtherNet/IP | 数値 1 つで、コントローラーが挿さっているシャーシの位置です。CIP の経路はラックを持たないため、基準 URI は `eip://host:slot` となります。 |
| **ローカル IP（AMS）** | Beckhoff ADS | AMS の経路上でのこのステーションの IP。2 つの AMS ネット ID は、どちらも `<ip>.1.1` として導かれます。空のときは、PLC に届くネットワーク上でのこのステーションのアドレスを使い、それを灰色で表示します。 |
| **PLC の AMS ネット ID** | Beckhoff ADS | PLC 自身の AMS ネット ID で、ID が IP に `.1.1` を続けたものではない PLC のためのものです。空のときはホストの IPv4 アドレスに `.1.1` を続けたもの（名前は先に解決）を使い、灰色で表示します。 |
| **機器 ID** | BACnet | BACnet のデバイスインスタンス。 |
| **サーバー / キー** | LoRaWAN | アプリケーションキー。 |
| **識別子** | OCPP、LoRaWAN | 充電ポイントの ID、または DevEUI（コロンやダッシュ付きの綴りは、素の 16 進に整えられます）。空のときは、整えた機器の名前が使われます。 |
| **リソースパス** | OPC UA、AVEVA PI、HTTP | 権限部分の後ろに付く経路です。OPC UA のサーバーパス、PI Web API のサービスのルート（既定は `piwebapi`）、または HTTP のすべてのタグの経路がつながる接頭辞です。 |
| **通信方式** | AVEVA PI、HTTP、Generic serial and TCP、SCPI instruments | Generic serial and TCP ドライバーのネットワークの機器では一覧で、TCP クライアントか UDP 受信を選び、UDP ではホストとポートが受け入れる送信元とローカルポートに変わります（[Generic serial and TCP](driver-generic-serial-tcp#connection)を参照）。SCPI instruments ドライバーの回線上にない機器では一覧で、TCP（LXI ソケット）か VISA（USB、GPIB、ネットワーク）を選び、VISA ではホストとポートが VISA リソースに変わります（[SCPI instruments](driver-scpi#connection)を参照）。AVEVA PI と HTTP では**平文の HTTP で送る**というチェックボックスです。オフは HTTPS で、「HTTPS です。ベアラートークンやパスワードは、PI Web API に届くまで暗号化されたままです。」という注記が付きます。オンにすると注記は警告に変わり、要求のたびにトークンやパスワードが暗号化されずに送られること、これはほかのトランスポートで答えない PI Web API のためのものであることを伝えます。HTTP の機器も同じチェックボックスを持ち、そちらには要求と機器が送る資格情報についての独自の注記が付きます。そこでは、ホストの前に `http://` や `https://` を書くとこのチェックボックスが動き、ホストはそれを外して保存されます。 |
| **VISA リソース** | SCPI instruments（VISA） | VISA が一覧する測定器の名前で、例えば `USB0::0x0957::0x1A07::MY12345678::INSTR`。ホストとポートの代わりに使います。機器検出で入力されます。 |
| **ユーザー名**、**パスワード** | OPC UA、Redfish、AVEVA PI | 機器ごとの資格情報です。ユーザー名が空なら匿名の接続になります（「空なら匿名です。機器ごとに保存され、パスワードは保管時に保護されます。」）。 |
| **ベアラートークン** | AVEVA PI | 設定されているとユーザー名とパスワードより優先されるトークンです。**トークンを表示**で中身が見えます。 |

Matter の機器は別の「接続」のカードを見せます。**ノード ID · 読み取り専用**は、ペアリングが割り当てた 64 ビットのノード ID（保存された識別名が読めないときは「再ペアリングが必要」）、**ネットワーク · 読み取り専用**は、ペアリングのときに機器が参加したネットワークの名前（Ganter Lab がネットワークを記録する前にペアリングされた機器や、機器検出で追加された機器では、記録がないと示します）、そして**状態**は機器の稼働状態の言葉です。どれも編集できません。Simulated の機器には「接続」のカードがまったくありません。Generic serial and TCP ドライバーの機器は、「接続」のカードの下にさらにメッセージとチェックサムの 2 枚のカードを持ち、メッセージの終わり方と確かめ方を決めます。[Generic serial and TCP](driver-generic-serial-tcp#the-messages-card)を参照してください。FINS で読む Omron の機器は、「接続」のカードの下に FINS のカードを持ち、トランスポート、ネットワーク、ノード、ユニット、応答のタイムアウトを決めます。[Omron](driver-omron#the-fins-card)を参照してください。SCPI instruments ドライバーの機器は、「接続」のカードの下に「測定器」のカードを持ち、測定器の識別情報を示し、終端文字、応答のタイムアウト、書き込みの確認、初期設定コマンドを決めます。[SCPI instruments](driver-scpi#the-instrument-card)を参照してください。NI-DAQmx の機器には「接続」のカードがなく、代わりに「NI-DAQmx の機器」のカードがあって、NI MAX が機器に付けた名前と、NI-DAQmx がそこから読み取る製品を示します。[NI-DAQmx](driver-ni-daqmx#the-ni-daqmx-device-card)を参照してください。SNMP ドライバーの機器は「接続」のカードの下に「SNMP エージェント」のカードを持ち、バージョン、community または SNMPv3 ユーザーとそのセキュリティレベル、プロトコル、パスワード、応答のタイムアウト、再試行回数を示します。[SNMP](driver-snmp#the-snmp-agent-card)を参照してください。File の機器には「接続」のカードがありません。その位置に「フォルダーとファイル」のカードがあってフォルダー、ファイル、書式を持ち、続いて「ファイルのテキスト」のカード、1 つのファイルを読む機器ではさらに「書き込み」のカードがあります。[File](driver-file#the-folder-and-file-card)を参照してください。Database の機器には「接続」のカードがありません。その位置に「データベース」のカードがあり、データベースの種類と場所を持ち、SQLite 以外のデータベースでは続いて「サインイン」のカードがあります。[Database](driver-database#the-database-card)を参照してください。

### 資格情報と証明書 {#credentials-and-certificates}

パスワード、ベアラートークン、SNMP の community は、ユーザーごとの Windows のデータ保護によって保存時に保護されるので、構成のデータベースが平文の値を持つことはありません。この保護は、その秘密を入力した Windows のアカウントと機械に結び付いています。別のアカウントでは欄が空で戻り、「この Windows アカウントでは読み取れません。入力したコンピューターと Windows アカウントでしか開けないためです。ここでもう一度入力してください。」という注記が付きます。資格情報はドライバーに直接渡され、基準 URI にも診断ログにも現れず、操作ログ帯が見せるエラーの文からも伏せられます。

OPC UA の機器は、セッションが開く前に現場設備の証明書を提示します。Redfish、AVEVA PI、HTTP の機器が HTTPS でつなぐ現場設備も、MQTT の機器のブローカーも TLS で同じことをします。Windows が信頼せず、このステーションが一度も承認していない証明書は、黙って失敗するのではありません。機器はツリーとページで「証明書の承認を待っています」と表示し、通知バーのボタンがその証明書を開いたドライバーのページの現場設備へのアクセスに行き、承認するか遮断するかを選べます。あとで承認を取り下げると、それで動いていた接続は閉じます。詳しくはそれぞれのドライバーのページにあります：[OPC UA](driver-opc-ua#equipment-access)、[Redfish](driver-redfish#equipment-access)、[AVEVA PI](driver-aveva-pi#equipment-access)、[HTTP](driver-http#equipment-access)、[MQTT](driver-mqtt#equipment-access)。

## 「コマンド」のカード {#the-commands-card}

読むだけでなく、何かをするよう頼める現場設備に届くドライバーが 3 つあります。**HTTP**、**Redfish**、**AVEVA PI** です。その機器のページには「接続」と「タグ」のカードのあいだに**コマンド**のカードが置かれ、「この現場設備に頼めることです。各コマンドは、機器のアドレスの下で要求を送るパスを指定します。」という見出しが付きます。一覧は誰にでも見えますが、宣言、編集、実行には Connector の構成が必要で、そのビットを持たないロールには項目もコマンドも描かれません。

**コマンドを追加**は「コマンド 1」という名前の行を足します（すでにあるものに続けて番号が付きます）。各行は次を持ちます。

| 列 | 何であるか |
| --- | --- |
| **名前** | そのコマンドの呼び名です。このステーション自身の OPC UA のアドレス空間では、機器上のメソッド名にもなるので、機器の中で一意です。 |
| **パス** | 要求が行く先で、機器自身のアドレスの下にあります。現場設備の資料が名指しする経路、たとえば `redfish/v1/Systems/1/Actions/ComputerSystem.Reset` です。経路のないコマンドが機器に載ることはありません。 |
| **受け取る値** | コマンドが取る 1 つの値の名前で、現場設備が呼んでいるとおりに書きます（`ResetType`）。何も取らないコマンドでは空です。 |
| **オン** | そのコマンドをそもそも出すかどうかです。オフのコマンドは機器上に作られず、実行もされません。これが、何を指しているかを失わずにコマンドを寝かせておく方法です。 |
| **値** | 値を取るコマンドで、この 1 回の押下が送る内容です。機器ではなく押下に属するので、保存されることはありません。 |

行の末尾のまとまりには、その行だけに効く 2 つのコマンドがあります。**実行**は送信し、現場設備が何と答えたかを伝えます（「「Reset」の答え：受け付けました」）。そして**削除**です。実行は、消えるのではなく、なぜ拒否されるかを伝えます。経路のないコマンド（「このコマンドにはまだパスがないため、送るものがありません。」）、オフのコマンド、まだランタイムへの保存を待っているコマンド、接続していない機器、そしてステーション自身のエンジニアリング上や実行中の境界です。ほかのドライバーはこのカードを持ちません。充電ポイントもコマンドを取りますが、そちらはプロトコルが決めていて、ここに入力するものではなくドライバーから来ます。Matter のノードはコマンドを取りません。ノードへの変更はすべて、そのタグのどれかへの書き込みです。

コマンドを送ることは現場設備への書き込みなので、実行はタグの手動書き込みと同じ経路を通ります。コマンドはステーションがすでに行っている作業の後ろで順番を待ち、外のシステムからの呼び出しと同じ道で現場設備に届き、押すたびに、何を頼んだか、どの機器か、何が返ってきたかが記録されます。ステーションが作業を受け付けなくなっている間は、黙って終わるのではなく答えが返ります。「このステーションは、いまコマンドを受け付けていません。」Connector が動いていないときは「Connector が動いていないため、現場設備には何も送れません。」と返り、現場設備自身の拒否はその設備の言葉のまま伝えられます。Connector が実行できなかったコマンドは、何に行き当たったかを、機器の赤い行と同じようにステーションの言語で述べます。切断された機器なら「機器が接続されていないため、何も送っていません。」、時間内に応答しなかった機器、ネットワークが拒否した要求、失敗したドライバーも同様です。診断ログには技術的な行が残ります。

## 「タグ」のカード {#the-tags-card}

カードの見出しは**タグ**で、続けて「アドレスの書式 · `<hint>`」がこのドライバーでのタグのアドレスの書き方を伝え（「自由書式のタグ名（例：sim/temperature）。」「レジスター番号 + 個数（型付きの項目）。」「ノード ID、例：ns=2;s=Temperature。」）、Connector の構成には「行にチェックを入れてからセルを編集すると、その内容がすべての行に適用されます。適用するとチェックは外れます。」という案内と**タグを追加**のボタンが付きます。タグを追加は「タグ 5」（件数に続けて番号が付きます）を Float、またはそのドライバーが対応する最初の型で、読み取りのみとして作ります。タグは開きません。グリッドの型のまとまりの中で強調表示され、見える位置までスクロールされます。項目はその行で編集でき、タグの**開く**でそのページに進みます。操作ログ帯には「「Furnace」にタグを追加しました。」、新しいタグにまだ足りないものがあるときは「「Furnace」にタグを追加しました。その行で詳細を入力してください。」と出ます。欄の新規…メニューでは機器の項目に**新しいタグ**が、機器の右クリックメニューには**タグを追加**があり、どちらも画面を機器のページに移して同じことをします。タグを追加のボタンの隣には、機器のドライバーが一台の機器の点を読めるところでは**タグ検出**があり、機器が公開する値をスキャンして、まだタグがないものを出します（[機器のタグを検出する](connector-discovery#discovering-a-devices-tags)を参照）。

### グリッド {#the-grid}

行はデータ型でまとめられ、順序は**数値**、**ブール**、**文字列とその他**で、各まとまりの見出しに件数が付きます。列はタグのページのカードの順に並び、その行に当てはまらないセル（ブール値のタグの数値の項目）は空で無効な状態で描かれます。

| 列 | まとまり | 何を編集するか |
| --- | --- | --- |
| チェック | | 一括編集のためにその行を選びます。Connector の構成にだけ描かれます。 |
| **名前** | 全般 | タグの名前です。ページと同じ、名前の変更の予告と参照の書き換えが付きます。決して複製されません。自分のエラーがあるタグは、名前のあとにツリーと同じ赤い印が付き、理由がツールチップになります。 |
| **型** | 全般 | データ型です。変えると、行の信号の種類、Modbus のレジスターの種類、上下限の動作、NaN の方針が[タグ](connector-tags#the-general-card)の説明どおりに合わせられます。 |
| **アクセス** | 全般 | 読み取りのみ、書き込みのみ、読み書き（OCPP と LoRaWAN は読み取りのみ）。 |
| **単位** | 全般 | 工業単位です。 |
| **周期（ms）** | 全般 | タグごとの上書きです。0 は機器の既定という意味です。固定周期のドライバーと送りつけ型のドライバーでは出ません。 |
| **アドレス** | 信号源 | 自由記述のアドレスで、それを取るドライバーで出ます。決して複製されません。 |
| **信号** | 信号源 | 模擬信号の種類で、名前の横に形の絵が付きます。Simulated の機器だけです。 |
| **生値** | 信号源 | 直近の生の読み取りで、読み取り専用です。 |
| **スケール ×**、**スケール +**、**スケール後** | 変換 | スケーリングの段階の傾きと切片、そしてその結果です。 |
| **校正 有効**、**校正 ×**、**校正 +**、**校正後** | 変換 | 校正の段階です。そのスイッチ、傾きと切片、そして結果です。 |
| **上下限 有効**、**最小**、**最大**、**上下限**、**上下限後** | 変換 | 上下限の段階です。そのスイッチ、境界、越限したときの動作、そして結果です。 |
| **小数桁 有効**、**小数桁** | 変換 | 小数桁の段階です。そのスイッチと桁数（0 から 15）です。 |
| **反転** | 変換 | ブール値の否定です。 |
| **部分開始**、**部分長さ** | 変換 | 文字列の部分取り出しの範囲です。 |
| **値** | 現在の値 | 工業値で、読み取り専用です。 |
| 操作 | | **開く**、そして Connector の構成には**有効化**、**無効化**、**削除**で、最後のものには確認が付きます。 |

3 つの段階のスイッチも、それが支配する項目と同じ列であり、一緒に一括編集されます。行にチェックを入れ、係数を入力し、段階をオンにすれば、その行が読む内容が同じ 1 回の編集で変わり、点をひとつずつ開く必要はありません。グリッドがまだ持たないのは、無効な読み値の方針、2 点調整の補助、書き込みの入力欄、そして相互参照です。それらはタグのページにあります。校正だけを持つロールはグリッドを読めますが、そこでは何も編集できません。校正のセルと校正オンのスイッチも同じで、そのロールの校正の編集はタグのページを通ります。

### 一括編集 {#mass-edit}

変えたい行にチェックを入れ、どれか 1 行のセルを編集します。新しい値はその行とチェックの入ったすべての行に適用され、チェックは使われて外れます。行にチェックが入っているあいだ、グリッドの上の帯が「3 行を選択中です。セルを編集するとすべての行に適用され、チェックが外れます。」と伝え、**選択を解除**のボタンが付きます。チェックは機器に属するので、あとで戻ってくると外れています。混ざった選択を正しく保つ規則が 3 つあります。名前とアドレスは決して複製されません。型のセルは、届いた行ごとに依存する項目を合わせます。そして、その行が取れない値はその行では拒否され、元のままに保たれます。これが、文字列の行が数値の信号の種類を渡されても壊れず、整数の行が NaN の上下限の動作を渡されても壊れない仕組みです。

## 機器を複製 {#copy-device}

機器を複製は、選んだ機器から自分のものの機器を作ります。接続の項目と資格情報は同じで、すべてのタグが新しい識別名の下に、変換経路の全体、有効かどうか、読み出し周期ごと複製されます。複製は、そのドライバーで空いていれば元の名前を取り、埋まっていれば「Furnace (2)」、「Furnace (3)」となります。元がどのフォルダーにあっても、複製はドライバー自身の階層に置かれます。Modbus RTU の複製は同じ回線に残り、次の空きユニット ID を取ります。Generic serial and TCP ドライバーか SCPI instruments ドライバーの回線上の機器の複製は、その回線に残ります。MQTT の複製は同じブローカーに残り、Sparkplug B の複製はいちばん内側の ID に同じように番号が付く（「Press1 (2)」）ので、ブローカーの 2 台の機器が同じ識別を名指しすることはありません。複製は開きません。画面はそれを並べるページ（ドライバー、回線、ブローカー）に移り、機器の表で複製が強調表示されて見える位置までスクロールされ、元の機器もその横に並びます：「「Furnace」を「Furnace (2)」に複製しました。編集するには、複製を開いてください。」回線上の Omron の複製は、次に空いているユニット番号でその回線に残ります。

## 重複と衝突 {#duplicates-and-collisions}

機器の名前はドライバーの中で一意で、大文字と小文字は区別しません。作成のコマンドは番号の接尾辞でよけますが、すでに使われている名前への変更は確定時に拒否されます。1 つのドライバーの下で、有効な 2 台の機器の名前が同じ技術的な区切り（`Line A` と `Line-A`）に整うと、どちらかが勝つのではなく両方が定周期読み出しから外され、どちらかの名前を変えるか無効にするまで、そのタグは何も読みません。技術的な識別名は 128 文字までです：「機器の技術的な識別名は、128 文字を超えられません。」Modbus TCP の機器は、ユニット ID が違えばホストとポートを共有でき、そのとき endpoint のトランザクションの間隔も共有します。Matter の機器は同じノード ID を名指しできます。機器検出は代わりに既存のものを開くよう促しますが、2 つ目を禁じはしません。NI-DAQmx の 2 台の機器も同じように NI MAX の同じ機器を読めます。たとえば、1 つのモジュールを 2 つの読み出し周期で読む場合です。

## 機器のページがしないこと {#what-the-device-page-does-not-do}

ドライバーは変えられず、フォルダーはここでは編集せず、シリアル回線上の機器の回線も、MQTT の機器のブローカーも付け替えられません。Generic serial and TCP ドライバーの機器は TCP と UDP のあいだで、SCPI instruments ドライバーの機器は TCP と VISA のあいだで切り替えられますが、回線とネットワークのあいだは移れません。機器を有効にしてもそのタグは有効になりませんし、機器を無効にしてもタグのスイッチは切り替わりません。機器ごとの取り込みや書き出しはなく、接続を試す手段は、機器を有効にして稼働状態と最後のエラーを読むことのほかにありません。Omron の機器は UDP と TCP のあいだで切り替わり、回線とネットワークのあいだでは切り替わりません。
