10-05-2011 04:13 AM
Labviewのシリアル通信で、
マスフローコントローラー(堀場エステック社製 N100)
を制御したいと考えております。
「計測器I/Oアシスタント」を用いて制御を試みましたが、
コマンドを送っても、コマンドを文字としか認識していない状態でした。
原因およびマスフローの制御方法について、
ご教授頂ければと思います。
Labview初心者です。
宜しくお願いします。
10-07-2011 07:44 PM
シリアル通信は基本文字列でコマンドを送るので、ある意味正しい気がします。
「文字としてしか認識していない」とはどういうことでしょうか。どのように確認されているのか教えて頂けないでしょうか。
N100のシリアル通信の仕様・コマンド一覧など分かりますでしょうか。その仕様に基づいてコーディングすれば動作するはずです。
お手元に仕様書またはマニュアルがありましたら通信の仕様・コマンドを教えて頂けないでしょうか。 ウェブ上では手に入らないようです。逆に、仕様・コマンド一覧が分からないとどうしようもありません。販売店またはメーカに連絡されて、ご入手されることをお勧めします。
ウェブページを見ると通信仕様が485のようです。RS-485の通信ボードはお使いですか?
状況について教えて頂けると幸いです。よろしくお願いします。
10-10-2011 08:56 PM
ご回答有難うございます。
確認方法ですが、「計測器I/Oアシスタント」のクエリ解析にて、
例えば”AFC500"を入力し実行しても、問題なく実行できるようなのですが、
コマンドにない単なる文字(例えば"a")を入力しても同様の結果となります。
基本的に、方法が間違っているのでしょうか?
N100のコマンド一覧をお送りします。
また、現在の接続は、
N100→LANケーブル→変換アダプタ(LAN→RS-485/型番CA-DP9RJ45-B485-Z5-01)
→変換器(RS-485→RS-232C/型番4WSD0R)
→変換器(RS-232C→USB/製番NI 778473-04 )→コンピューター
で行っています。
これでは不足でしょうか?
宜しくお願いします。
10-11-2011 09:30 AM
y.suga様
早速の返信有難うございます。いくつか考えられますが、
1. 送信コマンド作成部分
2. 通信インターフェース設定
3. 使用デバイス固有の問題
の中で、1の送信コマンド作成が可能性が一番高いのではないかと考えています。
送信コマンドはどのように作成されていますか?プログラムを見せて頂けると幸いです。
また、添付VIのようにしてレスポンスは得られないでしょうか。
教えてくださいますようお願いします。
10-12-2011 11:46 PM
ご回答有難うございます。
送信コマンドですが、手順について認識不足なのかもしれません。
基本的には、「計測器I/Oアシスタント」を用いて、
以前添付しました「N100シリーズ通信インターフェース」の
p4の例にしたがって入力しています。
方法が間違っているのでしょうか?
基本的な手順について、ご教授頂ければ幸いです。
宜しくお願いします。
また、添付頂きましたVIについて確認してみました。
添付に、その結果を示します。
エラー出力が表示されます(-1073807339)。
以上、宜しくお願いします。
10-13-2011 09:33 AM
早速試して頂き有難うございます。
送信コマンドですが、STX(&h02)やETX(&h03)を入れなければならないので計測器I/Oアシスタントでは不可能かと思います。またBCCの計算をどうするかなど、やはりベタのVISA関数で書く必要があるかと
思います。
通信させ一度出来てしまえば後は簡単なのですが、私はいつもココでつまずくことが多いです。場合によってはシリアル通信用バスモニタを繋いで応答文字を確認する必要があります。
前回のVIに、いくつかマニュアルを元に設定を追加しています。終端文字をETX(&h03)にしていますが、これだとバッファにゴミが残る可能性があるので、ひょっとしたら終端文字の使用をFalseにする必要があるかもしれません。それと、待機時間を10msに設定していますが、もう少し長くしなければならないかも知れません。
また、他言語のサンプルコードなどがあるとそれがヒントになったりします。メーカ様に問い合わせて入手されることをお勧めします。
ひとまず添付VIの結果を教えていただけますか?よろしくお願いします。
10-16-2011 10:58 PM
ご回答頂き有難うございます。
”Massflow test2”について、確認した結果を
添付に示します。
前回と同様のエラーが出力されました(-1073807339)。
また、終端文字および待機時間についても、
変更してみましたが同様でした。
尚、他言語のサンプルコードにつきましては、
現在、メーカーに確認しております。
以上、宜しくお願いします。
05-29-2015 12:41 AM
05-31-2015 08:06 AM
こんにちは。
エラー -1073807339 は読み取りの関数で指定したバイト数(使用されているVI では128バイト)を読みとろうとした時に、
128バイト分のデータが対象物から返ってこず、タイムアウトが発生したというエラーです。
ですので、必ず128 バイトの返事が来ないかぎり、同じエラーが発生するはずです(マニュアルを読んでいないのですが、128バイト返ってくる仕様であれば問題ないです)
余談ですが、ある程度詳しいデバイスであればLabVIEW で直接コマンドを送り始めても問題ないとは思います。
ただ変換器を3回かませてると、コマンドよりもハードの接続的な部分もちょっと心配になったりします。
高須さんも以前聞かれていましたが、多言語のサンプル、もしくはマスフローコントローラ用の通信ソフトで動作確認をすることをお勧めします。
05-31-2015 08:53 PM
すいません,添付ファイルを忘れていました。
要点は
・必ず128 バイトの返事はこないので注意
・コマンド送信から,受信まで40msecほど待つと良い
・マニュアルにある,STX 02, ETX 03 は,16byte表記なので,
LabVIEWの文字列定数を右クリックし"16進数表記"にして,02 or 03を入力する。