# OPC UA サーバー

> ステーションが同じプロセスの中で動かす OPC UA サーバーです。サーバーのフォルダーにあるその行、オンとオフの切り替え、再起動と接続を試す、endpoint と 6 つの目盛りを持つ状態のカード、セッションが通る 2 つの確かめ、そしてリモートのブラウザーができないことです。

ステーションは OPC UA サーバーです。アプリケーションのプロセスの中で動き、[提供するノード](connector-opcua-served-nodes) カードに載せたタグ、Logic 変数、警報、機器のコマンドを `opc.tcp://<network name>:4840/UA/GanterLab` で提供します（同じ機械からは `localhost` でも届きます）。この名前は [構成](connector-opcua-configuration) の **ネットワーク名** に書いた名前で、その欄が空の間はこのコンピューター自身の名前です。ネットワーク上の OPC UA クライアントはそこでそれを読み、読み書きとした行には書くこともできます。書き込みはほかの書き込みと同じ Logic の書き込みの漏斗を通るので、ソースのロックとランタイムの拒否がそれにも当たります。サーバーは Connector が読むものを公開するだけで、自分では何も読みません。サーバーをオフにしても、起動時にほかのプログラムがポートを押さえていても、止まるのはサーバーだけで、Connector、Logic、記録は続きます。

その行は Connector のサーバーのフォルダーの最初の行で、そのパネルは表題の下で自分が何かを述べます。「一覧に載せたタグ、Logic 変数、警報、機器のコマンドを、それを読み書きする OPC UA クライアント（SCADA や MES、ヒストリアン、ほかのステーション）に提供します。接続を受けるだけで、自分からは接続しません。」パネルには **状態**、**構成**、**クライアントアクセス**、**提供するノード** の 4 枚のカードがあります。Connector の表示はそれらを読み、Connector の構成はそれらを変えます。**提供するノード** に行がない間、サーバーはステーションの何も提供しません。

## オンかオフか {#on-or-off}

サーバーは自分のスイッチを持ち、新しいステーションではオフです。だれかがサーバーをオンにするまで、ポート 4840 は閉じたままです。一度オンにすると、だれかがオフにするまで、アプリケーションと一緒に毎回起動し、ウィンドウが通知領域に隠れている間も働き続けます。スイッチのない版から更新したステーションは、クライアントが持っていたものをそのまま保ちます。セッションを受け入れていたサーバーはオンのまま残り、クライアントの認証が無効で、すべてのセッションを拒んでいたサーバーはオフになります。エージェントは `server_start` と `server_stop` で同じスイッチを動かします（[エージェントのツール](agent-tools) を参照）。

## 見出し {#the-header}

パネルの見出しは、ドットとサーバーの状態を、その行と同じ言葉で示します。

| 状態 | ドット | いつ |
| --- | --- | --- |
| 「オフ」 | 灰色 | スイッチがオフです。ほかに何が起きていても同じです。 |
| 「ポート 4840 で待ち受け中」 | 緑 | サーバーがオンで、そのアドレス空間が生きています。行には接続中のクライアントが加わります。「接続中のクライアントはありません」、「1 台のクライアントが接続中」、「3 台のクライアントが接続中」です。 |
| 「起動中…」 | 琥珀色 | 起動からその瞬間までの間と、公開する Connector が立ち上がる間です。 |
| 「起動できませんでした」 | 赤 | サーバーがオンで、直前の起動が失敗しました。たいていはほかのプログラムがポートを押さえているためです。状態のカードが、endpoint の下でその理由を述べます。 |
| 「Connector 停止」 | 灰色 | サーバーはオンですが、Connector のランタイムが動いていません。 |

