ツールを範囲ごとに

エージェントが呼び出せるすべてのツールが何をするかを、それを名乗る機能の切り替えごとにまとめたもの。

Markdown で表示

ツールの名前は、変わらない snake_case の識別子です。エラーは構造化されていて、手が打てる形で返ります。失敗した呼び出しは、何が悪かったかに加えて、それを直すツールや手順を名指しした助言を返すので、エージェントは当てずっぽうではなく自分で直します。バックアップ(管理)の範囲が入っているときは、サーバーがエージェントに、構成を変える前に構成のバックアップを作るようにも指示します。この一覧のうちどれがエージェントに実際に見えるかは、範囲ごとに開くものが決めます。

Connector:読み取り

ツール 何をするか
connector_browse 構成済みのツリーを、実時間の稼働状態とともに並べます。Modbus RTU はドライバー、シリアル回線、機器、タグの順、そのほかのドライバーはドライバー、機器、タグの順で、機器ごとにそのフォルダーを隣に置きます。tag_readtag_write、Logic の式が使うタグの別名(Driver.Folders….Device.Tag)も明かします。内蔵のサーバーが止まっている間、別名は null です。
tag_read 1 つのタグの実時間の値を別名で読みます。機器の水準の生値、値の変換経路を通ったあとの工業値、品質、そして 2 つの時刻です。

Connector:構成

ツール 何をするか
driver_capabilities このアプリが扱えるすべてのドライバーを、機器に必要な接続の項目、タグのアドレス指定の方式(自由記述のアドレスと型付きの項目のいずれか、または両方)、機器検出への対応とその引数、時間の範囲、そして扱える値の型とともに並べます。エージェントが device_upserttag_upsert の前に読む地図です。
serial_line_list 保存されているすべての Modbus RTU のシリアル回線を、無効なものや空のものも含めて、その変わらない id と、設定した値、自動の値、実効の値とともに並べます。
serial_line_upsert Modbus RTU の回線を作るか、変わらない id で更新します。名前と有効の状態はいつでも変えられます。通信の最小間隔も、有効なままで変えられます。シリアルのポート、ボーレート、シリアルの形式、応答のタイムアウトは、保存されている回線が無効な間だけ変えられます。
serial_line_delete 変わらない id で回線を削除します。まだ機器を持っている回線は、その配下のすべての機器とタグを消してよいと呼び出しがはっきり認めない限り、拒否されます。
device_upsert ドライバーと名前で機器を作るか更新します(ドライバーは作成のあと変えられません)。渡された引数だけが変わります。接続の項目はドライバーごとです。機器をフォルダーに移すと、その古いタグのアドレスへの参照がすべて書き換わります。変更はその場で、動いているサーバーに取り込まれます。
device_delete 機器とそのすべてのタグを削除します。変更はその場で、動いているサーバーに取り込まれます。
tag_upsert 機器の上にタグを作るか更新します。アドレス指定はドライバーごとです(自由記述のアドレスと型付きの項目のいずれか、または両方)。応答は、組み立てられたバス上のアドレスと、tag_read のための別名を返します。数値のタグでは、無効な読み取りの段階(NaN のときの処理と、読み取りに失敗したときの見せ方)も含みます。
tag_delete タグを削除します。その場で取り込まれます。

Logic:読み取り

ツール 何をするか
logic_browse 最上位を根とする Logic のアドレス空間、つまりすべての式が読むのと同じドットのツリーを見て回ります。System、Server、Connector、Variables、Alarms、Process、Assets です。操作者のフォルダーは、本物のアドレスの段です。子のポイントには、実時間の値と品質が含まれます。
logic_read ドットのアドレス(たとえば Variables.Setpoint)で 1 つのポイントを読み、実時間の値と品質を返します。

Logic:構成

upsert は部分的です(渡さなかった引数はそのままです)。重ねた下書きはどれも、Logic の編集画面と同じ検証を通ります。正しくない下書きは拒否され、途中まで適用された状態は残りません。

