問題タブ [node-opcua]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
399 参照

javascript - 単体テストを実行して nodejs プロジェクトに追加する

このプロジェクトに関連するテストを github で実行したいです。 https://github.com/node-opcua/node-opcuaのフォルダー test を参照してください。残念ながら、どのテスト フレームワークが使用されたのか、すべてのテストを実行する方法がわかりません。

0 投票する
1 に答える
756 参照

node.js - Raspberry Pi で実行されている OPC-UA サーバーを Windows コンピューターからテストするにはどうすればよいですか?

Raspberry Pi に OPC サーバーを実装してテストする仕事の一環として、この Github リポジトリ(sample_server.js)にあるnode.jsサーバーを見つけて実装しました。

現在、OPC 全般に慣れていないので、MatrikonOPC Explorerをダウンロードしてサーバーに接続しようとしましたが、サーバーが見つかりませんでした。最初は、接続プロンプトに適切なもの (エンドポイント URL がどこかに入る?) を入れていないだけだと思っていましたが、さらに読んでみると (私が思うに) サーバーが動作している間、エクスプローラーが通常の OPC 仕様を使用することがわかりました。 OPC-UA サーバー。ここで間違っている場合は修正してください。

とにかく、このサーバーが実際に機能してアクセスできるかどうかを確認したいと思います。これをテストする良い方法は何ですか? 可能であれば、Windows PC からネットワーク経由でテストしたいと思います (両方とも同じネットワーク上にあり、互いに ping できることを確認しました)。

0 投票する
2 に答える
3011 参照

javascript - node.js opc ua 多くの監視項目

私が使用node-opcua moduleしていて、サブスクリプションで多くを監視したいのですが、次のような結果が表示されます: HTML UI のユーザーが監視するノードを選択し、これらをパラメーターとしてopc ua nodes送信した [監視] ボタンをクリックすると、すべてのサブスクリプションと .on("changed" が設定されます) 並列のように、これらのすべてのアイテムに対して機能します。コードは次のようになります。nodeIdsnodeid

新しい項目を監視するように設定したい場合は、多くの変数 MonitorItem1 、 ..2 、 ..3 などを追加するだけです。

より多くの方法でそれを行うagile/dynamic方法は?の配列(文字列)がnodeIdsあり、これらのそれぞれをサブスクリプションで監視したい場合。コードはasync.series([ コード ])の一部です

0 投票する
3 に答える
4126 参照

opc - OPC UA 固有 ID

OPC UA クライアント アプリケーションを構築しようとしています。
OPC ツリーで UA ノードを一意に識別できるようにしたいと考えています。
OPC DA では、標準のノード ID は「.」を含む文字列であることを知っています。ノードを識別するために使用できる区切り記号として。

OPC UA では、ノード ID は文字列である必要はありませんが、特定のノードにマップする一意の文字列を作成できるようにしたいと考えています。
ノード名に基づくことを考えています。例: Demo.MyNode.MyValue。
残念ながら、ノード名には「.」などの文字が含まれている可能性があります。これにより、IDが一意ではなくなります。

区切り文字として使用できる文字はありますか?
ノード ID を文字列 (パスを含む) として表現するより良い方法はありますか?

0 投票する
1 に答える
6738 参照

node.js - ノード opc-ua - サーバーで変数を検出するにはどうすればよいですか?

私はノード opc-ua を学習しており、sample_server.js と simple_client.js の GitHub ページで提供されている例に従いました。

sample_server では、次のようなサーバーのアドレス空間を構築するときに変数を追加します。

参照用のサーバー コード全体を次に示します。

ここで、クライアントで、この変数を名前または完全な nodeId で検出したいと考えています。サーバーへのセッションを参照するために提供されたサンプルを使用していますが、返されると、FolderType、Objects、Types、および Views しか表示されず、この変数をどこにも見つけることができません。

クライアントコードは次のとおりです。

前もって感謝します

0 投票する
1 に答える
952 参照

javascript - jsはnode-opcuaの動的変数で設定されます

node-opcua @ https://github.com/node-opcua/node-opcuaの例では、OPC サーバーに追加された変数ごとにコードを書き直す必要があると述べています。これは、「addressSpace.addVariable()」を呼び出すことで実現されます。 .しかし、1000 個の変数がある場合、それは難しい作業になる可能性があります.最終的には、カスタム ユーザーごとにコードの書き直しが必要になり、面倒になる可能性があります.

