WinXP VB6でRS232C通信の75bps設定方法

このQ&Aのポイント
  • WinXPのVB6でRS232C通信を行う際に、相手側のボーレートが75bpsという制約がある場合、標準のCOMポートでは110bpsが最低となっているため、どのように設定すれば通信が可能か悩んでいます。
  • WinXPのデバイスマネージャではCOMポートの設定で75bpsを選択することができるため、WinXP自体は対応していると考えられますが、VB6での75bps設定方法についてご教示いただけませんでしょうか。
  • 可能であれば、VB6でのCOM通信ツールの作成方法やDLLの作成方法、API関数の利用方法についても知りたいです。また、プログラミングの猛者が集まる質問サイトがあれば教えていただけると嬉しいです。
回答を見る
  • ベストアンサー

VB6のRS232C通信で75bpsは可能ですか?

WinXP VB6 にて開発をしています。 RS232Cで通信する必要があり、相手側のボーレートが75bpsとのことです。 しかし標準COMポートでは、最低は110bpsしかサポートされておりません。 デバイスマネージャのCOMポートを確認したところ、75bpsにて設定が出来ますので、 WinXP自体は対応されていると思います。 この状況でどうすれば通信が可能でしょうか? たとえば。 このソフトをインストールしたらVBでCOM通信ツールが使える? DLLを作ればいい?? API関数がある?? もしくはこの質問サイトにはプログラミングの猛者がいる。そっちで聞いてみれば? というようなサイト、ご存知でしたら教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • kabasan
  • ベストアンサー率44% (264/588)
回答No.1

サポートされていないのではなく、そんな低レートを使用する人がいないから設定項目に無いのでしょう。実際110bpsより低い通信速度は私も聞いたことが有りません。 VBで特殊なボーレートを使う場合、ランタイムライブラリのMscommではプロパティの値として定義されていませんので使用できません。 APIを使用した場合は特殊な値が使用できます。下の式の結果が整数になるボーレートは指定できます。 115200÷ボーレート 75bpsなら1536で割り切れるので設定できるはずです。逆に110bpsは割り切れないので実際には110.03bpsです。(誤差の範囲で問題ないですが) 私もVB6使いですが、232Cの通信は自由度の高いAPIを使用しています。主なAPI関数をあげておきますので検索してみてください。すべてVBで使えます。 CreateFile SetupComm CloseHandle ReadFile WriteFile OpenFile GetCommState SetCommState GetCommModemStatus

Kate077
質問者

お礼

ありがとうございました。 なんとなく出来ました! これから又頑張ります。

Kate077
質問者

補足

そうですね。75bpsなんて使っていないですね。 今では、運用に耐えかねる速度ですよね・・・ 15年程前のシステムの入れ替えを行っているのですが、 どうしてもその機械が残ってしまいそうなんです。 ただ、今後壊れても修理できない為、どうなるか解らないんですが。 パソコンで制御可能か調べておいてくれ。といわれ困っていたところでした。 APIでやはり出来るのですね。 これからさらに調べてみます。ありがとうございました。