ツール 何をするか
variable_upsert 変数を作るか更新します。式(アドレス空間の上の、読み取り専用の JavaScript の式 1 つ)か、内部値(書き込める、必要なら保持する値)です。名前が鍵で、それを変換したものがアドレスです。フォルダーの引数がそれを入れる場所を決め、古いアドレスへの参照をすべて書き換えます。
variable_delete パスで変数を削除します。保持していた値も一緒に消えます。それに結び付いていたチャネルは、取得元を失います。
action_upsert アクションを作るか更新します。書き込みの動詞をちょうど 2 つ持つ JavaScript の文の集まりで、内部値の変数への代入と、工業値としてのタグへの書き込みです。静的に検証されるだけで、保存のときに実行されることはありません。
action_delete 名前でアクションを削除します。それに結び付いていたトリガーは、何もしなくなります。
trigger_upsert 周期のトリガーを作るか更新します。intervalMs(最小 100)ごとに、結び付いたアクションがロジックのキューの上で発火します。実行が残っている間に来た発火は飛ばされます。アクションとの結び付きは緩く、名前によります。
trigger_delete トリガーを削除します。結び付いていたアクションには触れません。
alarm_upsert 警報を作るか更新します。Bool の条件の式、優先度(Critical/High/Medium/Low)、オンとオフのディレイ、確認が必要かどうか、そして知らせ方です。条件や時間を変えて保存すると、動いている状態の移り変わりが戻ります。
alarm_delete パスで警報を削除します。出ている知らせは、先に消されます。
logic_folder_upsert 1 つの節(Variables、Alarms、Actions、Triggers。最大 3 段)の整理のためのフォルダーを、作り、名前を変え、入れ直します。Variables と Alarms では、フォルダーの道すじがアドレスの一部なので、名前の変更と移動は、その下のすべての式、スクリプト、条件、ダッシュボードのバインドを書き換えます。
logic_folder_delete フォルダーを削除します。中にあったものは何も壊れません。項目と下位フォルダーは 1 段上に入れ直され、参照は書き換えられます。移り先で名前がぶつかるときは、削除が拒否されます。

Logic:操作

ここにあるものはすべて 1 本のロジックのキューに乗り、出どころ MCP として記録されます。

ツール 何をするか
variable_write 内部値の変数に値を書き込みます(その出力の型に合わせられ、保持する設定なら保持されます)。式の変数は計算される値なので、書き込みを拒みます。
tag_write 書き込めるタグに工業値を書き込みます。そのタグの値の変換経路を逆にたどり、機器の型に合わせ、設備に書き込みます。読み取り専用のタグと読み取り専用のドライバーは、理由を添えて拒否されます。
action_run 1 つのアクションをロジックのキューの上で実行し、その結果と所要時間を返します。無効なアクションは、走らずに失敗します。
alarm_ack 1 つの警報を確認します。操作者の応答にあたるもので、待っているものが何もなければ何もしません。
alarm_ack_all 応答を待っているすべての警報を、1 つのロジックのキューの項目として確認し、それぞれの遷移を記録します。

サーバー:読み取り

ツール 何をするか
server_status 内蔵の OPC UA サーバーの稼働状態を伝えます。動いているかどうか、稼働時間、エンドポイントの URL、つながっているクライアントのセッション、そして構成したアドレス空間の大きさです。

サーバー:操作

ツール 何をするか
server_start 内蔵の OPC UA サーバーを起動し、今の構成を実体化します。すでに動いていれば、何もしません。
server_stop サーバーを穏やかに止めます。機器との通信、タグの読み取り、実時間の Logic のアドレス空間は、次に起動するまで止まります。
server_restart 止めてから起動し、構成を実体化し直します。まとめて変更したあとの、完全な読み込み直しです。
connector_refresh 動いているサーバーを、構成した機器に合わせて差分で整えます(追加、削除、作り直し)。完全な再起動は行いません。変更を当てる、より軽いやり方です。
device_discover ドライバーの機器検出のスキャンを走らせ、候補をそのタグとともに返します。何も保存しません。プロトコルが本当のスキャンに対応しているドライバーだけが参加します。すでに存在する候補には、その印が付きます。

