問題タブ [gpib]
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.
c# - マルチデバイス制御可能なソフトウェアの作成
質問にタイトルを付ける方法がわかりませんが、最初に頭に浮かんだのは、この「マルチデバイスソフトウェア」のことです。
私は電子工学の学生で、計測器の制御に興味があります。この目的で C# を使用し、C# フォーム アプリケーションの基本的な知識を持っていること。また、IVI Foundation によって開発された「SCPI Commands」という標準コマンド セットがあります。これは計測器制御の簡単なアプローチであり、完全に機能する計測器制御システムの SCPI コードを書くことはできません。ここで「ドライバー」が役割を果たします。ほとんどのメーカーは、製品の購入時にデバイス ドライバーを提供しています。このドライバー ファイルを使用すると、完全に機能し、応答性の高いソフトウェアを作成できます。また、独自のニーズに合わせて独自のドライバーを開発することもできます。しかし、SCPI はすべての種類の計測器の標準ですが、いくつかのマルチ コマンドが問題を引き起こし始めています。たとえば、A ブランドのコードを書いたが、そのコードは B ブランドでは機能しない」
主な目標は、複数の同軸ケーブルのケーブル損失計算ソフトウェアを作成することです。このタスクを実行するには、スペクトラム アナライザと RF 信号発生器を使用する必要があります。数台のスペクトル アナライザーと多数の信号発生器が使用されています。
1 つのプログラムで、すべてのデバイスを制御する必要があります。これは私の問題です。
すべてのスペクトラム アナライザと信号発生器で機能する応答性の高いソフトウェアを作成したいと考えています。どうやってやるの ?まず、各デバイスのドライバーを作成できると思います。メイン プログラムは、プロンプトなどでユーザーに尋ねることで正しいドライバーを選択します。しかし、これを達成する方法がわかりません。次に、デバイスの組み合わせごとにソフトウェアの主要部分を作成し、その部分を .txt ファイルと共に実行時にメイン ソフトウェアに含めることができます。私はこれが初心者のアプローチであることを知っていますが、手間をかけずにこれを行うことができると思います. そして、私は最初のアプローチについて何も知りません。3 番目に、プログラム内のデバイスごとにすべてのデバイスのコマンドを記述し、if 条件を使用してケースを選択することができます。またはスイッチケース構造。他のオプションでこれを行うことができない場合、これが唯一の方法です。
私がアマチュアのソフトウェア開発者であるため、問題を正確に説明できないため、ここまでは理解できないかもしれません。
信号発生器があるとします。周波数 10 MHZ を選択します。これはアジレントの 33120A です。コンピュータでこれを実現するには、このコマンドをデバイスに送信する必要があります。
この後、デバイスは周波数を 10 MHZ に設定します。別のメーカーの信号発生器があり、このデバイスでまったく同じことを達成するには、これを送る必要があると仮定しましょう。
この 2 つは同じことを実行しますが、SOUR と SENS の部分はデバイスに依存します。
C# でプログラムを作成するには、API を使用してデバイスと通信します。GPIB プロトコルを使用する場合、API の名前は NI488.2 です。RS232を使えばVISA APIなどを使えます。ちなみにプロトコルはGPIBです。GPIB では、ラッパーを使用して SCPI コマンドを C# 環境に簡単に統合します。たとえば、GPIB ライブラリを参照に追加した後、これを使用して C# フォーム インターフェイス経由でコマンドを送信できます。
今、私は私の最大の問題に来ました。コードのこの部分を作成して、応答性の高いプログラムを作成するにはどうすればよいですか? たとえば、Agilent Signal Generator と Rohde&Schwarz スペクトラム アナライザを使用するオペレータ。別のオペレーターは、IFR Signal Generator と HP Spectrum Analyzer を使用しています。しかし、彼らは同じソフトウェアを使用しています。IFR信号発生器は、操作に「SENS:FREQ」を使用する場合があります。
操作を開始する前に、プロンプトがポップアップしてデバイスのドライバーを要求することがあります。知らない。これらが最初に頭に浮かびました。しかし、あなたが私だったら、どうやってこれを達成しますか? オプションを選択する場合は、その方法を教えてください。私はこれで立ち往生しています。現在、プログラムには約 2000 行のコードがあります。「ibwrt」はプログラムの唯一の部分ではなく、「SENS:FREQ」でもありません... 他のタスクには「SENS:BAND:RES」、「INIT:CONT」などもあります。これは重要ではありません。
私が正しく伝えることができなかったことを知っているので、私の質問を理解していただければ幸いです。
問題について質問がある場合は、お気軽にコメントしてください。
ありがとう。
TL;DR
C# Forms インターフェイスを介して各デバイスにコマンドを送信する必要があります。つまり、デバイスには特別なコマンドがあり、デバイスごとにソフトウェアを作成するのではなく、ユーザーの選択ですべてのデバイスを制御できる 1 つのソフトウェアを作成する必要があります。
vb.net - Visual Basic 6.0 ステートメントが有効な名前空間にありません
私はVisual Basic 6.0を勉強しており、スクリーンショットをキャプチャするアプリケーションを作成しています。
アプリケーションを研究するためのサンプルコードを見つけました。しかし、私は得ています:
ステートメントは有効な名前空間にありません
ただし、エラーは「Private Sub Main()」に向けられています。
以下にスクリーンショットを添付します。
この問題を解決して EXE ファイルを作成する理由と方法がわかりません...
python-2.7 - pyvisa を使用して GPIB 計測器を表示できませんが、NI MAX では表示できます
私はpyvisaで制御しようとしているgpib楽器を持っています。NI MAX の計測器は "GPIB0::26::INSTR" として表示されますが、pyvisa を使用して計測器リストを取得しようとすると、"COM1" だけが表示されます。
実行しようとしているコードは次のとおりです。
コードの出力は次のとおりです。
['COM1']
誰にもアイデアはありますか?
ありがとう、
vba - Excel VBA 経由で GPIB 経由でコマンドを送信する
このネットワーク アナライザーがあり、Excel VBA および GPIB 経由でコマンドを送信する必要があります。GPIB とその他のハードウェアを正常にセットアップしましたが、GPIB を介してアナライザにコマンドを送信する方法がわかりません。私はかなりのプログラミング経験がありますが、VBA は初めてです。ハードウェアのドキュメントと VBA チュートリアルを何時間も検索した後、私の精神はゆっくりと死んでいきます。VBA (ツール -> 参照) に正しい参照を追加する必要があると思いますが、ドキュメント (「viOpenDefaultRM(defrm) を呼び出す」) で指定されたサンプル コードを実行しようとすると、Sub または関数が定義されていないというエラーが表示されます。 .
どんな助けでも大歓迎です。私はエンジニアとして働いており、どういうわけか多くのコーディングを必要とするタスクに放り込まれています。
python - Python pyVISA GPIB 接続の問題
pyVISA を使用して GPIB 計測器に接続しようとしていますが、エラーが発生します。pyVISA Web サイトの簡単な例に従っています: http://pyvisa.readthedocs.org/en/master/
IPython コンソールに次のコードを入力します。
しかし、GPIB 計測器は表示されず、シリアル ポートと USB 計測器だけが表示されます。Agilent Connection Expert (または NI MAX) を起動すると、すべての GPIB 計測器が表示され、それらと通信できます。また、Matlab と問題なく機器と通信することもできます。
したがって、ラインで楽器に接続しようとすると:
エラーがスローされます:
VisaIOError: VI_ERROR_INTF_NUM_NCONFIG (-1073807195): The interface type is valid but the specified interface number is not configured.
また、リソースを一覧表示するときに表示される USB 機器に接続しようとしましたが、このエラーは発生しません。ただし、簡単なクエリを実行しようとすると、次のようになります。
何も返されず、エラーもスローされません。
Python(X,Y) 2.7.9.0 を Python バージョン 2.7.9 32 ビットで使用しています
pyVISA のバージョンは 1.6.3 NI ビット数は 32
私はPythonが初めてなので、ガイダンスをいただければ幸いです。
ありがとう
c# - サービス リクエスト (RQS) を待機する方法
**注: LabVIEW フォーラムに相互投稿: http://forums.ni.com/t5/LabVIEW/C-VISA-wait-on-RQS/td-p/3122939
VISA GPIB 経由で Keithley 2400 SMU を制御する単純な C# (.NET 4.0) プログラムを作成しようとしていますが、スイープの最後に Keithley が送信する Service Request をプログラムが待機するのに問題があります。 .
掃引は単純な線形電圧掃引で、ケースレーユニットによって内部で制御されます。スイープの終了時またはコンプライアンスに達したときに ServiceRequest 信号を送信するようにユニットをセットアップしました。
コマンドを SMU に送信してデータ バッファーを読み取ることはできますが、スイープ開始コマンドとデータ読み取りコマンドの間に手動でタイムアウトを入力した場合に限ります。
私が抱えている問題の 1 つは、私が C# にまったく慣れていないことです。このプロジェクト (LV コードの一部を移植) を使用して学習しています。
C#コードのこれまでの内容は次のとおりです。
上記のすべては、この LabVIEW コードを模倣することになっています。
それで、私がどこで間違っているのかについてのアイデアはありますか?
ありがとう、
編集:
もう少しいじった後、Service Request 関数OnServiceRequest
が実際に適切なタイミングで起動されることがわかりました (「Service Request Received!」がコンソールに出力されます)。