opc は、別のカスタム サーバー (OPC ではない) から「タグ」を読み取りました。

この「タグ」を使用して、opc サーバーはそれらをノード「デバイス」に追加する必要があります。

OPC サーバー node-opcua がネットからの変数の get または set を見つけると、正しい変数の get または set を呼び出します。

get 関数と set 関数で「this」を使用しようとしたのは運が良かったのですが、get には変数を動的に読み取るために使用できる「this.browseName」(タグ名) プロパティがあり、現在は機能しています。

問題はセットにあります。セット 'this.browseName' と 'this.nodeId' が存在しません! したがって、「未定義」エラーが発生します。バリアント変数にも存在しません。

上記のコードで動的変数を使用するための回避策を知っていますか? すべての変数 (タグ) に対して 1 つの get 定義と 1 つの set 定義を含む 1 つの for ループが必要です。これは、マルチプロパティ オブジェクトまたはオブジェクトの配列を読み書きします。レコード配列。

PS:スタックオーバーフローでこれを見つけました:

var foo = { a: 5, b: 6, init: function() { this.c = this.a + this.b; return this; } }

しかし、私の場合、 node-opcua 変数には、例のように機能する「this」がありません。「セット」(init など) 内: this.browseName (a など) と this.nodeId (b など) には到達できません。

0 投票する
1 に答える
865 参照

node.js - node-opcua サブスクリプションの優先順位を使用するには?

node-opcua のクライアント サブスクリプションには、 というオプションがありますpriority。数値フィールドです。Priotity=1のサブスクリプションの優先度が高くなるか低くなるかわかりませんPriority=10

ソース コードのデフォルトの優先度は です1。それは最低ですか、それとも最高ですか?1、10、100、どちらが優先されますか?

0 投票する
2 に答える
3741 参照

node.js - node-opcua を使用して OPC DA サーバーから読み取るには?

のリポジトリページにnode-opcuaは、サポートされていると書かれていますDataAccess。しかし、OPC DA サーバーに接続してデータを読み取る例は見つかりませんでした。

これまでのところ、 server_with_da_variablesの例を試しました。sample_clientを使用してそのデータを読み取ることができました。

OPC UAサーバーへの接続方法と同じですか?エンドポイント URL を使用してセッションを作成し、NodeId を使用して読み取りますか、それとも手順が異なりますか?

0 投票する
1 に答える
1017 参照

opc - OPC UA クライアント - タグ グループが空でない場合に空として表示される

OPC タグのクエリと読み取りを可能にする UA クライアント DLL を作成しています。私は以前に DA バージョンを書いたことがありますが、今は時代とともに動き、DCOM 地獄の穴を放っておく時が来ました。

すべて順調に進んでいますが、OPC プロジェクトで有効であることがわかっている特定のタグを参照できないことに気付きました。これらのタグのいずれかのコンテナ ノードをブラウザで検索すると、ノードが含まれておらず、例外がスローされると報告されますが、含まれるグループとタグは DA プロセスで参照できます。OPC Foundation が提供するサンプル UA クライアント アプリでさえ、これらのタグをリストしていません。たとえば、以下を参照してください。

問題のタググループは「TKPlant.CL535E.Global.iaHomg_Press」です。

Kepware では、グループには次の 6 つのタグがあります。

Kepware のスクリーン ショット

OPC Quick Client では、タグの状態と値は.... (すべて問題ありません)

OPCクイッククライアント

しかし、UA Client Sample App では、ブラウズすると次のように表示されます。

UA サンプル クライアント

このグループにはノードが存在しないことがわかります。ノードのプロパティは次のとおりです。

ここに画像の説明を入力

これを同様のグループと比較してください。

ここに画像の説明を入力

そして、このグループのプロパティ:

グループのプロパティ

違いはわかりませんが、UA Sample Client の結果はブラウズ機能と同じようです。グループ内にタグが表示されません。

UA クライアントは、これはグループとしてではなく、それ自体がタグであると考えていると思います。しかし、このプロジェクトは実際に現場で稼働しています。不思議なことに、Quick Client のスクリーンショットを見ると、グループ自体が表示され、値が与えられています???? -

タグ グループに値があります

これはおそらくロングショットだと思いますが、UAを使用してアクセスすると、タグを持っているこのグループが空として表示される理由を誰か知っていますか?

ありがとう

スティーブ