blochの日記

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

USBシリアル変換

JASTECの電源JPS-B125A10Vを使うことになって、後からシリアル制御だと聞いて激しく後悔。以下メモ。

  • USBシリアル変換ケーブル、BUFFALO BSUSRC0610BS
    • 安い方で可(高い方は0605BS)。マニュアルには32ビットのみ対応と書いてあるが、Win7以降ならちゃんと64ビットにも対応している。
    • バッファロー(メルコ)のページで「SRC06USB/USMドライバー,BSUSRC06シリーズ」をダウンロード
      • ファイル名src06us-282.EXE、実行するとデスクトップに解凍。
  • 一応、リバースアダプタ「エレコム ELECOM AD-R9」も購入
  • ドライバのインストールが成功するとデバイスマネージャにUSB Serial port (COM37)が現れる。
    • 数字はPCにデペンド
  • DOS窓の設定と状況確認は以下の通り。

シリアル ポート: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]
[to=on|off] [xon=on|off] [odsr=on|off]
[octs=on|off] [dtr=on|off|hs]
[rts=on|off|hs|tg] [idsr=on|off]
バイス状態: MODE [デバイス] [/STATUS]

  • 制御線の詳細は以下の通り。

to=on|off (無限タイムアウト処理設定)
xon=of|off (データフロー処理におけるxon/xoffプロトコルの設定)
odsr=on|off (DSR(Data Set Ready)を使うハンドシェイクの設定)
octs=on|off (CTS(Clear To Send)を使うハンドシェイクの設定)
dtr=on|off|hs (DTR(Data Terminal Ready)の設定)
rts=on|off|hs|tg (RTS(Request To Send)の設定)
idsr=on|off (DSR検知の設定)

  • JASTEC側の指定
    • PCとは三線接続(2,3クロス、5=GND)、PC側は必要に応じて7-8コネクト。
    • RS-232C設定:mode COM37: baud=1200 parity=N data=8 stop=1 to=on xon=off odsr=off octs=off dtr=on rts=on idsr=off
      • スタートコード:(コロン)、エンドコード[CR]、区切りコード,(コンマ)
    • 読み取り用アスキーコマンド類
      • I? ⇒ +/-nnn.nnnn(A)、目標値
      • A? ⇒ +/-nnn.nnnn(A)、実測値
      • V? ⇒ +/-nn.nn(V)
      • S? ⇒ +/-nnn.n(A/min)
      • R? ⇒ +/-nnn.n(A)、設定レート+制限
      • E? ⇒ エラー無はE[CR]
      • L? ⇒ L0(HOLD), L1(SET), L2(DOWN)動作状態
    • 書き込み用アスキーコマンド類
      • I+/-nnn.nnnn ⇒ +/-nnn.nnnn(A)
      • S+/-nnn.n ⇒ +/-nnn.n(A/min)
      • L0 ⇒ HOLD、L1 ⇒ SET、L2 ⇒ DOWN
  • 以前のHM用プログラム
    • PC98で、デリミタはCR+LF、rsdrv組み込み、speed実行
    • Windowsで、デバイスauxや、COM37をopenしようとしたら(Delphiのresetコマンド)、そこで落ちた。

絶望的か、、、、

と思ったら、ここに、こんな回答があった。

■ COMポート番号が10以上 でシリアル通信するには?
jj 2006/07/28(金) 12:15:52 <222.151.239.18>
シリアル通信でCOMポート番号が10以上のときポートが開けません。
かんけつ? 2006/07/28(金) 13:57:28 <61.211.187.23>
くりえいとふぁいる '\\.\COM10'
jj 2006/07/28(金) 14:36:18 <222.151.239.18>
解決
かんけつ?さんありがとうございます。
うまくいきました。

ホントだ。うまく行く!

【後記】VISAでシリアルポート制御すれば何の苦労も無いことに気が付いた。2014/2/7