変数
変数の編集画面をカードごとに。識別とアドレス、式と内部値の 2 つの種類、出力の型、実時間の値のカード、設定する値、品質と保持、コマンド、そして編集画面が拒否するもの。
変数は、ステーションが計算するか保持する、型を持つ 1 つの値です。Variables の下に、そのフォルダーの道すじと変換した名前でアドレスを取ります。Logic の欄で変数の行を選ぶと(あるいは新規… > 新しい変数、フォルダーの上での新しい変数で作ると)、その編集画面が開きます。編集画面を読むには Logic の表示が、どの入力欄でも変えるには Logic の構成が、内部値を書き込むには Logic の操作が必要です。
パネルの見出しは、その行の印(式の印か内部値の印)、名前、そして種類ごとの 1 行を見せます。「このステーションがアドレス空間の式から計算する値で、ロジックの周期ごとに計算し直されます。」か、「このステーションが保持する値です。スクリプト、ダッシュボード、または操作者が書き込み、どこからでもアドレスで読めます。」です。入力の欄には識別のカード、その次に式の編集画面か内部値のカードが入ります。右側の帯には値のカードと、式のときは参照しているポイントのカードが入ります。
識別
| 項目 | 意味 | 受け付ける値と既定 | 効果 |
|---|---|---|---|
| 名前 | 表示の名前です。それを変換した区切りが、アドレスの最後の段になります。 | 自由記述。新しい変数は VariableN です。 |
安全な名前の変更(下記)で確定します。空の名前は拒否されます(「変数の名前は必須です。」)。 |
| アドレスの行 | その変数が応えるアドレスで、名前の下に繰り返されます。節の最上位、フォルダーの段、区切りの順です。 | 読み取り専用。 | 入力すると名前に従います。フォルダーの部分は、ツリーの移動先でだけ変わります。 |
| 種類 | 値の作られ方です。 | 式(既定)か内部値。 | 内部値に切り替えると、初期値から値をまき直します。式に切り替えると、次の周期まで欠測になります。 |
| 出力の型 | すべての結果と書き込みが合わせられる分類です。 | ブール、整数、小数(既定)、文字列、日時、画像、アイコン、色。 | 変えると、内部値の変数は値をまき直し(保持する設定ならその種も保存します)、式の変数は欠測になります。プレビューは新しい型で解決し直します。 |
| 単位(任意) | 値の隣に描く工業単位です。 | 自由記述。既定は空です。 | 値のカードに出て、スクリプトからは .EngineeringUnit として読めます。 |
| 説明(任意) | 自由記述です。 | 既定は空です。 | 評価には効きません。 |
名前とアドレス
名前の入力欄は、名前の変更の入力欄です。入力している間はその場だけにとどまり、少し置くと入力欄の下の行が影響を予告します(「参照を確認しています…」のあと、「名前を変えると、このアドレスを読んでいる 3 か所が更新されます。」、「現在のアドレスを使っている参照はありません。」、あるいは新しい名前が同じ区切りに変換されるときは「実効アドレスは変わらないため、更新が必要な参照はありません。」)。Enter を押すか入力欄から離れると確定します。確定すると、変数の名前が変わり、古いアドレスを使っていた式、スクリプト、条件、ダッシュボードのバインドがすべて書き換わり、実時間の値とチャネルのバインドは保たれ(チャネルは変数の変わらない鍵で結び付いていて、名前では結び付いていません)、「変数の名前を変え、参照 N 件を更新しました。」と伝えます。その段でぶつかる名前は、その場で拒否されます。「「X」は、すでに「Variables.X」として応答します。同じフォルダーに入れる名前は、それぞれ違う区切りに変換される必要があります。」書き方と衝突の規則はアドレス空間にあります。
式
種類が式の間に出ます。式の編集画面と、その「参照…」のボタン、そして次の助言です。「アドレス空間の上に書く、1 つの JavaScript の式です(例:Connector.Simulated.Pump.Flow.ValueToReal() * 0.1、Variables.Setpoint.Value)。出力が Image、Icon、Color のときは、Assets.Images、Assets.Icons、Assets.Colors のアドレスを返します(例:Variables.Level.Value > 50 ? Assets.Colors.Red : Assets.Colors.Green)。入力すると候補が出ます。「参照…」から選ぶこともできます。」文字はキーを押すたびに自動で保存され、0.5 秒ごとに検証されます。問題は値のカードに出ます。言語、読み取りの面、すべての規則は式にあります。式の文字は、種類が内部値の間も保たれますが、使われません。
内部値
種類が内部値の間に出ます。
| 項目 | 意味 | 受け付ける値と既定 | 効果 |
|---|---|---|---|
| 初期値 | 種になる値を、文字列で書きます。その下には「起動時に、出力の型に沿って読み取られます。値を持たせないときは空欄にしてください。」と出ます。 | 任意の文字列。既定は空です。 | 変数を作ったとき、種類や出力の型を変えたとき、そして保持しない変数の起動のたびに、出力の型に沿って読み取られます。空は値なしという意味で、その変数は欠測から始まります。読み取れない文字列は値のカードで指摘され(「初期値を 小数 として読み取れませんでした。」)、欠測をまきます。 |
| 保持する:最後に書き込まれた値が再起動をまたいで残ります | 書き込みを保存するかどうかです。 | 既定はオフです。 | 保持する変数は、書き込みが止まってから約 1 秒後、遅くとも最初の未保存の書き込みから 5 秒後に保存されます。ランタイムを止めると、残っているものが書き出されます。次の起動では、保持した文字列が今の出力の型で読み取られ、もう読み取れないときは初期値が使われます。保持しない変数は、起動のたびに初期値に戻ります。 |
設定する値
設定する値の入力欄とその書き込みのボタンは、Logic の操作を持つロールにだけ描かれ、ステーションが読み取り専用の間は「ランタイム停止中」で灰色になります。エンジニアリングロックは、この 2 つには触れません。値を入力して書き込みを押すと、その文字列が出力の型に沿って読み取られます。読み取れない文字列は拒否され(「「abc」を 整数 として読み取れませんでした。」)、何も書き込まれません。空の入力欄は値なしを書き込み、その変数を欠測に戻します。書き込みは 1 つの経路に乗ります。実行中のレシピやインターロックがその変数を押さえている間は拒否され(「「Variables.X」は「<holder>」によって書き込みから守られています。」)、出どころを操作者として古い値から新しい値へという形で記録され、ロジックのキューの上で適用され、その変数が保持する設定なら保持の印が付きます。操作ログ帯は「値を書き込みました。」と伝えます。この入力欄は表示ではありません。表示は値のカードです。
出力の型
| 出力の型 | 運ぶもの | 備考 |
|---|---|---|
| ブール | true か false | チャネルを通じて記録も作図もできます |
| 整数 | 64 ビットの整数 | 記録も作図もできます |
| 小数 | 倍精度の実数 | 記録も作図もできます。表示は小数 2 桁です |
| 文字列 | 自由記述の文字列 | |
| 日時 | ある時刻 | ステーションの日付と時刻の形式で出ます |
| 画像 | 素材の id を文字列として | 見せるための出力です。式は Assets.Images.* のアドレスを返します |
| アイコン | グリフか SVG のマークアップを文字列として | 見せるための出力です。Assets.Icons.* のアドレスを返します |
| 色 | 16 進数の色を文字列として | 見せるための出力です。Assets.Colors.* のアドレスを返します |
型合わせは、アプリのほかの場所と同じ寛容な変換です。文字列は読み取られ、数値は丸めるか変換され、変換できないものは値なしになります。見せるための型の内部値の変数は、書いたそのままのもの(素材の id、グリフ、16 進数)を持ちます。3 つの見せるための出力はダッシュボードのためにあり、そこでは結び付いた画像、アイコン、シンボルのコンポーネントが、その変数が今解決した先を描きます。それらが返すアドレスは素材に並べてあります。
値のカード
値の帯は、今の値を 1 秒に 2 回更新して見せます。数値などの型では単位を隣に置いた表示、画像では絵、アイコンではその大きさのグリフ、色では 16 進数を添えた色見本です。欠測は横線で描かれます。式の変数では、このカードが入力中の下書きを、周期が拾う前に今の値で評価して予告します。式が正しくない間、表示は横線のままで、検証のメッセージがカードに出ます(名前の衝突もここに出ますが、名前が悪くてもプレビューが止まることはありません)。数値などの表示の下で、カードは「この変数を記録するには、Process > Definition > Channels でチャネルを結び付けてください。」と述べます。結び付けは、Process のモデルのチャネルの画面で行います。
式の変数では、参照しているポイントのカードが、式が名指しするすべてのアドレスを今の読み値とともに並べ、アドレスがもう解決しないものは「?」にするので、悪い入力がひと目で分かります。
品質
変数の値は、型を持つ値であるか、値がまったくない(欠測である)かのどちらかです。ポイントが良好なのは、自分の値があるときだけです。内部値の変数は値を持てば良好で、空の種は最初の本当の書き込みまで欠測です。式の変数は最後の評価の品質を運ぶので、参照しているポイントのどれかが欠けている、悪い、あるいは値を持たないとき、式は評価されず、その変数は品質の悪い欠測になります。空の読み取りが黙って 0 になることは決してありません。スクリプトはその品質を .State() で読みます。その変数に結び付いたチャネルは、欠測を欠測として記録します。
コマンド
| コマンド | 何をするか | 灰色になるとき | 描かれないとき |
|---|---|---|---|
| 複製 | その変数を、空いている名前(Name (2) など)で変数の最上位に写し、その複製を開きます。複製は新しい鍵を持つので、まだどのチャネルにも結び付いていません。 |
ステーションがロックされているか読み取り専用のとき。 | ロールが Logic の構成を持たないとき。 |
| 変数を削除 | 「「X」を削除しますか?変数が取り除かれます。そのアドレスへの参照は、解決できなくなります。この操作は元に戻せません。」と尋ね、保持していた値ごと削除します。 | ステーションがロックされているか読み取り専用のとき。 | ロールが Logic の構成を持たないとき。 |
| 移動先(右クリック) | その変数を別のフォルダーか最上位に入れます。アドレスとすべての参照が付いてきます。 | ステーションがロックされているか読み取り専用のとき。 | ロールが Logic の構成を持たないとき。 |
変数に有効化と無効化はありません。常に評価されるか、常に保持されるかのどちらかです。
編集画面が拒否するもの
- 空の名前、あるいはその段で区切りがすでに使われている名前。
- 読み取り専用の JavaScript の式 1 つになっていない式、存在しないポイントやほかの式の変数を参照する式、試しの評価に失敗する式(正確なメッセージは式にあります)。
- 出力の型で読み取れない初期値や設定する値、そして NaN や無限大の値。
- 実行がステーションをロックしている間、あるいは停止している間のあらゆる変更。入力欄はステーションが持っている内容に読み直され、操作ログ帯が理由を述べます。
この編集画面がしないこと
作図も記録もしません(それはチャネルの仕事です)。タグに書き込みません(内部値をその先へ運ぶのはスクリプトかダッシュボードの操作部です)。ほかの式の変数を参照しません。値の履歴を持ちません。そして、保持しない値を再起動をまたいで残しません。