- ベストアンサー
ハイパーターミナルによるRS-232C通信
仕事の関係でアラーム用PCからRS-232Cで受けた信号を特型I/Fユニットで分配して4つの業務用機器を制御するというこの特型I/Fを発注したのですが 現場に納めたところうまく動作していないと言われ近日中に動作チェックをしたいのですが当方営業職なものでやり方がよくわかりません。 (製作元ではアラーム側と同じ信号を出してI/Fから信号がでることを確認済) ハイパーターミナルを使えばできそうだということなのですがどうすればいいのでしょうか。 わかりやすいサイトなど教えて頂けないでしょうか。 USBに接続するD-sub9ピンの変換コネクタは持っています。 通信プロトコルの規格は以下になります。 非同期:転送レート9600kbps:データ長7ビット:ストップビット1ビット:パリティ偶数:フロー制御RTS/CTS(ケーブル端末処理) 動作確認したいことは下記です。 1:アラームPC側から11バイト長のメッセージが送られてくるらしいので、PCと直接繋いでコマンドが正常にきているか受信したい。 2:1が正常なことを確認できた上で特型I/Fの出力から同様のコマンドが出るのかを確認したい 3:アラームPCのかわりにノートPCを繋いでメッセージを送信したい。 他に必要な情報あれば指摘下さい。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ハードウェアの懸念事項 ・動作確認1の接続形態は次のように仮定します。 ノートパソコン <== USBからD-sub9ピン変換 <== RS232Cシリアルケーブル <== アラームPC ここで1つ懸念事項があります。 RS232Cシリアルケーブルには種類があります。大きくわけると,ストレートとクロス(リバース)ケーブルがあります。 お持ちのケーブルがストレートケーブルの場合はパソコンとパソコンの接続は出来ません。 この為,クロスケーブルを用意して動作確認1で使って下さい。 動作確認2の接続形態は次のように仮定します。 ノートパソコン <== USBからD-sub9ピン変換 <== シリアルケーブル <== 分配 <== シリアルケーブル <== アラームPC 動作確認3の接続形態は次のように仮定します。 ノートパソコン ==> USBからD-sub9ピン変換 ==> シリアルケーブル ==> 分配 ==> シリアルケーブル ==> 業務用機器 分配とアラームPC間か,分配と業務用機器(ノートパソコン)間のどちらかにクロスケーブルと同じ機能が入っている はずなので動作確認1の懸念事項はありません。 ソフトウェアの懸念事項 ・ハイパーターミナルはテキスト送受信が基本なので確認する11バイトのメッセージがテキストでなければ詳細な確認が出来ません。 回答#1さんの懸念されていることです。 ハイパーターミナル設定方法 まず,ノートパソコンのOSがvistaの場合はハイパーターミナルがありませんので別の方法を考える必要があります。 これ以降はノートパソコンのOSがWindowsXPと仮定して説明します。 準備作業 1.ノートパソコンにUSBからD-sub9ピン変換コネクタを接続しておく。 2.準備作業1で接続したUSB機器のCOMポート番号を確認する。 スタート - コントロールパネル - パフォーマンスとメンテナンス - システム の順に選ぶ。 システムのプロパティのダイアログのハードウェアタグを選ぶ。 デバイスマネージャ(D)ボタンを押し「ポート」を開き「COMx」の「x」の数字を覚えておきます。 COMxが複数あって判断出来ない場合はUSB機器をはずして,消えたCOMポートで確認出来ます。 設定手順 1.ハイパーターミナルを起動させます。 スタート - プログラム - アクセサリ - 通信 - ハイパーターミナル の順に選んで下さい。 2.接続の設定の新しい接続はESCキーを押してキャンセル。 所在地情報の設定の画面が表示される場合がありますがそれは必要ないのでキャンセルします。 接続の設定のダイアログはキャンセルして下さい。 3.ハイパーターミナルのプロパティを開く。 ハイパーターミナルのメニューバーからファイル(F) - プロパティ(R)の順に開く。 4.接続方法の変更 新しい接続のプロパティの接続の設定タグから接続方法(N)のリストからCOMxを選ぶ。 COMxは準備作業2で確認したものと一致させて下さい。 モデムの構成(F)のボタンを押し,ポートの設定を開き次の設定をして下さい。 ビット/秒 = 9600bps データビット = 7 パリティ = 偶数 ストップビット = 1 フロー制御 = ハードウェア 最後に「適用」ボタン,「OK」ボタンを押します。 これで設定変更が終わりましたので「OK」ボタンを押します。 5.通信開始と通信方法 左上の方にカーソルが点滅しているので適当なキーを押すことで通信が開始されます。 接続状態はハイパーターミナルのダイアログの左下に表示されてます。「切断」「接続」など。 相手から受信する場合は特にこの接続状態を確認して下さい。 メッセージを送信する場合,キーを押すとそのまま送信されます。送信された文字は表示されません。 送信した文字を画面に反映させる場合は,設定手順3からプロパティを開き「設定」タグを開く。 続けて「ASCII設定」ボタンを押しローカルエコーにチェックを入れ「OK」を押し設定します。 これで押したキーは表示されます。 メッセージを受信する場合は,適当なキーを押すなどして接続状態にしておきます。何か受信 した場合は画面に反映されます。 6.作業終了 通常のアプリケーションと同じく右上の「X」でもメニューバーのファイルから終了させても かまいません。 #自社内で事前にソフトの設定とシリアルの送受信は確認しておきたいですね。障害の切り分けは大変と考えますが無事完遂されることを祈ります。
その他の回答 (2)
- goosyu
- ベストアンサー率58% (36/62)
>>アラームPCからの11バイト長データは資料に1バイト目からASCIIコードで11バイト目まで送られてくるようなことが書いてあります。 >>ということはアラームのデータが正常に送られているかは1バイト目の'STX'から11バイト目の'ETX'のまでのデータがおかしくないかをログで確認すればいいんですよね? →そのように考えます。 >>あと、話によればアラームPC側からの信号規格が質問に書いたものと違う可能性があり、そのせいで通信がうまくいってない可能性もあるようなのですが >>その場合の確認方法は一つ一つ設定を変更して試してみるしかないのでしょうか? →PCでは一つ一つ設定を変更するしかないと思われます。通信速度設定が大きく依存しているのでまず優先して調整すべきです。 (経験上,通信設定が正しくなくても文字化けして受信がわかる場合があります。)
お礼
返信遅れましてすいません。回答ありがとうございました。 結果から言いますとデータのモニターに無事成功しました! アラームPCからのデータが毎回化けていて本来うけとるデータと違う信号が毎回出力されていました。 持ち込んだPCのツールからコマンドをおくってやると特注I/Fは正常に動作したので 間違いなくアラームPC側だろうということでアラームPCを納入した業者に確認してもらったところアラームPCを初期化するだけで治ってしまいました^^;(そんなのでいいのかと思いつつ・・・) 何はともあれ今回の経験で同じような状況になったときは次からは自分でも対処できるようになりそうです。 調子に乗って電子工作もしてみようかなw 皆さんありがとうございました。
その手の調査をする場合は、ハイパーターミナルでもできなくはないですが、慣れてないと解りにくい上に、やりとりするコマンドに制御コード(文字として表示されないデータ)が含まれる場合は表示されないため、専用のソフトの方が使いやすいです(参考URL)。そういうソフトなら、使うコマンドをあらかじめ何個か登録しておいて、好きなものを選んで送信できるので、楽ちんです。 余談ですが、転送レート9600kbpsではなく、9600bpsの間違いでは?232Cでその速度はありえません。115kbpsが一応の限界の目安です。それでも実用になるのはごく短い距離、せいぜい2mまでです。
お礼
回答ありがとうございます! こういうソフトがあるんですね、早速ダウンロードしてみました。 使い方は触ってみて覚えるしかありませんよね・・・ 起動してぱっと見た感じ素人には難しそうという印象です^^; 転送レートは指摘されたように9600bpsの間違いです。 9.6Mbpsとかありえませんね、すいません。
お礼
詳細な回答ありがとうございます。とても参考になります。 おかげ様で下準備まではできました。 明日、通信の確認に行ってきます。 下準備としては回答者#1さんに紹介して頂いたソフトをPC2台にインストールしてテキストの送受信と、16進数での送受信をできることを確認しました。 (よって通信できたのでケーブルはクロスであると思われます。) アラームPCからの11バイト長データは資料に1バイト目からASCIIコードで11バイト目まで送られてくるようなことが書いてあります。 ということはアラームのデータが正常に送られているかは1バイト目の'STX'から11バイト目の'ETX'のまでのデータがおかしくないかをログで確認すればいいんですよね? あと、話によればアラームPC側からの信号規格が質問に書いたものと違う可能性があり、そのせいで通信がうまくいってない可能性もあるようなのですが その場合の確認方法は一つ一つ設定を変更して試してみるしかないのでしょうか? 重ね重ね、申し訳ありませんが教えて頂ければ幸いです。