前提・実現したいこと
GPIB-USBケーブルで外部機器と接続し、値を出力させたい。
本コードはその前段階的で、接続を確認することが目的である。
きちんと実行できれば外部機器のバージョンなどが出力される。
発生している問題・エラーメッセージ
デバックには成功し、実行画面は表示されるものの、button1を押すとONとなったのち、フリーズしてしまう
ここでいうフリーズ、とは、bottunをクリックできず、実行画面のウィンドウを閉じることもできない。
一時停止すると、以下の表示が出る。
ネイティブ フレームが呼び出し履歴の最初にあるため、式を評価できません。
該当のソースコード
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 NationalInstruments.VisaNS; namespace WindowsFormsApp2 { public partial class Form1 : Form { private MessageBasedSession mbSession; public Form1() { InitializeComponent(); } private void RichTextBox1_TextChanged(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { button1.Text = "ON"; try { mbSession = (MessageBasedSession)ResourceManager.GetLocalManager().Open("GPIB0::22::INSTR"); RichTextBox1.Text = mbSession.Query("*IDN?"); mbSession.Dispose(); } catch { MessageBox.Show("通信エラー"); } } } }
試したこと
("GPIB0::22::INSTR")の部分の数字はシリアル番号を入れる箇所であり、22でない値を入れると通信エラーとなる。
補足情報(FW/ツールのバージョンなど)
基本的に以下のサイトに従いました。
https://kesoku-blog.com/?p=299
Visual Studio2019
NationalInstruments.CommonとNationalInstruments.VisaNSはインストール済みでプロジェクトに追加されている
実行前のエラーはない。
あなたの回答
tips
プレビュー