アドレス空間
すべてのポイントが属する 7 つの予約された最上位、アドレスの書き方と変換のされ方、ポイントが終わってメンバーが始まる場所、絞り込みの入力欄が絞るもの、そして編集画面でアドレスを入れる 3 つの方法。
式、スクリプト、ダッシュボードのバインド、エージェントのツールが名指しできるポイントは、すべて 7 つの予約された最上位のどれかの下にあります。自分で付けた名前も必ず最上位の下にあるので、最上位そのものとぶつかることはありません。Logic のページの欄は同じ最上位を、2 つの見出しに分けて描きます。そして、ツリーが見せるものが、そのまま入力するものです。行のアドレスが、式が使う文字列そのものです。
7 つの最上位
| 最上位 | 何を持つか | 欄での見出し | 編集する場所 |
|---|---|---|---|
System |
アプリケーションが自分自身について公開する 4 つの診断の値 | ほかのページから来たもの | どこでも編集しません |
Server |
内蔵の OPC UA サーバーの 4 つの診断の値 | ほかのページから来たもの | 設定で |
Connector |
実時間のドライバー、フォルダー、機器、タグのツリー | ほかのページから来たもの | Connector のページで |
Variables |
ここで定義する変数を、そのフォルダーの中に | ここで定義したもの | ここで |
Alarms |
ここで定義する警報の実時間の状態を、そのフォルダーの中に | ここで定義したもの | ここで(状態そのものは読み取り専用です) |
Process |
モデルごとのユニット。チャネル、実行の状態、生産性、コマンド、用意 | ほかのページから来たもの | Process のページで |
Assets |
ライブラリの画像、アイコン、色を、名前でアドレスにできる形で | ここで定義したもの、素材の最上位として | 素材のパネルで |
アクションとトリガーは欄の節ではありますが、アドレス空間の最上位ではありません。アドレスではなく識別で参照され、実時間の値も持ちません。Assets の最上位は、式と「参照…」の選択のために存在します。欄ではその場所を素材のライブラリの最上位が占めるので、ツリーに同じ名前の最上位が 2 つ出ることはありません。System と Server の決まったポイント、そして Connector と Process の枝の形は、ほかのページから来たものに並べてあります。
アドレスの書き方
アドレスは、予約された最上位を根とする、ドットで区切った区切りの並びです。Connector.Simulated.Air.CompressedAir.HeaderPressure、Variables.Forno.Setpoint、Alarms.HighLevel、System.Now、Assets.Colors.Red のようになります。表示の名前は自由記述のままで、アドレスは各名前を変換した区切りを使います。英数字でない文字はすべて _ になり、数字で始まる名前は先頭に _ が付きます(Forno de teste は Forno_de_teste に、3rd zone は _3rd_zone に、空の名前は _ に応えます)。区切りは必ず識別子なので、ドットの形は必ず使えます。区切りは、文字列のリテラルを使った角かっこの形(Variables["Setpoint"])でも書けて、評価は同じアドレスとして読みます。
ポイントが終わってメンバーの参照が始まる場所は、最上位によって変わります。Connector のアドレスは、ドライバーと機器の間に機器のフォルダーの段を持ちます(Modbus RTU の回線は段を足しません)。Variables と Alarms は名前の前にフォルダーを 3 段まで持ちます。ですからこれらの最上位では、ポイントは解決できるいちばん長い前半で、その後ろに続くものがメンバーです(.Value、.State())。Assets は必ず最上位の 2 つ下です。Process は、ふつうのポイントで 4 つ、生産性のまとめのポイントで 6 つ、生産性の産出や手順のポイントで 7 つです。その最上位が許すより短い連なりは、不完全なアドレスとして拒否されます。
式とスクリプトの中のアドレスは静的でなければなりません。どの区切りも識別子か文字列のリテラルで、計算した値であってはいけません。Variables[someName] は、検証のときに「アドレスは静的でなければなりません」として拒否されます。
アドレスの衝突
1 つの節の 1 つの段は、そこに入れたフォルダーと定義が共有する 1 区切りの名前空間です。違うフォルダーにある Setpoint という名前の変数が 2 つあるのはかまいません。同じ段で Forno に変換される変数とフォルダーはいけませんし、Pump 1 と Pump_1 が並ぶのも同じです。編集画面は、入力しているそばからそういう名前を拒否し、すでにそのアドレスに応えているものを名指しします。「「Pump 1」は、すでに「Variables.Pump_1」として応答します。同じフォルダーに入れる名前は、それぞれ違う区切りに変換される必要があります。」素材も分類ごとに同じ規則に従います。自分の画像、アイコン、色のうち 2 つが同じ区切りを共有することはできませんし、区切りがシステムの項目と一致するユーザーのアイコンや色は、そのアドレスでシステムのものより優先されます。
アドレスを入れる
式、条件、スクリプトにアドレスを入れる方法は 3 つあります。
- 入力する。編集画面はアドレスの語を補完します。裸の語には最上位の名前(
ConはConnectorを出します)、次にそこまで入力した道すじの子を、大文字と小文字を問わない前方一致で、そしてその語がポイントを指したあとは、そのポイントの読めるメンバーを出します。候補はどれも語の全体を置き換えます。 - 参照…は、
Assetsの最上位も含めた、すべての最上位のメンバーの段までのツリーの上に選択の画面を開きます。行を選んで挿入を押すか、その行をダブルクリックすると、そのアドレスがカーソルの位置に置かれます。フッターは、選んだ行が挿入する文字列を見せ、何も選んでいない間は「ダブルクリック(または「挿入」)で編集画面に追加します。」と出します。 - ポイントから写す。欄のどのポイントを選んでもポイントのパネルが開き、そのアドレスの項目は選んでコピーできる読み取り専用の文字列で、実時間の値、その品質、その時刻の隣にあります。変数と警報の編集画面も、名前の入力欄の下に自分のアドレスを繰り返します。
ポイントの下で、選択の画面はその読めるメンバー(Value、ValueToReal()、State() など)を並べます。メンバーはそれ自体のアドレスではありません。ポイントのアドレスの後ろに足すものです。式は、この同じ面を、それぞれのメンバーが返すものとともに並べます。
絞り込みの入力欄
欄の上の絞り込み…の入力欄は、名前に入力した文字を含む行だけにツリーを絞ります。大文字と小文字は問いません。ポイントは、それ自身が一致したときだけ残ります。フォルダーは、それ自身か子孫のどれかが一致したときに残り、一致したところまで開きます。アクションとトリガーの節は、名前が一致した行だけを並べます(節自身の名前が一致すれば節は一覧に残りますが、中は空です)。素材の最上位は、名前が一致する分類だけに絞られ(Col と入力すると色が残ります)、その最上位自身の名前だけが一致したときは丸ごと出ます。名前が一致したアドレス空間の最上位は一覧に残り、展開したときに枝を読み込みます。メンバーが絞り込んだ表示に入ることはありませんし、絞り込みはその画面だけのものです。同じステーションを開いているもう 1 つのブラウザーは、自分の絞り込みを保ちます。
アドレス空間がしないこと
無効な機器、内蔵のサーバーにタグが実体化されていない機器、そしてバインドのない Process のチャネルについては、何も公開しません(そのチャネルは一覧には出ますが、メンバーを差し出しません)。名前は翻訳されません。アドレスは表示の名前を変換したものなので、変数、警報、フォルダー、機器、タグ、画像の名前を変えることは、アドレスを変えることです。アプリはそれを、安全な名前の変更ですべての参照の中で書き換えます(変数、機器のフォルダー)。