1つのCOMポートに対して複数のアプリケーションで通信するには?

解決


のぶお  2005-04-06 04:44:39  No: 89244  IP: [192.*.*.*]

こんばんは初めて投稿させて頂きます。
Mscommコントロールを使用してシリアル通信プログラムを作成しています。
一箇所から送られてくるデータを同一パソコン内のふたつのアプリケーション
で受信したいのですが一番最初にポートオープンしたアプリケーション以外データが受信できません。
そもそも一対一でしか通信できないのでしょうか?
(パソコンとポートは一対一ですがアプリケーションは一対二)
よろしくお願いします。

編集 削除
ひろ  2005-04-06 09:02:07  No: 89245  IP: [192.*.*.*]

MsCommは排他的にポートを開くので無理です。

何故2つのソフトでポートを開く必要があるのでしょうか。
設計自体がおかしいか特別な事情があるのかのどちらかだと
思いますので、どのような背景があってこのような仕様にし
たいのか理由を明示した方が良い解決案が出ると思います。

とりあえず思いつく物としては

(1)モニタリングする事自体が目的の場合はこの手の物を使いましょう。
  http://www.google.co.jp/search?q=%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%A2%E3%83%8B%E3%82%BF+RS-232C&hl=ja

(2)1番目のソフトが受信を一手に引き受けて、2番目以降の
  ソフトについては1番目のソフトから SendMessage等の別プロセスへ
  データを送る手法を使って受信データを送る

(3)複数のプロセスから同時アクセス可能なストレージを介して
  受信データを共有する(DBとか)

あたりでしょうか。

編集 削除
のぶお  2005-04-07 02:42:45  No: 89246  IP: [192.*.*.*]

早速のご返答ありがとうございます。
目的自体は(1)にありますようにモニタリングが目的です。
2つのソフトでポートを開く理由といいますのは測定機器からデータが送信されてくるのですが専用の受信ソフトが存在します。
業務上その専用ソフトを使用しないという事はできません。(これが無いと受信ができないのではありません。ただ使う決まりになっているだけです)
送られてくるデータを使いたいのですが専用ソフトなので改良する事もできません。
業務上のパソコンですので配線、仕様変更なくできないかと考えていたのでが・・・
ポートが開けない以上(1)のように配線等を変更するしかなさそうですね。
貴重なお時間、ご意見ありがとうございました。

編集 削除
Appy  2005-04-07 09:28:53  No: 89247  IP: [192.*.*.*]

1つの測定機から出力されるRS232Cを複数のソフトで利用するのであれば,RS232CをRS422,RS485などに変換,分岐し(変換機は汎用でいろいろあります),PCに入れる前に分岐した各々をRS232Cに再び変換しなおします。そして,複数のCOMポートで受信しては如何でしょうか?

編集 削除