関連するQ&A

  • XPでVBを使いRS232Cから5bpsでデータを出力する方法を教えて下さい。

    VBの初心者です。 VBを使いRS2322Cから5bpsでデータを出力したいと思っています。 98MEにてAPIのWriteFile()を使い成功したのですが、XPへ移行したとたんNGとなってしまいました。 MSComm1.Outputを使おうかとも思ったのですが最低ボーレイト110bpsまでで使えません。 何方かXPでRS2322Cから5bpsでデータを出力する方法をご存知の方がおられれば教えて下さい。

  • 拡張したRS485通信ボードである条件下にて通信タイムアウトエラーが発

    拡張したRS485通信ボードである条件下にて通信タイムアウトエラーが発生する。 開発環境:VisualBasic6.0(SP6) PC:WinXP PCにRS485通信用のPCIボード(Win32API対応)を増設しました。ポートの割り当てはCOM3、4、7、8となっています。VB6で計測器との通信プログラムを作成しました。 開発環境がインストールされてあるPC上で、開発ユーザーがログインして作成したソフトの実行ファイルを起動して使用する際には、正常に通信しております。 しかし、PC起動後に他ユーザーがログインして使用すると、通信タイムアウトエラーが発生してしまいます。ポートのオープンとボーレートの設定まではうまく出来ているようです。ただ、PC起動後に開発ユーザーがログインしてログオフし、他ユーザーがログインして使用すれば問題なく通信します。 原因がまったく分からず、困っております。どなたかご教授下さい。

  • RS232C通信ポート(COM1)の通信速度の設定

    通信ポート(COM1)の通信速度の設定ですが、75BPS~128000BPSまでしか設定ができません。 OSの関係かもしれませんが、今まで使用していたパソコンは、921600BPSまで設定できました。 高速での通信を実現したいと考えています。ハード的には出力すると思いますので、 設定方法があれば教えてください。

  • VB2008にてRS232C通信をするソフトを作ってみました。

    VB2008にてRS232C通信をするソフトを作ってみました。 通信する相手はボードで、ボードに対してコマンド(アスキー)を送信します。 送信した際に、ボードより回答は有るのですが特に受信の処理はしていません。 ノートPCなのでUSB-232C変換ケーブル(秋月電子の物)にて通信しております。 とりあえず通信は出来て、思った通りに動くのですが、1時間ほど経つとソフトがフリーズ する現象が起きます。 特に大量の通信をしている訳ではなく、3~4回ほど5文字位を送信しているだけです。 ソフトが立ち上がっている際は、常に通信ポート(例えばCOM3)は開いたままにして いる事に問題が有るのでしょうか? USB-232C変換ケーブルが悪いのでしょうか? それとも、ボードよりの返信がPCの何処かのバッファに溜まってしまうのでしょうか? フリーズする時は、特にボードに対して送信はしていないタイミングです。 1時間ほど通信したままにしてほったらかしにしている状態です。 これだけでは、解らないかも知れませんが、フリーズしてしまう要因で思い当たる事に 気づいた事が有りましたら何でも良いので、教えて下さい。 当方、この通信は初めてなもので、知らない事が多いかと思います。 ちなみにポートを閉じるタイミングはソフトを落としたときです。

  • VC++でRS232C(COMポート通信)

    VC++でRS232C(COMポート)通信をするソフトを作成していますが、COMポートが開けず通信ができません。ポートが開けない理由を追跡する方法はありますか?

  • VB6.0 RS-232C通信プログラム

    はじめまして。 以下に示したような通信プログラムを作成しなくてはならないのですが,VC6.0は若干かじった事がある程度で,VB6.Oは初心者のためどのように作成してよいのか分からない状況です(何から始めてよいのかわからない・・)。宜しければ,参考書やサイトなど知っておられる方がいらっしゃいましたら,御願いします。 (構成) (1) 重量計で測定したデータ(測定する毎に)をRS-232CでPC(XP)ポートに送り,データを収集するできるプログラム (2) 収集したデータをtxtで保存し,他のPCに送れるようにする(送信ボタンを作成して,ボタンを押すことで)

  • RS232C通信ポート(COM1)が開かない

    Windows2000をシステムとする、旧型 IBM Think Padを使って通信ポート(9ピン)に、RS232C クロスケーブルで 富士電機プロコン(シーケンサー)と接続し、ONLINEにしたいのですが、<通信ポートをオープンできません>というメッセージが表示され、接続されません。 それで、Windowsのデバイスマネイジャーで、パソコン側の通信ポート(COM1)のプロバティをみると、<このデバイスは正常に作動しています。>とあります。 富士電機のサポートセンターに状況を問い合わせた所、パソコン本体側にエラーと思われるとの回答でした。 復旧の仕方がわかりません。 どなたさまかご教示くだされたく、お願い申しあげます。 使用状態 パソコンの使用状況、ウィルスチェッカー:ESET Smart Security 4 インストール。インターネットは、ドコモFomaの データ通信をUSBに接続してアクセス。 RS232C通信ポートは、富士プロコンのみで使用しています。 その他設定  1.アプリケーションソフトの<通信ポート設定>     PCとのポート(P): COM 1    ポートの設定(M): ビット/秒(B) 19200   データビット(D): 8     パリティ(P): なし               ストップビット(S): 1    フロー制御(F): なし    2.ローダアダプタのディップSW設定 ⇒ 1,2,3,4,5,6 OFF 7,8 ON 即ち ☆パソコンローダモード     ☆データビット: 8   ☆パリティビット有無: 無           ☆パリティビット奇偶: 奇数  ☆ボーレート: 19200    

  • RS232CとRS422の接続について

    シュナイダー製タッチパネルGP4000のCOM2ポート(RS422)と安川電機製PLC GL60のIF60通信カード(RS232C)を接続し、PLCの内容をタッチパネルに表示したいと考えています。タッチパネルのCOM1ポートは既に使用済。ケーブル距離は20m程度。 いろいろなRS232C-RS422変換コネクタなどが販売されていますが、RS422のケーブルは規格化されていない様で、どのようなケーブル・コネクタ・変換器を使用して接続すれば良いのかわからず困っています。 すみません、詳しい方、ご教授ください!

  • 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の問題では 無い気がしますが どなたか 解決方法を ご存じの方 いらっしゃいませんでしょうか どうぞ 御指南願います。

  • RS232C通信ポート(COM1)が開かない

    カテゴリー <その他>でアップした質問を <Windows2000、NT>のカテゴリーに 再アップさせていただきます。 Windows2000をシステムとする、旧型 IBM Think Padを使って通信ポート(9ピン)に、RS232C クロスケーブルで、 富士電機プロコン(シーケンサー)と接続し、ONLINEにしたいのですが、<通信ポートをオープンできません>というメッセージが表示され、接続されません。 それで、Windowsのデバイスマネイジャーで、パソコン側の通信ポート(COM1)のプロバティをみると、<このデバイスは正常に作動しています。>とあります。 富士電機のサポートセンターに状況を問い合わせた所、パソコン本体側にエラーと思われるとの回答でした。 通信ポートのパラメータが変わったのか、それとも別の理由なのか、復旧の仕方がわかりません。 どなたさまかご教示くだされたく、お願い申しあげます。 <ThikPadパソコン使用状態> システム : Windows 2000 Service Pack4 ウィルスチェッカー:ESET Smart Security 4 インストール。 インターネットはドコモFomaのデータ通信アダプタを、USBに接続してアクセス。 RS232C通信ポートは、富士プロコンのみで使用しています。 <プロコン PLC 通信設定>  1.アプリケーションソフトの<通信ポート設定>       PCとのポート(P): COM 1     ポートの設定(M): ビット/秒(B) 19200  データビット(D): 8    パリティ(P): なし  ストップビット(S): 1   フロー制御(F): なし    2.ローダアダプタのディップSW設定 ⇒ 1,2,3,4,5,6 OFF 7,8 ON      即ち ☆パソコンローダモード     ☆データビット: 8   ☆パリティビット有無: 無       ☆パリティビット奇偶: 奇数  ☆ボーレート: 19200 <ケーブル>   パソコン~ローダアダプタ : 9ピン、25ピン RS232Cクロスケーブル、                   富士からは市販クロスケーブル使用のこととされ、通信データの接続                   ピン番号のみ公開。    ローダアダプタ~PLC  : 富士電機提供 専用ケーブル <PLCアプリ 使い勝手>   2ヶ月前までは、今回不具合のパソコン、RS232Cケーブル接続で、問題なくPLCとオンラインにな  っていた。