01-04-2016 05:08 AM
はじめまして。LabVIEWを用いて電圧電流源を制御するプログラムを組みたいと考えています。
LabVIEW上では電圧の出力等を行えるように実行していますが機器のほうが反応を示しません。
使用している機器はアドバンテスト社のR6144で、GPIBの変換機を用いてシリアル通信で制御を行いたいと考えています。
LabVIEWに関しては最近導入したばかりの初心者です。実行までの手順等を教えていただけると幸いです。よろしくお願いいたします。
01-05-2016
09:28 AM
- 最終編集日:
04-01-2025
10:42 AM
、編集者:
Content Cleaner
「GPIBの変換機を用いてシリアル通信で制御」とは、RS232-GPIB変換機を使用する、ということでしょうか。(こちらですか?https://www.ni.com/ja-jp/shop/model/gpib-rs232.html)
何をお使いかによって答えが変わるので教えていただけると幸いです。
01-06-2016 06:50 AM
「LabVIEW上では電圧の出力等を行えるように実行していますが」とのことですが、
そこを具体的に、通信openから「これで電圧出るはず」という出力指令のところまでの
ダイアグラムを絵で添付された方が、問題がクリアになると思います。
ダイアグラム上に問題がなさそうなら、ハードかも知れません。
RS232C-GPIBは、多少クセがあって、うまくいかないこともあるので、
高須さんがおっしゃるように何をお使いか・・・というのも難しいところです。
R6144は、PC98からBASICで出力していたころからあるような古いタイプの命令系統だと思うので、
命令文字列の最後には復帰改行(CR+LF)が来るものだ、という仕様な気もします。
その場合、LabVIEW上での命令文字列の指定の仕方も原因になりえます。
(これはダイヤグラムを見ればすぐ分かることですが・・・)
いくつか考えられることを書くと、
●LabVIEW上で命令文字列の最後に、明示的に「復帰改行」(CR+LF、文字列定数の中にある)を文字列連結していない。
(BASICは何もしなくてもPRINT文が最後にdefaultでCR+LFを付けるので、機器側がCR+LFが来る前提になっている)
そのため、「電圧値指定」命令に続けてCR+LF無しに次の「電圧印加」命令を送ると認識できない。
●LabVIEW上でRS232Cの通信設定(baudレートとかパリティとか)が、RS232C-GPIB変換器の要求と合っていない。
●GPIBアドレスが、RS232C-GPIB変換器とR6144とで設定が合っていない。
(RS232C-GPIB変換器によっては、GPIBアドレスが決まっています。R6144側で変える必要あり)
●R6144がリスナになっていない。
●RS232C-GPIB変換器が適合していない。
(この手の変換器は、な~んかうまくいかないことが多い)
とかでしょうか・・・
01-12-2016 09:40 PM
親切な返答をありがとうございます。
R6144とノートPCを接続しているのはRS232C-GPIBではなく「PROLOGIX GPIB-USB CONTROLLER」を利用しています。
機器を扱う企業に問い合わせたところ通信設定(baudレートやパリティ等)は必要なくGPIBアドレスの設定のみで接続できるそうです。
しかし、この機器のLabVIEWドライバ(企業のHPよりダウンロード済)でもサンプルの「簡易シリアル」を用いても機器からの応答もなくエラーを示してしまいます。
機器自体には専用のドライバがありますので問題点があるとすれば接続する際にあると考えています。宜しくお願い致します。
01-13-2016 06:51 AM
シリアルは、RS232CでなくUSBシリアルということですね。
「機器からの応答もなくエラーを示してしまいます。」というのをもう少し具体的に
●何のコマンドをどのように送ったのか
●どのような応答を期待しているのか(R6144の電圧設定や電圧ONなどは送りっぱなしで向こうから応答があるんでしたっけ)
●エラーを示しているのは何なのか(せめてキャプチャを) どういうエラーなのか(TimeOut?)
という点で示さないと、他のかたも同じ「簡易シリアル」のサンプルを持っているわけではないので
分からないと思います・・・・
GPIB-USBコントローラメーカのサンプルを使ったとすると、LabVIEWですから
先に書いたように送りたいコマンド文字列の最後に勝手にCR+LFはつけてはくれません。
「簡易シリアル」は、制御器に入力したバイト列の通りに送信するはずですので(機器によってはCR+LFは不要だから)、
CR+LFが必要な機器を相手にコマンドを送るのであれば、自分で「簡易シリアル」の「送りたいコマンド文字列を入れる制御器」で、
右クリックで「¥コード表示」にして「¥r¥n」(半角です)と足しこんでCR+LFも入力しておかなければなりませんが、付けていますか?
(そもそも何のコマンドを送ろうとしたのか、別のたぐいの指令を送ろうとしたのか分からないですが)
01-14-2016 06:10 PM
zoomin様
引き続き、M.Shiraishi様に対応していただいた方が良いと思いますが
ちょっとだけ^^
お使いの商品は下記URLでしょうか?
「Virtual COM Port (VCP) driver」と「 Direct (D2XX) driver」の2種類あるようで
VCPの場合、シリアル(VISA)で通信できるようですが、コントローラコマンド(++文字)を送信する必要がありそうです。
D2XXの場合、Write-Read String Demo.viを使われた?
通信設定が必要無いとはデフォルトで良いって意味だと思います。
エラーの原因を調べて解決していくしかないかと思います。
後、LabVIEWだけでの確認しかされていないのであれば
(インストールが問題無いかを確認の上)ターミナルソフトを使って
コントローラコマンド(++文字)とアドバンテスト社のR6144のコマンドを送信して動作を確認していく方が良いと思います。
(LabVIEWで動かすのはその後、私だったらそうします)
こちらの商品?
http://www.compass-lab.com/USB_Tool/GPIB_USB.htm
「ユーザマニュアル(和訳)」・「GPIB-USB良くある質問」要参照
LabVIEW Examplesってこれ?(D2XX使用)
http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/LabVIEW.htm
D2XXプログラミングガイド
http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer's_Guide(FT_000071).pdf
Google「prologix gpib usb controller labview」で検索の一つ
http://forums.ni.com/t5/Instrument-Control-GPIB-Serial/GBIP-Control-using-prologix-usb-converter/td-...