問題タブ [opc-ua]
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.
node.js - ノード opc-ua - サーバーで変数を検出するにはどうすればよいですか?
私はノード opc-ua を学習しており、sample_server.js と simple_client.js の GitHub ページで提供されている例に従いました。
sample_server では、次のようなサーバーのアドレス空間を構築するときに変数を追加します。
参照用のサーバー コード全体を次に示します。
ここで、クライアントで、この変数を名前または完全な nodeId で検出したいと考えています。サーバーへのセッションを参照するために提供されたサンプルを使用していますが、返されると、FolderType、Objects、Types、および Views しか表示されず、この変数をどこにも見つけることができません。
クライアントコードは次のとおりです。
前もって感謝します
opc - データ変更通知の取得方法 OPC UA Java クライアント
OPC UA Java スタックを使用し、OPC UA クライアントを開発しています。監視対象アイテムへの購読と公開リクエストを行いました。監視項目の値が変化した場合にトリガーを設定するために datachangefilter を使用しています。これで通知を受け取ることができます。しかし、データの変更が発生した場合にのみ通知を受け取りたいです。このコードスニペットを使用しています
c# - UA-.NETでOPC-UAメソッドを呼び出す
https://github.com/OPCFoundation/UA-.NETの Open OPC-UA.NET 実装を使用して、SINUMERIK 840d から OPC-UA メソッド「ReadVar」を呼び出そうとしています。
このスタック実装の使用方法についての知識は限られていますが、それを使用して OPC-UA サーバーに接続し、C# コードからメソッドを呼び出す方法の軽量な例を誰かが持っているのではないかと思いますか?
このメソッドを呼び出すテストをユニファイド オートメーション トライアル バイナリ クライアントで試しましたが、完全に機能します。また、上記のオープン ソース バージョンを使用するのではなく、商用の OPC-UA SDK を購入することの主な利点 (サポートなどを伴う明白なものを除く) についても知りたいと思います。
c# - OPC UA ServiceResultException(BadSecureChannelClosed) サーバーからエンドポイントを更新中
私の C# アプリケーションは、OPC UA コア スタックをクライアントとして使用して、サーバーとして実行されている PLC に接続します。アプリケーションが WPF であり、SDK がわかりにくいため、OPC UA SDK を使用していません。
さまざまなリファレンス (OPC UA SDK およびConverter Systems LLC WPF ツールキットを含む)を参照ITransportChannel
し、コンストラクターに渡すオブジェクトを構成するための独自の方法をまとめましたOpc.UaSessionClient
。
私が直面している問題は、サーバーの期待値に一致するエンドポイントの説明と構成を取得するために を使用することですが、オブジェクトが閉じられたときにConfiguredEndpoint.UpdateFromServer
がスローされます。ServiceResultException(BadSecureChannelClosed)
DiscoveryClient
この例外が、SDK に含まれているプロジェクトによって報告されていることはわかりませんSimpleOpClient
(単純ではありません)。
この機能の何が問題なのですか?
BadSecureChannelClosed
結果を返すのはサーバーですか?もしそうなら、なぜですか?それとも、スタックによってスローされる多数の内部例外の 1 つですか?
opc-ua - Opc Ua client documentation
Not sure if this is the right place to ask this, I couldn't think of any other StackExchange website to ask it.
Is there any available documentation for the .net Opc.Ua.Client and Opc.Ua.Core libraries from the OPC foundation?
Having to guess what a property / function do is really annoying.
java - クライアント側のEclipse Miloで切断/再接続はどのように処理されますか?
私は Eclipse Milo を使用して OPC UA クライアントを作成していますが、次の質問につまずきました:クライアントは接続の損失をどのように処理しますか。
値を監視するには、SubscriptionManager でサブスクリプションを使用してこれを行います。
Eclipse Milo を使用して実装されている OPC UA サーバーを再起動すると、クライアントが再接続していることがわかりますが、サブスクリプションはそれ以上更新されません。ログには、次の出力が表示されます。
したがって、OpcUaSubscriptionManager は状況を認識しているように見えますが、それらのアイテムを再登録しようとはしていません。それは手動で行うことですか?
java - Boolean を OPC UA サーバーに書き込みます - 「同じタイプではありません」エラー
簡単にデモンストレーションします。次の行を実行しているだけです。
これにより、サーバーから値が読み取られ、直接書き戻されます - 効果はありません。ただし、これは「ダブル」および「ストリング」に対して意図したとおりに機能しますが、ブール値を含むノードでこれを行うと (UaExpert はブール値であると言います)、次のエラー/例外が発生します。
com.prosysopc.ua.StatusException: Bad_TypeMismatch (0x80740000) 「属性に指定された値は、属性の値と同じ型ではありません。」StatusCode=Bad_TypeMismatch (0x80740000) 「属性に指定された値は、属性の値と同じ型ではありません。」
それはどうしてですか?Java API にバグはありますか? それともサーバーの設定の問題?
よろしくお願いします!
xamarin.android - Xamarin 用 OPC UA .Net クライアント スタック
以下のXamarinで使えるオープンソースのCLient SDKを見てみます。UA.NetLibrary
問題は、それを構築する方法がわからないことです。何か案は?私も開けません。
次に、OPC UA クライアントである Xamarin.Android プロジェクトに使用できる SDK はありますか?
c# - サブスクリプション デマンドで値を読み取る方法は?
OPC-UA .NetスタックでOPC-UAを学んでいます。サブスクライブとデータ送信の例は、サーバー側で 1 秒の更新サイクルで明示的に作成されます。つまり、変数の値が 1 秒ごとに更新され、残り (通知クライアント) は OPC-UA スタックによって処理されます。ループは手動で作成されるため、サブスクリプションがまったくなくても機能します。
Ok。しかし、私はそれを少し逆にしたいと思います-変数に静的な値を設定しないでください、この手動更新サイクルに依存しないでください。クライアントに。
変数にハンドラーを追加OnReadValue
し、クライアントがその値をサブスクライブすると、トリガーされ、値が計算されて返されます。私が望んでいたこととほとんど同じです。問題は、それが一度しか行われないことです。
クライアントが一定の間隔で更新を要求したため、サーバーではそのような間隔でループが発生していると思います。(ハンドラーをトリガーするために) サーバーに変数を再度読み取るように指示するにはどうすればよいですか?
c# - WPFとOP UAで再接続後、監視項目の値を再送する
Kepwere を OPC サーバーとして、このua-client for WPFを使用して制御ソフトウェア/HMI を作成しています。
今日は、PLC のイーサネット ケーブルを取り外して、ソフトウェアの監視項目の値を変更して、いくつかの接続テストを行っていました。明らかに、接続状態のため、この変更は有効になりませんが、再接続後、以前に設定した値で PLC タグを更新しないのはなぜですか?
または、これは予想される動作であり、これを複製するために内部ストレージ変数を作成する必要がありますか?
Kepserver には、PLC にエラーがあるかどうかを示す System.NoError タグがあるため、PLC がいつオフラインになるかがわかります。しかし、オフラインで再接続したときに最新の変更を再送信しようとしています。
SetProperty メソッドを上書きしました。
そして、これでサーバー状態変更イベントをリッスンします。
System_NoError を変更するたびに、次のことを行います。
初期化してm_eventsPendingリストに残しておき、接続完了(Opened)で送信を開始しましたが、PLC側では何も起こりませんでした。何が間違っている可能性がありますか?
PS: ソフトウェアとの他の相互作用は、私のコード (ボタン、スライダーなど) に従って、PLC で正しい変更を行います。
敬具 Jose Truyol