機器
機器のページ:見出しとコマンド、「機器」のカード、ドライバーごとの項目が並ぶ「接続」のカード、資格情報と証明書、一括編集付きの「タグ」のグリッド、機器の複製、そして重複と名前の衝突の扱い。
機器は、ステーションがドライバー越しに話す 1 台の現場設備です。どうやって届くか、そこから読むタグは何か、の 2 つでできています。「通信」欄で機器の行を選ぶか、ドライバー、回線、フォルダーの表にある機器の行で「開く」を押すと、そのページが開きます。Connector の表示で読め、Connector の構成で編集できます。シリアル回線にはシリアル回線という自分のページがあります。
機器を作る
| 操作 | 結果 |
|---|---|
新規… > 新しい機器 > <Driver> の下 |
ドライバー自身の階層の機器。 |
| ドライバーのページの機器の表にある機器を追加 | 同じもの。 |
| フォルダーの機器の表、またはその右クリックメニューにある新しい機器 | そのフォルダーに整理された機器。 |
| シリアル回線の「機器」のカード、または右クリックメニューにある機器を追加 | その回線の、最初の空きユニット ID を持つ Modbus RTU の機器。 |
| 機器検出の結果にある機器を追加 | スキャンが見つけた接続先と、チェックしたタグを持つ機器。機器検出を参照してください。 |
| Matter のドライバーの機器をペアリング | 参加処理を終えた Matter のノード。機器検出を参照してください。 |
| 機器の機器を複製 | 選んだ機器の複製で、タグも含みます。 |
新しい機器は「新しい機器」(次は「新しい機器 2」、以下同様)という名前で、有効、読み出し周期 1000 ms、ユニット ID 1 で作られ、ページがそこに開きます:「機器「新しい機器」を追加しました。右側で詳細を編集してください。」パッケージが持たないドライバーの下では機器は拒否されます。Matter でも同じで、そこでの機器はペアリングか機器検出からしか生まれません(「新しい Matter のノードを追加するには機器をペアリングを、参加処理済みのノードを追加するには検出を使ってください。」)。
接続は決して待たされる段取りではありません。内蔵サーバーは機器を登録し、背後で再試行しながら接続するので、届かない機器があっても何も損はしません。接続がつながるまで、そのタグは空欄として読まれ、そのあいだページは直前の接続エラーを見せます。
見出し
名前、「このステーションが話す相手の現場設備 1 台です。どうやって届くのかと、そこから読むタグを決めます。」という一文、そして基準 URI のピルが並びます。基準 URI は内蔵サーバーが接続する正確なアドレスで、「接続」のカードから実時間で組み立てられます(たとえば modbus+tcp://192.168.0.10:502/1、opc.tcp://plc:4840、simulated://CompressedAir)。その下には、次の 3 つの知らせのいずれかが出ます。
- このパッケージに含まれていないドライバー:「この機器には IEC 61850 のドライバーが必要ですが、このインストールには含まれていないため、オフラインのままです。設定は保たれ、削除もできます。ここでのほかの操作が、読み取る内容を変えることはありません。」
- 証明書の承認を待っています(OPC UA):「この設備は、このステーションが一度も承認していない証明書を提示したため、まだ何も読んでいません。設備を立ち上げた担当者とフィンガープリントを照合したうえで、設定の「現場設備へのアクセス」で承認してください。」その証明書を開いた現場設備へのアクセスに行く証明書を確認するのボタンが付きます。
- それ以外の場合、機器に最後のエラーがあれば、その文字が赤で出ます(有効化と稼働状態を参照)。
コマンドバー
| コマンド | 何をするか | 灰色になるとき(状況) | 描かれないとき(ロール) |
|---|---|---|---|
| 再接続 | この機器の接続を閉じて開き直します。ほかの機器には触れません。操作ログ帯はドライバーを待ってから結果を伝えます:「「Furnace」に再接続しました。」または原因を添えて「「Furnace」に再接続できませんでした:」。何も読み直されず、あとから答える機器は結局それだけで戻ってきます。 | スキャンやペアリングが動いているとき、実行がステーションを占有しているとき、ランタイムが停止しているとき。 | Connector の構成がないとき。 |
| 有効化 | 機器がデータ収集に参加できるようにします。 | すでに有効なとき、またはステーションが変更を拒否しているとき。 | Connector の構成がないとき。 |
| 無効化 | 機器とのすべての通信を止め、そのタグを実時間のアドレス空間から引き上げます。各タグは自分の有効のスイッチをそのまま保ちます。 | すでに無効なとき、またはステーションが変更を拒否しているとき。 | Connector の構成がないとき。 |
| 機器を複製 | 複製を作って開きます(下記)。 | パッケージがドライバーを持たないとき(「このパッケージにドライバーが含まれていません。」)、またはステーションが変更を拒否しているとき。 | Connector の構成がないとき。 |
| 機器を削除(危険色、右側) | 「「Furnace」を削除しますか?そのタグもすべて削除されます。この操作は元に戻せません。」と尋ね、削除したあと親(回線かドライバー)を選びます。 | ステーションが変更を拒否しているとき。 | Connector の構成がないとき。 |
右クリックメニューにはタグを追加と移動先が加わります(機器のフォルダーを参照)。
「機器」のカード
| 項目 | 何であるか | 値と既定 | 効果 |
|---|---|---|---|
| 名前 | 分かりやすい名前で、機器のバス上の識別名とアドレスの最後の区切りになります。 | 必須。ドライバーの中で一意(大文字と小文字は区別しません)。 | 入力しているあいだ、名前の変更が何を連れていくかを先に見せます(「参照を確認しています…」、続けて追随する参照の件数、または「実効アドレスは変わらないため、更新が必要な参照はありません。」)。Enter か欄を離れると確定し、古いアドレスへのすべての参照が同じ操作で書き換えられます:「機器の名前を変え、参照 3 件を更新しました。」空の名前は拒否されます:「機器の名前は必須です。」 |
| ドライバー | 機器が話すプロトコル。 | 読み取り専用。 | 作成時に決まります。ドライバーを参照してください。 |
| 読み出し周期(ms) | タグが上書きしない限り、ステーションがその機器のタグを読む間隔。 | 1000。0 以下の値は 1000 として保存されます。 | 固定の 1 秒で読むドライバー、または送りつけられるデータを受けるドライバー(Mitsubishi MC、BACnet、IEC 61850、OCPP、LoRaWAN)では出ません。 |
「接続」のカード
このカードは接続の項目を宣言するすべてのドライバーで現れ、そのドライバーが読む項目だけを見せます。各項目の意味は、それぞれのドライバーのページで詳しく説明します。ここにあるのは、パネルが描くとおりの全体の一覧です。
| 項目 | 出るドライバー | 何であるか |
|---|---|---|
| ホスト | Modbus TCP、OPC UA、Siemens S7、Rockwell、Beckhoff、Mitsubishi、BACnet、IEC 61850、Redfish、AVEVA PI、HTTP | ホスト名または IP アドレス。空は localhost の意味です。IPv6 の直書きは、基準 URI で自動的に角括弧に入ります。 |
| ポート | Modbus TCP、OPC UA、Beckhoff、Mitsubishi、BACnet、IEC 61850、Redfish、AVEVA PI、HTTP | TCP ポート。0 はドライバーの既定(502、4840、851、5007、47808、102、443、443、80)を取ります。 |
| ユニット ID | Modbus TCP、Modbus RTU | Modbus のユニット ID。TCP では 0 から 255、シリアル回線では 1 から 247 で、回線ごとに一意です(「ユニット ID は 1 から 247 のあいだである必要があります。」)。 |
| 通信の最小間隔(ms) | Modbus TCP | 1 回の試みが終わってからエンドポイントが次を始めるまでの休止。0 から 1000、既定は 0(「互換性のための調整、0〜1000 ms。0 は人為的な遅延を加えません。」)。ホストとポートを共有する有効な機器は、そのうち最大の値を使い、ほかの機器が引き上げているときはカードがそう伝えます:「実効 200 ms · 192.168.0.10:502 上のほかの有効な機器がエンドポイントの最大値を引き上げています。」 |
| シリアル回線 · 固定 | Modbus RTU | 回線の名前とその組で、読み取り専用です。変更は回線自身のページで行います。「回線がありません」または「物理回線が割り当てられていません」は、機器が回線を失って保存できない状態です:「Modbus RTU の回線は必須です。」 |
| ラック / スロット | 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 として導かれます。空のときはホストを使います。 |
| 機器 ID | BACnet | BACnet のデバイスインスタンス。 |
| サーバー / キー | LoRaWAN | アプリケーションキー。 |
| 識別子 | OCPP、LoRaWAN | 充電ポイントの ID、または DevEUI(コロンやダッシュ付きの綴りは、素の 16 進に整えられます)。空のときは、整えた機器の名前が使われます。 |
| リソースのパス | OPC UA、AVEVA PI、HTTP | 権限部分の後ろに付く経路です。OPC UA のサーバーパス、PI Web API のサービスのルート(既定は piwebapi)、または HTTP のすべてのタグの経路がつながる接頭辞です。 |
| 通信方式 | AVEVA PI | 平文の HTTP で送るというチェックボックスです。オフは HTTPS で、「HTTPS。ベアラートークンやパスワードは、PI Web API に届くまで暗号化されたままです。」という注記が付きます。オンにすると注記は警告に変わり、要求のたびにトークンやパスワードが暗号化されずに送られること、これはほかのトランスポートで答えない PI Web API のためのものであることを伝えます。 |
| ユーザー名、パスワード | OPC UA、Redfish、AVEVA PI | 機器ごとの資格情報です。ユーザー名が空なら匿名の接続になります(「空 = 匿名。機器ごとに保存され、パスワードは保存時に保護されます。」)。 |
| ベアラートークン | AVEVA PI | 設定されているとユーザー名とパスワードより優先されるトークンです。トークンを表示で中身が見えます。 |
Matter の機器は別の「接続」のカードを見せます。ノード ID · 読み取り専用は、ペアリングが割り当てた 64 ビットのノード ID(保存された識別名が読めないときは「再ペアリングが必要」)、そして状態は機器の稼働状態の言葉です。どちらも編集できません。Simulated の機器には「接続」のカードがまったくありません。
資格情報と証明書
パスワードとベアラートークンは、ユーザーごとの Windows のデータ保護によって保存時に保護されるので、構成のデータベースが平文の値を持つことはありません。この保護は、その秘密を入力した Windows のアカウントと機械に結び付いています。別のアカウントでは欄が空で戻り、「この Windows アカウントでは読めません。入力した機械と Windows アカウントでのみ開きます。ここでもう一度入力してください。」という注記が付きます。資格情報はドライバーに直接渡され、基準 URI にも診断ログにも現れず、操作ログ帯が見せるエラーの文からも伏せられます。
OPC UA の機器は、セッションが開く前に現場設備の証明書を提示します。このステーションが一度も承認していない証明書は、黙って失敗するのではありません。機器はツリーとページで「証明書の承認を待っています」と表示し、通知バーのボタンがその証明書を開いた現場設備へのアクセスに行き、承認するか遮断するかを選べます。あとで承認を取り下げると、それで動いていたセッションは閉じます。詳しくは OPC UA のページにあります。
「コマンド」のカード
読むだけでなく、何かをするよう頼める現場設備に届くドライバーが 3 つあります。HTTP、Redfish、AVEVA PI です。その機器のページには「接続」と「タグ」のカードのあいだにコマンドのカードが置かれ、「この現場設備に頼めることです。各コマンドは、機器のアドレスの下で要求を送るパスを指定します。」という見出しが付きます。一覧は誰にでも見えますが、宣言、編集、実行には Connector の構成が必要で、そのビットを持たないロールには項目もコマンドも描かれません。
コマンドを追加は「Command 1」という名前の行を足します(すでにあるものに続けて番号が付きます)。各行は次を持ちます。
| 列 | 何であるか |
|---|---|
| 名前 | そのコマンドの呼び名です。このステーション自身の OPC UA のアドレス空間では、機器上のメソッド名にもなるので、機器の中で一意です。 |
| 経路 | 要求が行く先で、機器自身のアドレスの下にあります。現場設備の資料が名指しする経路、たとえば redfish/v1/Systems/1/Actions/ComputerSystem.Reset です。経路のないコマンドが機器に載ることはありません。 |
| 引数 | コマンドが取る 1 つの値の名前で、現場設備が呼んでいるとおりに書きます(ResetType)。何も取らないコマンドでは空です。 |
| オン | そのコマンドをそもそも出すかどうかです。オフのコマンドは機器上に作られず、実行もされません。これが、何を指しているかを失わずにコマンドを寝かせておく方法です。 |
| 値 | 値を取るコマンドで、この 1 回の押下が送る内容です。機器ではなく押下に属するので、保存されることはありません。 |
行の末尾のまとまりには、その行だけに効く 2 つのコマンドがあります。実行は送信し、現場設備が何と答えたかを伝えます(「「Reset」の答え:受け付けました」)。そして削除です。実行は、消えるのではなく、なぜ拒否されるかを伝えます。経路のないコマンド(「このコマンドにはまだ経路がないので、送るものがありません。」)、オフのコマンド、まだランタイムへの保存を待っているコマンド、接続していない機器、そしてステーション自身のエンジニアリング上や実行中の境界です。ほかのドライバーはこのカードを持ちません。充電ポイントや Matter のノードもコマンドを取りますが、そちらはプロトコルが決めていて、ここに入力するものではなくドライバーから来ます。
「タグ」のカード
カードの見出しはタグで、続けて「アドレスの書式 · <hint>」がこのドライバーでのタグのアドレスの書き方を伝え(「自由書式のタグ名(例:sim/temperature)。」「レジスター番号 + 個数(型付きの項目)。」「ノード ID、例:ns=2;s=Temperature。」)、Connector の構成には「行にチェックを入れてからセルを編集すると、その内容がすべての行に適用されます。適用するとチェックは外れます。」という案内とタグを追加のボタンが付きます。タグを追加は「Tag 5」(件数に続けて番号が付きます)を Float、またはそのドライバーが対応する最初の型で、読み取りのみとして作り、それを選びます。操作ログ帯には「「Furnace」にタグを追加しました。」、新しいタグにまだ足りないものがあるときは「「Furnace」にタグを追加しました。右側で詳細を入力してください。」と出ます。
グリッド
行はデータ型でまとめられ、順序は数値、ブール値、テキストとその他で、各まとまりの見出しに件数が付きます。列はタグのページのカードの順に並び、その行に当てはまらないセル(ブール値のタグの数値の項目)は空で無効な状態で描かれます。
| 列 | まとまり | 何を編集するか |
|---|---|---|
| チェック | 一括編集のためにその行を選びます。Connector の構成にだけ描かれます。 | |
| 名前 | 全般 | タグの名前です。ページと同じ、名前の変更の予告と参照の書き換えが付きます。決して複製されません。 |
| 型 | 全般 | データ型です。変えると、行の信号の種類、Modbus のレジスターの種類、上下限の動作、NaN の方針がタグの説明どおりに合わせられます。 |
| アクセス | 全般 | 読み取りのみ、書き込みのみ、読み書き(OCPP、Matter、LoRaWAN は読み取りのみ)。 |
| 単位 | 全般 | 工業単位です。 |
| 周期(ms) | 全般 | タグごとの上書きです。0 は機器の既定という意味です。固定周期のドライバーと送りつけ型のドライバーでは出ません。 |
| アドレス | 取得元 | 自由記述のアドレスで、それを取るドライバーで出ます。決して複製されません。 |
| 信号 | 取得元 | 模擬信号の種類で、名前の横に形の絵が付きます。Simulated の機器だけです。 |
| 生値 | 取得元 | 直近の生の読み取りで、読み取り専用です。 |
| スケーリング ×、スケーリング +、スケーリング後 | 変換 | スケーリングの段階の傾きと切片、そしてその結果です。 |
| 校正 有効、校正 ×、校正 +、校正後 | 変換 | 校正の段階です。そのスイッチ、傾きと切片、そして結果です。 |
| 上下限 有効、下限、上限、上下限動作、上下限後 | 変換 | 上下限の段階です。そのスイッチ、境界、越限したときの動作、そして結果です。 |
| 小数桁 有効、小数桁 | 変換 | 小数桁の段階です。そのスイッチと桁数(0 から 15)です。 |
| 反転 | 変換 | ブール値の否定です。 |
| 部分開始、部分長さ | 変換 | 文字列の部分取り出しの範囲です。 |
| 値 | 現在の値 | 工業値で、読み取り専用です。 |
| 操作 | 開く、そして Connector の構成には有効化、無効化、削除で、最後のものには確認が付きます。 |
3 つの段階のスイッチも、それが支配する項目と同じ列であり、一緒に一括編集されます。行にチェックを入れ、係数を入力し、段階をオンにすれば、その行が読む内容が同じ 1 回の編集で変わり、点をひとつずつ開く必要はありません。グリッドがまだ持たないのは、無効な読み値の方針、2 点調整の補助、書き込みの入力欄、そして相互参照です。それらはタグのページにあります。校正だけを持つロールはグリッドを読めますが、そこでは何も編集できません。校正のセルと校正オンのスイッチも同じで、そのロールの校正の編集はタグのページを通ります。
一括編集
変えたい行にチェックを入れ、どれか 1 行のセルを編集します。新しい値はその行とチェックの入ったすべての行に適用され、チェックは使われて外れます。行にチェックが入っているあいだ、グリッドの上の帯が「3 行を選択中です。セルを編集するとすべての行に適用され、チェックが外れます。」と伝え、選択を解除のボタンが付きます。チェックは機器に属するので、あとで戻ってくると外れています。混ざった選択を正しく保つ規則が 3 つあります。名前とアドレスは決して複製されません。型のセルは、届いた行ごとに依存する項目を合わせます。そして、その行が取れない値はその行では拒否され、元のままに保たれます。これが、文字列の行が数値の信号の種類を渡されても壊れず、整数の行が NaN の上下限の動作を渡されても壊れない仕組みです。
機器を複製
機器を複製は、選んだ機器から自分のものの機器を作ります。接続の項目と資格情報は同じで、すべてのタグが新しい識別名の下に、変換経路の全体、有効かどうか、読み出し周期ごと複製されます。複製は、そのドライバーで空いていれば元の名前を取り、埋まっていれば「Furnace (2)」、「Furnace (3)」となります。元がどのフォルダーにあっても、複製はドライバー自身の階層に置かれます。Modbus RTU の複製は同じ回線に残り、次の空きユニット ID を取ります。ページは複製に開きます:「「Furnace」を「Furnace (2)」に複製しました。複製は自由に編集できます。」
重複と衝突
機器の名前はドライバーの中で一意で、大文字と小文字は区別しません。作成のコマンドは番号の接尾辞でよけますが、すでに使われている名前への変更は確定時に拒否されます。1 つのドライバーの下で、有効な 2 台の機器の名前が同じ技術的な区切り(Line A と Line-A)に整うと、どちらかが勝つのではなく両方が定周期読み出しから外され、どちらかの名前を変えるか無効にするまで、そのタグは何も読みません。技術的な識別名は 128 文字までです:「技術的な機器の識別名は 128 文字を超えられません。」Modbus TCP の機器は、ユニット ID が違えばホストとポートを共有でき、そのときエンドポイントのトランザクションの間隔も共有します。Matter の機器は同じノード ID を名指しできます。機器検出は代わりに既存のものを開くよう促しますが、2 つ目を禁じはしません。
機器のページがしないこと
ドライバーは変えられず、フォルダーはここでは編集せず、Modbus RTU の機器の回線を付け替えることもできません。機器を有効にしてもそのタグは有効になりませんし、機器を無効にしてもタグのスイッチは切り替わりません。機器ごとの取り込みや書き出しはなく、接続を試す手段は、機器を有効にして稼働状態と最後のエラーを読むことのほかにありません。