天使と悪魔選手権

お世話になっております。

今現在VB6.0でMSCommを用いて通信系のプログラムを作成中です。
1台の重量計から、PCのCOM1にデータをと取り込んでいます。

取り込んだデータを解析するために、AというプログラムとBというプログラムを実行し、データがCOM1に受信されたら両方のプログラムにデータを受信させたいです。

しかし、COM1にデータが受信されるとどうしもAというプログラム側でのみ受信されてしまいます。プログラム的に不可能ではないと思うのですが。

そこで、重量計側のポートとCOM1,COM2をパラで繋いで2つに同じデータを受信させたいと考えております。1つのポートに対して、1つのPCを稼動させたいのです。
もし、このようなケーブルを知っておられる方いらっしゃいましたら、宜しくお願い致します。

A 回答 (2件)

手っ取り早いのはWinsockを使って内部でソケット通信をすることですかね。


Aのプログラムで新たにデータを受信したらBのプログラムへソケットを使って渡せばいいと思いますよ。
    • good
    • 0

RS-232Cは1対1での使用が基本です。


RS422やRS485は並列接続が可能ですが、通信はあくまで1対1です。

VBで同時に複数の通信をする事自体は可能ですが、
1つの通信を複数に分ける事は出来ません。
通信が確立した時点のプログラムで受信されます。

さて、AとBのプログラムは、1台のPCで実行されているのでしょうか?
だとしたら、Aで受信したデータをAのプログラムからBのプログラムへ渡すほうが確実な気がしますが。

分岐ケーブルも存在しますが、保証はありません。
電気的には抵抗も半分程度になりますし、距離も短くなります。
検索すれば色々出てきます。

通信機器メーカには、分配機も存在します。
システムサコム
http://www.sacom.co.jp/
1入力2出力分配器
SS-232C-NPSK2
(通信は1方向のみですので注意)

予算などの問題もあるかと思いますが、無理矢理でトラブルの元を作るよりは、
現状のプログラムを修正して対処出来るか考慮された方が良いと思います。

この回答への補足

有難うございます。1台のPCにて2つのプログラムを実行しております。

例えば、Aで受信したら、テキストファイルに書き込む。Bではタイマーで5秒間隔ぐらいで、テキストファイルを読み出しをかける。こうすればできるとは思います。

理想的には、Aで新たなデータ受信したら、関数の引数のように値渡しをできれば良いのですが、AとBのプログラムは独立しています。そのような場合でも値渡しは可能なようにプログラムは書き直せるのでしょうか?もし、ご存知でした教えて頂けませんか?

補足日時:2008/06/20 20:30
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!