久しぶりの計測器ネタです、今回は下記の電源を使うことに。
ここのKX-210Lというやつ、標準でシリアルポートが付いています、
ちなみにコントロールソフトやサンプルも準備されていますね。
今回はコマンドだけ調べておけば、普通にシリアル通信で動くだろう、
と思ってたら、予想以上に手こずりましたというお話です。
Agilent Interractive IOでは動く
普通にC#でシリアルポートをOpen、ボーレートやら設定合わせて、
普通にクロスケーブルで接続しましたが、なぜか通信出来ない。
AgilentのVISA(VISAはこの辺参照)が入っているので、Connection Expertを起動し、
Interactive IOというツール(下記赤枠)で確認してみました。
下記画面でConnectメニューを選択
今回はCOM1に接続しているので、ASRL1を入力してOK
電源ONだと”A1,OT1"を送るだけです、ここでは通信出来ます。
VISAではOKなのに、私の作ったC#ソフトでは動かない状況、なぜ??
RtsEnableをtrueにして解決
結局、シリアルポートクラスのRtsEnableをtrueに設定して無事解決。
(ここに至るまで散々悩んだのですが、簡単なことでした)
先ほどのInterractiveIOでは、内部的にtrueに設定してくれるのかも?
KX-210はフロー制御無しだったので、ちょっとした盲点でした。
以下が今回実装したコマンドです。
動作 | コマンド文字列 |
---|---|
電源ON | A1,OT1 |
電源OFF | A1,OT0 |
電圧値取得 | A1,TK6 |
電流値取得 | A1,TK7 |
電圧値と電流値は、”12.030V”, "0.241A"等、末尾に単位が付いた文字列が
戻ってきますので注意して下さい。
サンプルソフトはこちら
高砂電源 KX-210制御クラス
クロスケーブルの罠
話が前後しますが、今回もうひとつハマった罠がケーブルでした。
高砂電源の場合、”インターリンク”のクロスケーブルが必要です、
マニュアルにも下記結線図が有りますので、これに対応したもの。
要は上記7Pin, 8Pinもクロス結線されていないと駄目みたいです、
最初、下記のクロスケーブルを使っており、全く通信出来ませんでした。
RTS信号をEnableにしないと駄目だから、当たり前の話でしたね、
てな訳で、下記ケーブルを購入して無事解決。
www.sanwa.co.jp
クロスケーブルにも色々有るとは知らなかった、勉強になりました。