C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.92720 の関連記事表示

<< 0 >>
■92720  オシロスコープの制御
□投稿者/ じょこびっち -(2019/10/24(Thu) 10:49:22)

    分類:[C#] 

    現在c#を学習している初心者です。
    http://literature.cdn.keysight.com/litweb/pdf/5991-0244JAJP.pdf
    上記の手順を見ながらオシロスコープの制御をしてみようと試みています。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using Ivi.Visa.Interop;

    namespace WindowsFormsApp1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    ResourceManager rm = new ResourceManager();
    FormattedIO488 inst = new FormattedIO488();

    // 通信開始
    inst.IO = rm.Open("[VISAアドレス]") as IMessage;

    // 測定器のID確認
    inst.WriteString("*IDN?"); // IDクエリ
    String str = inst.ReadString(); // 応答の文字列取得

    // ダイアログボックスの表示
    MessageBox.Show(str);

    // 通信の終了
    inst.IO.Close();
    }
    }
    }

    デバッグすると
    inst.IO = rm.Open("[VISAアドレス]") as IMessage;
    この行で止まり
    「ハンドルされていない例外」
    System.Runtime.InteropServices.COMExeption:'HRESULT=80040011'
    が表示されます。

    開発環境:
    VisualStudioExpress2017
    Tektronixのオシロスコープを使用しています。
    どうすれば解決出来るでしょうか?よろしくお願いします。
親記事 /過去ログ160より / 関連記事表示
削除チェック/

■92721  Re[1]: オシロスコープの制御
□投稿者/ 魔界の仮面弁士 -(2019/10/24(Thu) 10:59:17)
    No92720 (じょこびっち さん) に返信
    > 現在c#を学習している初心者です。
    細かいことですが、c# ではなく C# が正式表記だったりします。(JIS X 3015)


    > 「ハンドルされていない例外」
    > System.Runtime.InteropServices.COMExeption:'HRESULT=80040011'
    > が表示されます。
    0x80040011 (OLE_E_CANTCONVERT) は「オブジェクトを変換できません」というエラーです。


    > inst.IO = rm.Open("[VISAアドレス]") as IMessage;
    環境が無いのでテストはできませんが、まずはどの段階でエラーとなっているかを
    確認するため、上記の行を分解して
     // inst.IO = rm.Open("[VISAアドレス]") as IMessage;
     object obj1 = rm.Open("[VISAアドレス]");
     IMessage obj2 = obj1 as IMessage;
     inst.IO = obj2;
    にしてみください。
    エラーになるのは Open の行でしょうか。IMessage への変換時でしょうか。


    Open で失敗するのだとしたら、引数に指定した
    VISA アドレス文字列(例:USB0::0x0957::0x17A2::MY50500003::0::INSTR)が
    正しいものであるかどうかを確認してみてください。
記事No.92720 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92723  Re[2]: オシロスコープの制御
□投稿者/ じょこびっち -(2019/10/24(Thu) 11:13:56)
    No92721 (魔界の仮面弁士 さん) に返信
    > ■No92720 (じょこびっち さん) に返信
    >>現在c#を学習している初心者です。
    > 細かいことですが、c# ではなく C# が正式表記だったりします。(JIS X 3015)


    なるほど、そうなのですね。以後気を付けます。


    >>inst.IO = rm.Open("[VISAアドレス]") as IMessage;
    > 環境が無いのでテストはできませんが、まずはどの段階でエラーとなっているかを
    > 確認するため、上記の行を分解して
    >  // inst.IO = rm.Open("[VISAアドレス]") as IMessage;
    >  object obj1 = rm.Open("[VISAアドレス]");
    >  IMessage obj2 = obj1 as IMessage;
    >  inst.IO = obj2;
    > にしてみください。
    > エラーになるのは Open の行でしょうか。IMessage への変換時でしょうか。
    >
    >
    > Open で失敗するのだとしたら、引数に指定した
    > VISA アドレス文字列(例:USB0::0x0957::0x17A2::MY50500003::0::INSTR)が
    > 正しいものであるかどうかを確認してみてください。


    分解してデバッグしたところOpenで止まりました。
    原因は魔界の仮面弁士さんのおっしゃる通りVISAアドレスが間違っていました。
    VISAアドレスを修正したら無事に動作しました。
    ありがとうございました。また、よろしくお願いします。
記事No.92720 のレス / END /過去ログ160より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -