2016-10-26 11 views
0

私はこの質問をKeysightsコミュニティページに書こうとしましたが、明らかにコミュニティの欠如があります。私はここで私を助けることができる個人が存在することを願っています。SCPI 34970A接続例外

とにかく、ほぼ毎分(入力値に応じて可変、また入力値によってランダム)にAgilent 34970Aと通信するプログラムを作成し、ほぼ20チャネルをスキャンします。私はすべてのデータを解析し、すべてが正しく見えることを確認します。私はいくつかの問題にぶつかってきましたが、私はそれらの大部分を使って作業しましたが、今私は1つに固執しています。

時には、私が最初に機器に接続しようとすると例外が発生します。例外の短いバージョンです:

Keysight.CommandExpert.InstrumentAbstraction.CommunicationTimeoutException was unhandled 
HResult=-2146233088 
Message=Timed out while trying to query instrument errors 
Source=Keysight.CommandExpert.Scpi 
Timeout=10000 

私はC#で私のコードを書かれている、と私は言ったように私は楽器に接続しようとすると、それは右に起こります。このコード行は、 Ag3497x v34970A = new Ag3497x( "ASRL​​1 :: INSTR")です。 この例外はどのように処理しますか?もともと私はIVI-COMドライバを使用していましたが、扱いにくく、信頼性が低いと判断しました。ここではSCPIのコマンドを好む人がいましたので、これらに切り替えました。しかし、IVIドライバを使用していたときに、接続を閉じるコマンドがありました。私はSCPIのコマンドで見つけることができませんでした。これが問題の一部になるのでしょうか?

34970Aとの会話やデータの読み込みに使用するコードは、次のとおりです。 文字列読み取り値= null;プログラムはのために書かれたテストで要求されるよう

Ag3497x v34970A = new Ag3497x("ASRL1::INSTR"); 
v34970A.SCPI.RST.Command(); 
v34970A.SCPI.DISPlay.TEXT.Command("CYCLE TESTER"); 
v34970A.Transport.DefaultTimeout.Set(-1); 
v34970A.SCPI.CONFigure.VOLTage.AC.Command(100, "MAX", "@101:116"); 
v34970A.SCPI.SENSe.VOLTage.AC.BANDwidth.Command(1000, "@101:117"); 
v34970A.SCPI.CONFigure.VOLTage.AC.Command(10, "MAX", "@117"); 
v34970A.SCPI.SENSe.VOLTage.AC.BANDwidth.Command(1000, "@117"); 
v34970A.SCPI.CONFigure.VOLTage.AC.Command(300, "MAX", "@119"); 
v34970A.SCPI.SENSe.VOLTage.AC.BANDwidth.Command(60, "@119"); 
v34970A.SCPI.CONFigure.TEMPerature.Command("TCouple", "K", 1, "MAX", "@118"); 
v34970A.SCPI.ROUTe.SCAN.Command("@101:119"); 
v34970A.SCPI.TRIGger.COUNt.Command(1); 
v34970A.SCPI.READ.QueryAllData(null, out readings); 

は私が10,000倍にこのコードを実行します。私はあなたがコードで見ることができるようにSERIALを介して接続しています。

とにかく、どんな助けでも大歓迎です。理解できると思いますが、10000のうち8000サイクルでプログラムが失敗すると、特に10000サイクルが完了するまでに10日以上かかることがあります。本当に、私は幸運になるかもしれないし、誰かが私がこれを防ぐ方法を知っているだろうが、私は本当にそれが防止できないと仮定して、この例外を処理する方法を探している。 本当に、この長い記事は例外処理の方法を尋ねています。私は検索しましたが、この回答は私を暗示しています。他の詳細を知りたい場合は、私に知らせてください。私はすぐにそれを提供します。

おかげで再び、

ジョシュ

答えて

0

いくつかの提案:

  • なぜあなたが各反復でAg3497xコンストラクタを呼び出す必要がありますか?デバイスを1回だけ構成して再使用してください。
  • ボーレートとは何ですか?ケーブルの長さ?より短いケーブルと小さいボーレートを検討してください。
  • this oneのようなシリアルポートスニファを使用してこの例外が発生している間に、ポートで何が起きているかを盗聴することを検討してください。
  • Keysightsからの返答がない場合は、Visaドライバーの中に何か問題があると思われる場合は、別のビザ・ドライバーを使用するか、SerialPortを使用して自分自身を実装することを検討してください。
関連する問題