blochの日記

自虐ネタ以外のぐちは書かないようにしましょう

OMRONカウンタK3HB-C、第三回

今日はいよいよ実機でテスト。VISAはノートPCにインストールした菊水のものを使用。シリアル〜USBアダプタはどこかのを使用。USB接続ではポート番号が10番台になってしまうので、Teratermが使えないのが何とも苦しい。

使用したシリアルUSBアダプタは、制御線の監視は行っていないもよう。どこにもつながずに送信データを送っても、データランプが点灯する。昔からそうだったけど、RS-232Cの制御線って役に立つことがあるのだろうか?

まず、予期していたのではあるが、ターゲットのK3HB-Cは全くうんともすんとも言わない。問題を切り分けるために、他のシリアル機器でテストすることにした。コマンドを良く知っている、CryoconのCryo62をターゲットにした。最初に、SYSTEM I/Oのパネル設定でRS-232Cと9600bpsを選択。他のパラメタは何も指定出来無いのが不安(結局、ビット数やパリティ等はどれでもOKだった!)。しかしこれも、しばらくの間はうんともすんとも言わなかったのだけれど、クロスアダプタ(ヌルモデムケーブル)を使用して、無事に読み書き成功。ただし、VISAツールでは読めなかった。
とりあえずvisaとシリアルUSBアダプタが動いたのでひと安心。メモとしては、Cryoconの温調はクロスケーブル。そして、ボーレート等の指定は、VISAツールとデバイスマネージャの両方がある(どっちが優先か不明)ということの二つ。

次に、K3HB-Cでトライ。こちらはストレートケーブル。マニュアル指定通りに、K3HBのNo.2/RXDをDSUBコネクタの3番ピンにつないだからである(PC側のNo.2がRXD)。一時間以上、格闘するも全く反応なし。
:::
やけになって、バッファのバイト数チェックを外して、viReadを何回か叩いた。すると、何と、エラーは起こすものの、データは返って来た。帰宅直前の幸運である! しかし、バイト数チェックは何回やってもゼロ。そして、VISAツールでは読めないのは一緒。

終端文字が無い(最後はETX+BCC)ので、バイト数チェックが効かないらしい。しかし、問題が切り分けられた。解決方法は、

  1. ウェイトを入れて無理矢理読む
  2. (大勢いるはずの)LabViewユーザに、「シリアルで終端文字がない場合」のやり方を聞く

とりあえず前者かな。

【後記】肝は、VI_ATTR_ASRL_END_INらしい!
termchar(終端文字)で検索していて見つけた。このアトリビュートを、VI_ASRL_END_NONE (0)、VI_ASRL_END_LAST_BIT (1)、VI_ASRL_END_TERMCHAR (2)のいずれかにセットする。noneにした場合は毎回タイムアウトエラーさせるってことか。