私はこの質問を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( "ASRL1 :: 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日以上かかることがあります。本当に、私は幸運になるかもしれないし、誰かが私がこれを防ぐ方法を知っているだろうが、私は本当にそれが防止できないと仮定して、この例外を処理する方法を探している。 本当に、この長い記事は例外処理の方法を尋ねています。私は検索しましたが、この回答は私を暗示しています。他の詳細を知りたい場合は、私に知らせてください。私はすぐにそれを提供します。
おかげで再び、
ジョシュ