NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

1073807246(0xBFFF0072)を発生させたい

こんにちは。

 

シリアル通信で複数の計測器を、複数のVIから制御したいと思っています。

各VIで指定する計測器はその都度変わる運用を考えています。
ここで、既に通信中のCOMポートを指定してVIを実行した場合にエラーが発生するようにしたいと考えています。

例えばUSB-シリアル変換機でCOM1が使用できる状況とします。

サンプルプログラムの「連続シリアル書き込み読み取り」でCOM1を指定しVIを実行した状態で、COM1をMAXの「VISAテストパネルを開く」をクリックすると、以下のエラーが発生します。

Error opening resource:
ASRL1::INSTR
VISA:  (Hex 0xBFFF0072) リソースは有効ですが、現在VISAはアクセスできません。

逆も同じで、MAXでCOM1のVISAテストパネルを開いた状態で「連続シリアル書き込み読み取り」を実行すると同様のエラーが発生します。

ただ、「連続シリアル書き込み読み取り」を別名で保存し、2つのVIとした場合、それぞれCOM1ポートを指定して実行してもエラーが発生しません。
エラーを発生させるにはどうすればよいでしょうか?

 

宜しくお願いします。

0 件の賞賛
メッセージ1/5
3,390件の閲覧回数

こんにちは。

 

VISAのパレットを開くと「VISA Lock Async.vi」というものがあります。

実機がないのでテストできませんが、VISAのリソースに対してアクセス制限をかけられる様なので試してみてください。

0 件の賞賛
メッセージ2/5
3,361件の閲覧回数

「連続シリアル書き込み読み取り」VI内でVISA関数を使用する際、VISA Open, VISA Closeを使われていますか?

TailOfGon
Certified LabVIEW Architect 2013
0 件の賞賛
メッセージ3/5
3,357件の閲覧回数

コメントありがとうございます。残念ながら意図した動作になりませんでした。

0 件の賞賛
メッセージ4/5
3,319件の閲覧回数

MAXでVISAテストパネルを開いていると、VIでVISA Openを使用しなくてもエラーが発生します。

0 件の賞賛
メッセージ5/5
3,318件の閲覧回数