RS232C Reader (2017/3/31)

※2017/05/12 受信エラーが出ると、継続できないのを手直しました。(Ver.1.10)
※2017/05/06 通常の受信ができないため、一部、修正しました。(Ver.1.01)

 三菱シーケンサから既設の刻印機を制御する依頼があり、そのためだけに作成しました。
 キーエンスのトレースモニタが見やすいので、それふうにしています。

■テストモード
 
 ・COM ポートを1つだけオープンします。
 ・DTR,DSR を ON にする場合は、それぞれのチェックボックスをチェックします。(Ver.1.10 より)
 ・送信する文字列を入力し、行末で [Enter] キーを押すと、その行の文字列が送信されます。
  <CR>、<CR><LF> のチェックボックスを使うと、CR、LF が付加されます。
  ※制御コードは、<STX>、<ETX> のように、<> で囲んで下さい。
  ※16 進コードは、<00>、<ff> のように、数字、小文字を <> で囲んで下さい。
 ・受信データがあれば、表示欄に表示されます。

 ・受信だけの場合は、[START] ボタンをクリックして下さい。
 ・受信データを受け取ると、[STOP] ボタンの横にバイト数が表示されます。
 ・適当なバイト数で、[STOP] ボタンをクリックして下さい。(1024 バイト受信すると、自動で停止します。)
 ・受信データが表示されます。

 ※自 PC からのループバック
  ・ループチェック用のプラグを作成し、COM ポートに取り付けます。
  D-Sub9 ピンの 2-3、4-6、7-8 番ピンをそれぞれショートすると、自 PC から送信したデータを受信できるようになります。

■ラインモニタ
 
 ・COM ポートが2つ必要です。自 PC からのデータをモニタする場合は、ポートは3つ必要です。
  送り側-受け側の D-Sub 9 ピンをストレートで結線します。
  送り側の TX (D-SUb 9 ピンの 3 番) を Port1 で受信できるように ダイオードを通して2 番ピンに接続。
  受け側の TX ( = D-SUb 9 ピンの 2 番) を Port2 で受信できるように、ダイオードを通して2 番ピンに接続。
  それぞれのSG(D-SUb 9 ピンの 5 番)を接続します。
  ※RX-TX 以外の通信線は、見ていません。

 ・ボーレート、データビット等をモニタ先のポートに合わせます。
 ・COM ポートを2つオープンし、[START] ボタンをクリックします。
  送受信のバイト数を合わせて 1024 バイトを超えると、自動で停止し、文字列が表示されます。
  1024 バイトに満たない場合は、[STOP] ボタンをクリックして下さい。
 
 ※受信スレッドのタイミングにより、データが前後することがあります。
  こちらの環境では、USB - シリアルポートのドライバの設定を変えることで改善されました。



■その他の機能

 ・一番下の検索ボックスに文字列を入力すると、受信データの16進表記、ASCII 表示の文字列から検索されます。
 ・[ Shift ] + [→], [←] キーでセルを選択すると、選択したセル数が表示されます。

■ラインモニタ用接続ケーブル
 
 基本的には、USB- RS232C 変換器2個と、RS232C コネクタ4個とケーブル接続だけで、ラインモニタできるのですが、
 USB ポート1つで COM ポートを2つ使いたいため、ラインモニタ専用に自作しました。



 部品代としては、¥2,700.です。
  ・FT2232D USB-シリアル2ch変換モジュール(¥1,450)
   http://akizukidenshi.com/catalog/g/gM-02990/
  ・3V・3.3V・5V系-RS232レベル変換基板(¥500×2)
   http://akizukidenshi.com/catalog/g/gK-06464/
  ・Dサブ9P基板セット(小)(¥250)
   http://akizukidenshi.com/catalog/g/gP-01335/

 COM ポート2つの製品としては、↓が安価で良いのですが、しっかりとした完成品なので、改造に不向きのようでした。
 ・コレガ RS232C (シリアル) - USB 変換器 2 ポートモデル CG-USBRS2322 (アマゾンにて ¥2,780)
 ※使っている IC は、ASIX 社製です。

■USB - シリアルポートドライバの設定

 受信データの中に送信データがまぎれたり、その反対になることがあります。
 マルチスレッドにしても、この現象は改善されませんでした。
 こちらの環境では、送信 - 受信データのタイミングが合わないとき、下記の操作をすると改善されました。

 ・FTDI ドライバの場合
  デバイスマネージャー - ポート (COM と LPT) から、例えば USB Serial Port (COM10) をダブルクリック。
  プロパティ画面から 「ポートの設定」 タブをクリック。 [ 詳細設定 ] ボタンをクリック。
  BM オプションの待ち時間 (msec) の値を既定値の 16 から 1 に変更。
  [OK] ボタンをクリックして終了。


 ・Microsoft ドライバの場合
  FIFO バッファを使用する ・・・ のチェックを外す。


■開発環境
 
 ・Delphi 10.1 Berlin Professional / Windows 8.1 64 bit

■著作権、免責事項
 
 ・本ツールの著作権は、作者 f.izawa が所有し、これを主張します。
 ・本ツールを使用したことによる事故、損害等の一切について、作者はその責を負いません。

■ダウンロード
 ComRead2.zip (Ver.1.01 exe 本体のみ)