• 締切済み

RS-232の ボーレイト変更ができません

WindowsXP上で Visual Basic ver.6にて RS232による通信プログラムを 作っておりますが 232C制御用の OCXとして  ・シンプル通信(Rs-232c)Ver1.4 r1 (青山技術) ・HKSerial.OCX(VB6用) 上記の両方試してみますが、フォームオープン時に 通信パラメーターを 38400bps 偶数パリティにセットしますが 全く反映されません。 標準の232ポートも 追加したUSBでの232ポートも不可、 デバイスマネージャーでの通信設定しても なおも不可 ただし、一旦他の通信ソフト(ハイパーターミナル)で設定すると それ以降は ちゃんと指定速度のまま使用できます。 (VBの設定は 効かないけど  前ソフトの設定が保持) これは OCXやVBの問題では 無い気がしますが どなたか 解決方法を ご存じの方 いらっしゃいませんでしょうか どうぞ 御指南願います。

みんなの回答

  • kiki_s
  • ベストアンサー率59% (147/248)
回答No.2

フォームオープン時との事ですが、Form_Loadではなく、 Show メソッドを使っているのでしょうか? サンプルコードではプロパティで設定されていますが、 Form_LoadでもShowでも変更は可能だと思います。 通信する相手が手元に無いので通信まで確認出来ませんが、 各プロパティの設定値はコードが実行された時点で変わる様です。 コードの書き方の問題じゃないかと思います。 本当に通信パラメータが変わっているか、 参照されると一目瞭然でしょう。 サンプルコードにForm_Loadなどを追加して、 A = Rs1.Bps B = Rs1.Parity 'サンプルコードそのままなら 'Aに9600 Bに0が入る 'ボーレート、パリティ変更 Rs1.Bps = 38400 Rs1.Parity = 2 A = Rs1.Bps B = Rs1.Parity '変更後なので 'Aに38400 Bに2が入る という風に確認出来るかと。 Showでも同じです。 サンプルコードにはOption Explicitステートメントがありますので、 適当な変数を使う場合コメント化しておくのが簡単でしょう。 Showメソッドでフォームを表示する時に、 オブジェクトの指定は合っていますか?

  • stiffels
  • ベストアンサー率34% (25/72)
回答No.1

昔RS232C使ってたけどそういう事は起きなかったなぁ。 で、実機が無いのでなんとも言えないのですが、 ボーレートとbpsを混同してらっしゃってませんか? もしそうであれば、ボーレート値=bps値/2(かな?) で設定してみてはいかがでしょうか?

maruZ80
質問者

補足

ご回答ありがとうございます ボーレイトは 私の勘違いですね モデムなどでの 変調速度でしたね 失礼しました でも今事案では ボーレイト値=bps値となります OCXの 設定プロパティも 38400を 直接設定間違いはないのです ちなみに 複数のPCでも 同じ結果となります

関連するQ&A

専門家に質問してみよう