Quantcast
Channel: つねづね思ふこと 〜 ゲームやアニメの紹介を中心 に、あと気がついたときにプログラムネタも書いてます
Viewing all articles
Browse latest Browse all 153

RS-232Cでのバイナリデータ通信テストに「SerialDebug Tool R2」が使えた!

$
0
0

RS-232Cことシリアル通信を行う機器とPC(Windows8.1)を繋げてバイナリーデータの通信テストをする際、何を用いますか?

世間一般で有名なのは、やはりTeraTerm!

ということで今回も用いていたのですが、どうもデバッグをしていくとおかしな点に気がつきました。

バイナリーデータはぱっと見読めないので、TeraTermの受信結果をログファイルに出力させたら、別途自分で機器の仕様に基づいて解析しCSVに変換するプログラムをVisualStudioで組んでみた。
しかし通してみると、そのプログラムがどうも落ちまくって、途中までしか変換できない。
何でやねんと、stirling(バイナリーエディタ)で直接バイナリログを眺めつつ受信したデータを手動で解析してくと、どうもたまに定期的にデータ欠損している!ということが分かった。

こうなると責任者は、「ラインモニタ上ではうまく動いていたんですけど」と主張する機器担当者か、変換ケーブル担当者か、動作チェック担当者(私)の見方が悪いかで、皆自分の正しさをデータを持ち出し主張し泥沼タイムに突入っ!

-と、なりがちですが。
すみません、ちょっと調べたら「動作チェック担当者(私)」が悪い事が分かりました。
どうもずみまぜんorz。

TeraTermを止めて※、別のスタッフから進められたVectorより無料でダウンロードできる「シリアルデバッグツール2」(SerialDebug Tool R2)でいくつか試したところ、そのいくつかは機器担当者が記載した仕様書通りに動くことが確認できました。

※こういう場合、TeraTermの設定を変えれば同種の動作検証がTeraTerm上でもできるのかもしれません。
 ですが、そこまで調べて対応する余裕が今の自分にはありません。

「シリアルデバッグツール2」では、送信欄に 0x02,0x80,...等と入力すると容易にバイナリデータを機器側に送信できる機能も付いているので、プログラムを組むことなく応答テストができるのがいいですね。

SerialDebugToolR2の画面例、上部のフォームから16進数でキャラクターコードを入力することでバイナリ値を送れる

また応答内容について、バイナリ-コード内での改行ポジションといえるキャラクターコード0x03(ETX)が来たらなのか通信ごとのワンブロック毎に、画面内でも改行をしてくれるのもいいです。
手動の解析が捗ります。

ただ、受信するバイナリデータについて、バイナリのまま、まるごと出力できなさそうなのがちょっと痛い。
折角作った「別途C#にて機器の仕様に基づいて解析してCSVに変換するUIで動作するプログラム」が動かず、やっぱり手作業でCSVに変換してみないといけないので、他のコマンドを含め一通りテストする作業がちょっと面倒くさいなあ。

ラトックシステム 4ポート RS-232C・デジタルI/O PCI Expressボード REX-PE64D
ラトックシステム (2011-09-28)
売り上げランキング: 10,624

Viewing all articles
Browse latest Browse all 153

Trending Articles