ログ:読み取り

ツール 何をするか
logs_read プログラム全体の実時間のログの流れ(イベントのコンソールと同じものです)を、最低の重大度(Debug/Information/Warning/Error。既定は Information)、領域(App/Server/Connector/Logic/Process/Dashboard/Agent/Licensing)、コンポーネント、そして文脈の部分一致で絞って読みます。新しいものから返します(既定 100 件、最大 500 件)。エージェントの操作は、Agent の領域に記録されます。
event_history_read 再起動をまたいで残る、運転のイベントの時系列を読みます。警報の遷移、発生記録の遷移、インターロックの遷移です。種類(Alarm/Occurrence/Interlock)、両端を含む UTC の期間、そして水準(警報の優先度、発生記録の重大度、インターロックの遷移)で絞れます。新しいものから、既定 100 件、最大 500 件です。厳密に読み取り専用で、記録を消すことも削除することもできません。

Process:読み取り

ツール 何をするか
process_models Process のモデルを丸ごと並べます。チャネル、共有のグループ、解決した配線と実行の状態を持つユニット、手順、操作パネル、レシピ、判定、発生記録、そして全体共通のレポートのテンプレートのライブラリです。エージェントが何かを始める前に読む地図です。
process_runs 実行記録を、新しいものから並べます。id、名前、状態、総合判定、何が走ったか、誰が始めたか(Station/User/Automation/Agent)、時間、サイクルの進みです。実行中のものだけに絞ることも、件数を区切ることもできます(既定 50 件)。
process_run id で 1 件の実行記録の、固定された記録の全体を読みます。スナップショット、メタデータ、標本の件数を添えた判定済みの判定基準、発生記録の発生区間とイベント、実行時の値としてのレシピの書き込み、コメント、そして固定されたレポートとラベルの成果物と、その印刷の試みです。必要ならデータログの行数と時間の範囲も計算します。
unit_status ユニットの実時間の状態を伝えます。実行中かどうか(実行中ならその実行記録も)と、それぞれのチャネルの後ろにある今の工業値を、記録せずに読みます。

Process:構成

ツール 何をするか
process_view_configure モデルの操作パネルをちょうど 1 つ構成します。その隣に描く印と、View のページに出すかどうかです。Process のまとまりで MCP から書き換えられるのは、これだけです。残りは Process のページで編集します。

Process:操作

エージェントが開始、終了、コメントした実行は、行った相手としてエージェントを残します。試験台でたまたまサインインしている操作者の名前が付くことは、決してありません。

ツール 何をするか
process_snapshot 手順の外で、ユニットのデータログの行を 1 つ取得します。呼ぶたびに、判定のない(総合判定 None の)、すでに完了した即時の実行記録が履歴に新しくできます。
process_evaluate データログの行を 1 つ取得し、判定に照らして判断します。完了した即時の実行記録を作り、その総合判定を返します。
process_recipe_apply 即時のレシピを、Process の書き込みの経路と信号源のロックを通じて、ユニットに 1 度だけ当てます。設備に指令を出しますが、実行記録は作りません(書き込みは記録されます)。時間に沿ったレシピは拒否されます。
process_start ユニットの上で手順の実行を開始します。その手順のメタデータの項目のための JSON のオブジェクトを添えます。必須のメタデータが足りない、あるいは正しくない、ユニットがすでに実行中である、共有チャネルのロックがぶつかる、のいずれかであれば開始は拒否されます。新しい実行記録の id を返します。
process_stop 実行中の実行記録を止めます。終了処理の区画、固定された履歴のスナップショット、計算された総合判定が行われます。
process_hold 実行記録の時間に沿ったプロファイルを、最後の設定値で一時停止します。データログは記録を続けます。
process_resume 一時停止した実行記録の、時間に沿ったプロファイルを再開します。
process_abort 実行中か一時停止中の実行記録を中止します。終了処理が走り、スナップショットが書かれ、状態は中止に、総合判定は不合格になります。
process_comment 実行記録のファイルに、時刻付きのコメントを足します。実行中なら時系列のメモ、終わったあとなら実行後のメモです。
process_report 終わった実行記録の PDF のレポートを作る(あるいは作り直す)か、そのファイルの道すじを返します。全体共通のライブラリのテンプレートを名指しすると、その手順に設定されたものより優先されます。どちらもなければ、すべての節を含む既定の様式が使われます。実行中は拒否されます。
process_run_delete 記録された実行記録を永久に削除します。履歴の索引の指し先と、実行記録ごとのデータベースのファイルです。実行中は拒否されます。構成には触れません。

