PI Web サーバーから PI タグ名を取得するにはどうすればよいですか?JMPユーザーコミュニティの皆様へ
私と私の同僚は現在、JMP アドインに取り組んでいます。これにより、社内のユーザーは、いくつかのスクリプトを添付し、いくつかのデータ操作手順を事前に実行することで、必要に応じて PI タグを照会し、すべてを 1 つのテーブルにまとめることができます。
したがって、基本的には、JMP の「OSIsoft PI サーバーからのインポート」機能を、ニーズに合わせていくつか調整しながら再現して利用したいと考えています。
現在、PI Web サーバーから必要な PI タグ名を動的に取得し、それをリストに保存して PI クライアントを実行するという作業に行き詰まっています。現時点では、一部の PI タグのリストはハードコードされていますが、名前が変更されたり、新しい Pi タグが追加されたりする可能性があるため、これは理想的な解決策ではありません。
% のようなワイルドカードを使用すると、より細かい pitag のカテゴリを作成するのに役立ちます。これらのカテゴリは、プロセス ステップ、生産ラインなどの事前のユーザー選択によって異なりますが、リストの jsl に対応するものを見つけることができませんでした。
また、SQL を使用して PI Web サーバーにクエリを実行することもできません。
これが私たちの AF パスです:

Asset_DB と Stat_DB はリストであり、その内容はユーザーの選択に基づいています。Pitags は現在、いくつかの pi タグのハードコードされたリストですが、これもユーザーの選択に基づくようにしたいと考えています。
質問: JMP 開発者は、ユーザーの選択に基づいて Web サーバーから pi タグ名をどのように取得したのですか?
よろしくお願いします!
あります
自動化とスクリプトデータアクセスRe: PI Web サーバーから PI タグ名を取得するにはどうすればよいですか?あります、
AF 階層の特定のレベルにある子要素を取得するために、JMP は「要素 - 要素の取得」Web API メソッドを使用します。このメソッドについては、 https://docs.aveva.com/bundle/pi-web-api-reference/page/help/controllers/element/actions/getelements.htmlで説明されています。
JMP は次のようなリクエストを行います。
GET elements/{webId}/elements?webidtype=idonly&selectedfields=items.webid;items.name;items.description;items.path;items.haschildren;items.templatename
{webId} は、子要素が必要なパス階層の webId に置き換えられます。これにより、子要素の名前、説明、webId、子要素の有無、および子要素が属するテンプレート (存在する場合) を含む子要素の JSON 記述が返されます。これらの属性がすべて必要なわけではないため、'selectedfields' クエリ パラメータを必要なものだけに絞り込むことができます。JSL の 'HTTP リクエスト' メソッドを使用して、このようなリクエストを送信できるはずです。その後、JSL の 'Parse JSON' 関数を使用して結果を解析できます。
お役に立てれば!
--マイケル
Re: PI Web サーバーから PI タグ名を取得するにはどうすればよいですか?しばらくやっていませんが、すべての pi タグの Excel テーブルを取得する方法があったことを思い出しました。それを取得したら、JMP で開いて転置し、タグ名が最初の列になるようにします。そこから、名前を解析してフィルター処理し、スクリプトで使用できるリストを生成できます。
..もっと具体的に言えなくてすみません。
Re: PI Web サーバーから PI タグ名を取得するにはどうすればよいですか?こんにちは、バイロン。
ご返信ありがとうございます!
私もその選択肢を頭の片隅に持っていましたが、もっと簡単な方法があることを期待していました。
最高、
あります
Re: PI Web サーバーから PI タグ名を取得するにはどうすればよいですか?こんにちは、マイケル。
このすばらしい解決策に本当に感謝しています!
先に進んでその方法を実装してみます。:)
幸運をお祈りしています、
あります
Re: PI Web サーバーから PI タグ名を取得するにはどうすればよいですか?こんにちは、マイケル。
AF 階層から pi タグを取得するために、「新しい HTTP リクエスト」機能を試しました。
このような:

スクリプトは実行されていますが、次のエラー メッセージが表示されます。このエラーについてご存知ですか?

「新しい PI クライアント」機能を使用して PI タグを照会できるため、認証の不足は問題ではないようです。当社の PI システム マネージャーがアクセス権を確認しましたが、アクセス権の不足による問題は見つかりませんでした。
よろしくお願いします!
あります
Re: PI Web サーバーから PI タグ名を取得するにはどうすればよいですか?Pi Server には、たとえば Basic 認証が必要ですか? その場合は、次のものを使用します。
PI_web = New HTTP Request(
URL([your url]),
Method("GET"),
Secure(0),<BR />Username([your username]),<BR />Password([your password]),<BR />Authentication Method("BASIC"),
QueryString(qrry)
) << Send
Re: PI Web サーバーから PI タグ名を取得するにはどうすればよいですか?ありがとう、Bryan。Kerberos を使用してソリューションを実装しました。
Re: PI Web サーバーから PI タグ名を取得するにはどうすればよいですか?それは次のようなものでしたか:
PI_web = New HTTP Request(
URL([your url]),
Method("GET"),
Secure(0),Authentication Method("KERBEROS"),
QueryString(qrry)
) << Send