問題タブ [opc-da]
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.
permissions - DCOM / COM セキュリティ設定の違いは何を意味しますか?
私たちのアプリケーションは COM と DCOM を広範囲に使用しているため、その一環として、COM セキュリティ権限が正しく設定されていることを確認する必要があります。コンポーネント サービス MMC スナップインでこれらのアクセス許可にアクセスできること、およびコンピューターのプロパティ ページで既定値/制限を設定できることを知っています。
そして、DCOM Config ノードの下で、ドリルダウンして個々のアプリケーションのセキュリティ権限を設定できます
また、「デフォルト」(アプリケーションごとに権限が明示的に設定されていない限り、DCOM アプリケーションが使用するもの) と「制限」(アプリケーションごとの設定がこれらの設定を超えた場合でも適用される権限) の間の関係も理解していますが、設定できるさまざまな設定の違いがわかりません (ドキュメントが見つかりません)
- 「アクセス」、「起動」、「アクティベーション」、および「構成」権限の違いは何ですか?
- これらの設定は COM アプリケーションに影響しますか、それとも DCOM アプリケーションのみに影響しますか?
- リモート DCOM を使用している場合、サーバーとクライアントの両方にアクセス許可を設定する必要がありますか? それともクライアントだけに設定する必要がありますか?
- 上記を説明するドキュメントはありますか?
c# - OPC Da Write Bit in Word
OPC DA Automation Wrapper を使用して AllenBradley PLC に接続しています。
他のビットとは独立して、ワード内にビットを設定する必要があります。
この機能を厳密に達成できる方法はありますか?
私が試した2つのオプションは次のとおりです。
OPC サーバー (Kepware) で単語を個別のビットとしてセットアップします。言い換えれば、16 個のタグがあり、それぞれのタグ名は次のようになります。
ただし、これは、多くの個別の OPCItem オブジェクトを保持する必要があることを意味します
もう 1 つの方法は、ワード全体を読み取り、 を使用してビットに変換しBitConverter
、変更する必要があるビットを変更してから、保留ワードを PLC に書き戻すことです。
ただし、テスト中に、スレッド 1 が単語を読み取ることができることがわかりました。スレッド 2 はワードに書き込み、たとえばビット 2 を変更します。次にスレッド 1 がビット 4 を変更し、ワード全体を書き戻すと、ビット 2 への変更が上書きされます。
単一の OPCItem を使用して特定のビットに書き込む方法を知っている人はいますか?? それとも、特定のビットに関連する OPCItems がたくさんあることに固執していますか??
ありがとう
c# - リモート OPC サーバーへの接続方法
LAN 内のリモート PC にある OPC サーバーに接続しようとしています。ここにコードがあります
192.168.1.5
リモート PC の IP です。リモートPCにはユーザー名とパスワードが含まれているため、接続するリモートPCのユーザー名とパスワードをどこに置くことができるかを知りたいです。
ありがとう
c# - OPC から値を読み取る方法
Interop.OPCAutomation.dllを使用して OPC サーバーから値を読み取ろうとしています。
このコードは OPC サーバーから値を返しません。この行でエラーが発生しています
エラー
c# - 複数の OPC 値を取得する
OPC サーバーから複数の値を取得するコードを次に示します。
コードでわかるように、私は 47 の値を取得しようとしていますif (Convert.ToInt32(ClientHandles.GetValue(count)) == 47)
がClientHandle
、これ以外の値を取得するたびに. すべての値を出力したところ、 の値47
がランダムな場所にあることがわかりました。なぜランダムになるのかわかりませんか?
47 位の値は、その位だけに来るはずです。これは、OPC サーバーから複数の値を取得する良い方法ですか?
c# - イベントでの C# マルチスレッド
イベントが呼び出されるプログラムを作成しています。ここにコードがあります
この構文では、子スレッドから呼び出されるため、MessageBox.Show(Thread.CurrentThread.Name,"Alert");
表示されることを期待していましたが、表示されています。イベントがメイン スレッドで実行されているのに、子スレッドでは実行されていないのはなぜですか?Child
Main
c# - OPC DataChangeEventHandler が呼び出されていません
以下は、OPC 値を読み取るために使用したコードです。
問題は、OPC タグの変更が発生するたびDIOPCGroupEvent_DataChangeEventHandler
にメソッドを呼び出す必要があることですが、メソッドは 3 ~ 4 回しか呼び出されません。opcGroup_DataChange
それ以降は呼び出しません。変更が発生しても、メソッドは呼び出されません。
このコードの何が問題になっていますか?