ダッシュボード:構成

ツール 何をするか
dashboard_list ダッシュボード(あるいはモデルを名指しすると、そのモデルの画面)を並べます。グリッドの大きさ、フォルダー、アイコン、起動時の印、ロールごとの見え方、そして位置、レイヤー、プロパティの JSON を持つすべてのコンポーネントに加えて、保存されているすべての接続網です。コンポーネントの種類のカタログも、種類ごとの既定の大きさと既定のプロパティの一式とともに返します。
dashboard_upsert 名前でダッシュボードを作るか更新します。グリッドの大きさ(コンポーネントがはみ出す縮小は拒否されます)、表示画面の一覧のフォルダーとアイコン、起動時の印、全画面でのステータスバーの見え方、そしてロールごとの見え方です。モデルを名指しすると、代わりにそのモデルの画面を指します。開いているダッシュボードのページは、その変更をすぐ映します。
dashboard_delete 名前でダッシュボードとそのコンポーネントを削除します。モデルを名指しすると、代わりにそのモデルの画面を削除します。
component_upsert 種類でコンポーネントを足すか(別に言わなければ、その種類の既定の大きさで、空いている最初のます目に置きます)、id で更新します。置き場所はグリッドの中でなければなりません。重なりは許され、描く順は z のレイヤーが決めます。プロパティの JSON は、その種類の型付きの一式です。モデルを名指しすると、代わりにそのモデルの画面を指すので、そこで作った画面をここで組み立てられます。
component_delete id でコンポーネントを取り除きます。モデルを名指しすると、代わりにそのモデルの画面を指します。
connection_upsert シンボルの接続点を 2 つ、型付きの接続網でつなぎます。型、役割、向きは、キャンバスの編集画面とまったく同じようにシンボルのカタログから解決します。両端が違う型に解決するときは、型のない接続をはっきり許さない限り失敗します。すでに接続を持っている接続アンカーは拒否されます。モデルを名指しすると、代わりにそのモデルの画面を指します。
connection_delete id と、期待している版で接続網を 1 つ取り除くので、古い前提の削除が新しい編集を上書きするのではなく、拒否されます。モデルを名指しすると、代わりにそのモデルの画面を指します。

画面:自動操作

これらのツールは、本物のアプリケーションのウィンドウを動かします。エージェントが、まねごとではなく操作者が見る画面そのものを確かめられるように、あります。操作は動いているシェルに送られるので、正しい進め方は、身ぶり 1 つごとに ui_screenshot を続けてその結果を見ることです。当てはまるものが複数あるときは、当てずっぽうの押下ではなく候補の一覧が返ります。