この状態はサーバーだけのものです。Connector はサーバーが動いていてもいなくても機器を読み、ステータスバーと通知領域は Connector について語ります。[通知領域とステータスバー](#the-tray-and-the-status-bar) を参照してください。

## コマンド {#the-commands}

パネルの上のコマンドバーに、Modbus サーバーのときと同じく、サーバーの動詞が並びます。

| コマンド | 何をするか | 灰色になるとき（状況） | 描かれないとき（ロール） |
| --- | --- | --- | --- |
| 有効化 | サーバーをオンにして起動し、一覧を提供します。Connector は再起動しません（Connector がまったく動いていなければ、先にそれを起動します）。ステータスバーは「OPC UA サーバーを開始しています…」のあと「OPC UA サーバーをオンにしました。`<endpoint>` で待ち受けています。」と示します。失敗した起動ではサーバーはオンのまま「起動できませんでした」になり、操作ログ帯がその理由を述べます。「OPC UA サーバーのエラー：`<理由>`」か、サーバーがそれを記録しただけなら「OPC UA サーバーを開始できませんでした。ポート N を確保できていない可能性があります。ログを確認してください。」です。 | サーバーがオンの間（「サーバーはすでにオンです。」）、サーバーの別のコマンドが動いている間（「別のサーバーコマンドがまだ実行中です。」）、そしてステーションが構成を受け付けない間。 | **Connector の構成** を持たないロールのとき。 |
| 無効化 | サーバーをオフにして穏やかに止めます。クライアントのセッションはすべて終わり、有効化まで何も公開しません。Connector は機器を読み続け、Logic と記録も続きます。「OPC UA サーバーを停止しています…」のあと「OPC UA サーバーをオフにしました。」です。 | サーバーがオフの間（「サーバーはすでにオフです。」）と、同じ 2 つの状況。 | 同じです。 |
| 再起動 | サーバーを止め、効いている構成でもう一度起動します。その間も Connector は読み続けます。「OPC UA サーバーを再起動しています…」のあと「OPC UA サーバーを再起動しました。」、または上の失敗の文です。 | サーバーがオフの間（「サーバーはオフです。有効化でオンになります。」）と、同じ 2 つの状況。 | 同じです。 |
| 接続を試す | ステーションが自分のサーバーについて知っていることを、何も変えずに伝えます。「OPC UA サーバーは待ち受けていないため、どのクライアントも接続できません。」、「OPC UA サーバーは起動中で、まだ準備できていません。」、または「OPC UA サーバーに `<endpoint>` で到達できました。有効なセッションは N 件です。」です。これは動いているプロセスの申告で、ネットワーク越しの探りではありません。 | ありません。 | ありません。 |

ステーションは、ユニットが実行中の間（「ユニットが実行中の間は構成がロックされます。」）とランタイムが止まっている間、構成を受け付けません。設備のサーバーを止めるのは構成の作業であって、運転の操作ではないからです。エラーなしで戻った起動も確かめ直します。OPC UA のスタックはポートの確保に失敗しても、それを記録するだけのことがあるので、操作ログ帯は成功ではなく失敗を伝えます。

## 状態のカード {#the-status-card}

カードは、ネットワーク上のクライアントが接続する endpoint `opc.tcp://<network name>:<port>/UA/GanterLab` を示します。いつも変わらない名前で、`0.0.0.0` や DHCP のアドレスにはなりません。同じ機械からの代わりの道は、[クライアントアクセス](connector-opcua-client-access) の接続アドレスにあります。サーバーがオンなのに起動できなかった間は、endpoint の下の注意の注記にその理由が出ます。その下に、毎秒描き直される 6 つの目盛りが並びます。

| 目盛り | 何を数えるか |
| --- | --- |
| 稼働時間 | サーバーが最後に起動してからの時間で、`2h 14m 5s`、`14m 5s`、`5s` の形です。止まっている間は欠測の印です。同じ瞬間が、Logic のアドレス空間の Server.StartTime と Server.Uptime のポイントも養います。 |
| セッション | サーバーが今受け入れているクライアントのセッションです。[クライアントアクセス](connector-opcua-client-access) の現在の接続が見せるのと同じ一覧です。 |
| 機器 | [Connector](connector) に構成されている機器の数で、ドライバーをまたぎ、有効かどうかを問いません。 |
| ドライバー | それらの機器が使っているドライバーが、いくつあるかです。 |
| エラー | 通信のホストのログの流れ（サーバーとドライバー）のエラーの行です。この流れは新しい方から 500 行を保ちます。0 でないとき、この数は赤くなります。 |
| 警告 | 同じ流れの警告の行で、0 でないとき琥珀になります。**イベントの表示** を持つロールでは、この数は、ステーション自身のデスクトップで切り離したイベントのウィンドウを開くボタンになります（「イベントのウィンドウを開く」）。別の端末のブラウザーでは「ステーションのローカルのデスクトップでだけ使えます。」とともに灰色になり、その権限のないロールにはただの数字です。 |

## 2 つの確かめを、分けて保つ {#two-checks-kept-apart}

OPC UA のセッションは、このパネルが別々に設定する 2 つの確かめを通ります。[クライアントアクセス](connector-opcua-client-access) の **証明書の信頼** は、アプリケーションがそもそもサーバーに届いてよいかを決めます。未知の証明書は最初の試みで拒まれ、あなたの確認のために保たれます。何も自動では信頼されず、確かめるべき身元は、証明書が名乗る名前ではなく、フィンガープリントです。そのあと [構成](connector-opcua-configuration) の **クライアントの認証** が、信頼したアプリケーションがどうサインインするかを決めます。既定の匿名か、設定した 1 組のユーザー名とパスワードです。同じ考えが、[OPC UA ドライバーのページ](driver-opc-ua#equipment-access) では逆向きに働きます。あなたが証明書を承認していない OPC UA の現場設備から、ステーションは何も読みません。

## 通知領域とステータスバー {#the-tray-and-the-status-bar}

サーバーの今の状態は、その行とそのパネルで読みます。ステータスバーの稼働状態の行、通知領域のアイコン、そのツールチップ、そのメニューの行は、代わりに [Connector](connector-health)、つまりそれが読む機器について語ります。オフのサーバーは読み取りを何も損なわず、ステーションを見守る人が知る必要のあることではないからです。動いているかどうか、起動時刻、稼働時間、セッションの数は、[Logic](logic-from-other-pages) のアドレス空間の Server の根（Running、StartTime、Uptime、SessionCount）のポイントでもあるので、ダッシュボードや式から読めます。

サーバーがオンのままステーションが起動し、サーバーがポートを開けないときは、ウィンドウに「サーバーを起動できませんでした」のカードが **ポート 4841 を使用する** と **Connector を開く** を添えて出ます。[構成](connector-opcua-configuration#when-the-server-cannot-open-its-port-at-start) を参照してください。ここでのコマンドの結末はどれもステータスバーの操作ログ帯に出て、証明書についての拒否と判断はすべて記録されます。サーバー自身のログの行は [イベント](events-console) のコンソールのタブにあり、そのエラーと警告の件数が状態のカードの最後の 2 つの目盛りです。

## リモートのブラウザーができないこと {#what-a-remote-browser-may-not-do}

Connector の構成を持つロールの、別の端末のブラウザーは、このパネルをステーションのウィンドウとまったく同じに見て、サーバーのオンとオフ、再起動、構成の適用ができます。できないのは証明書についての判断です。クライアントを追加、信頼する、遮断する、取り消す、遮断を解除する、承認待ちの証明書をすべて破棄、証明書を取り込む、そして Windows ファイアウォールのボタンは、そこでは「クライアントアクセスは、ステーションのデスクトップアプリでのみ変更できます。」で拒否され、カードの通知バーも「クライアントアクセスを変えるには、デスクトップアプリを開いてください」と述べます。警告の目盛りから切り離したイベントのウィンドウへのリンクは、「ステーションのローカルのデスクトップでだけ使えます。」と添えて灰色になります。

証明書がどこにあるかです。サーバー自身のアプリケーションの証明書と、信頼した、承認待ちの、遮断したクライアント証明書の保管は、ステーションのデータの根の `ua\pki` の下にあり、現場設備の保管は `ua\pki\southbound` にあります。再起動をまたいで残り、構成の [バックアップ](settings-backups) の一部ではありません。

## このパネルがしないこと {#what-this-panel-does-not-do}

セッションを 1 つだけ切ることはしません（クライアントアクセスで証明書を取り消すとそうなります）。ログの件数を消すこともしません（流れには上限があり、自分で進みます）。Connector の読み取りを止めることも、アプリケーションを再起動することもしません。失敗のあとで、サーバーを自分から起動し直すことは決してありません。失敗した起動は伝えられ、あなたの再起動か、カードで選ぶポートを待ちます。endpoint は [構成](connector-opcua-configuration) で変え、それができるのはサーバーが待ち受けていない間だけです。