ツール 何をするか
ui_state シェルの状態を伝えます。今のページ、行けるページ、テーマ、ウィンドウの大きさと見え方、そしてこの実体が画面を出している loopback のアドレスです。何よりも先に呼ぶ、見当をつけるための呼び出しです。
ui_navigate シェルのページを、どのステーションでも英語である安定した名前で開きます:ViewProcessLogicConnectorUsersValidationEventsAgentSettingsAccount。ステーションの言語でナビゲーションバーが表示している名前も受け付けます。
ui_screenshot 画面に出ているとおりのウィンドウを PNG のファイルに取得し、その絶対の道すじを返します。通知領域に隠れているときは、先にウィンドウを戻します。ウィンドウの全体ではなく、名前の付いた画面の区画(一意で、見えている data-doc-region の領域)を 1 つ取得することもできます。区画がない、隠れている、複数当てはまるときは、黙って全体の取得に落ちるのではなく、見えている区画を並べて失敗します。
ui_scroll 今のページの主なスクロールの区画を、上端か下端へ、あるいは画面 1 枚分ずつスクロールし、その位置を返すので、長いページを端から端まで見渡せます。
ui_set_theme テーマ(システム、明るい、暗い)を当てます。これはタイトルバーのテーマのメニューとまったく同じように保存されるので、行儀のよいエージェントは終わったら元の値に戻します。
ui_resize 元の大きさに戻したウィンドウを、機器に依らない単位で変えます。ウィンドウの最小の大きさに収められます。狭い配置を確かめるのに便利です。
ui_click 見えているボタン、リンク、チェックボックス、切り替えのうち、文字が一致するものを押します。チェックボックスと切り替えは、その項目の名前で見つけ、結果は落ち着いた状態を伝えます。複数当てはまるときは、1 つを選ばずに候補を返します。
ui_set_text 項目の名前で見つけた文字の入力欄に値を書き込み、人が入力したときと同じようにバインドを確定します。
ui_select 見えている文字で項目を選びます。スラッシュで区切った道すじはツリーをたどり、途中を展開していきます。区切りが 1 つのときは、今のページの一覧、タブ、コンボボックスの項目、グリッドの行にも当てはまります。

バックアップ:管理

ツール 何をするか
backup_create 構成のデータベースのスナップショットを、動かしたままバックアップのフォルダーに作ります。メモを付けることもできます。記録された実行記録は構成の外にあるので、バックアップにも復元にも触れられません。
backup_list 構成のバックアップ(ファイル名、作成の時刻、大きさ、メモ)と、すでに予約されている復元があればそれも並べます。

バックアップを削除するツールは、意図して置いていません。残す残さないは操作者だけのもので、バックアップのページで決めます。

バックアップ:復元

ツール 何をするか
backup_restore 次回のアプリケーションの起動で、今の構成をバックアップで置き換えるように予約します。動いているアプリでは何も変わりませんし、このツールがアプリを再起動することもありません。置き換えられる構成は、先に自動でスナップショットが取られますし、操作者は再起動までの間、設定から予約された復元を取り消せます。記録が進んでいる間は拒否されます。

設定:管理

ツール 何をするか
settings_read ステーションの表示と起動終了の設定を読みます。日付、時刻、数値の形式、小数の桁数、テーマ、閉じたときに通知領域へ入れるかどうか、クラッシュレポートの印です。
localization_set 表示の設定を更新します(部分的で、渡さなかった引数はそのままです)。表示だけの話で、保存、ドライバーの入出力、記録は、常に不変の形式を使います。
asset_list 利用者の素材(画像、アイコン、色)を、id、値、道すじとともに並べます。
asset_import ローカルのファイルの道すじから PNG か JPG を、アプリが持つ素材のライブラリに取り込み、新しい素材の id を返します。バイトは写されるので、そのあと元のファイルを動かしてもかまいません。
symbol_validate インラインのシンボルの内容(生の SVG か v2 のパッケージ)を、何も保存せずに検証します。取り込みとまったく同じことを試すだけで、エラー、無害化の警告、そして何が認識できたかのまとめを返します。このツールの説明は、持ち運べるシンボルの決まりの全体を運びます。
symbol_import インラインのシンボルの内容を、新しいユーザーシンボルの素材として取り込み、その id と user:<guid> の参照を返します。必ず新しい素材を作り、名前がぶつかるときは自動で接尾辞が付きます。