C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

複数のシリアルポートを使用した制御について

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■95823 / inTopicNo.1)  複数のシリアルポートを使用した制御について
  
□投稿者/ いろりん (1回)-(2020/09/30(Wed) 10:47:53)

分類:[C#] 

複数のシリアルポートを使用した制御について

機器1と機器2を制御し、それぞれの機器にコマンドを送る場合、
ポートの切り替えはどうすればいいのでしょうか?
現在はserialPortコンポーネントを2つ作ってそれぞれcomを指定して接続しています。
出来れば参考コードを教えて貰えると助かります。

private void button1_Click(object sender, EventArgs e)
{
com1ポートの機器1への送信コマンド
com2ポートの機器2への送信コマンド
}

ちなみに制御が1台なら問題なく動作出来ています。
引用返信 編集キー/
■95826 / inTopicNo.2)  Re[1]: 複数のシリアルポートを使用した制御について
□投稿者/ 774RR (829回)-(2020/09/30(Wed) 11:41:33)
SerialPort インスタンスを2つ使うで正解だけど、コマンドを送るタイミングはどうなってほしいの?

送信タイミングが1→2の順
機器1 ~~~~||||||~~~~~~~ 
機器2 ~~~~~~~~~~~|||~~~

送信タイミングが1と2で同時
機器1 ~~~~||||||~~~~~~~ 
機器2 ~~~~|||~~~~~~~~~~

標準の SerialPort.Write() は「バッファリングする」とあるので、後者(同時)っぽいんだけど
前者でなきゃならないんならハンドシェイクするルーチンを自前で書かないといけないっス。

# それともこんな細かいところを訊いてるんぢゃなくて SerialPort を2つ用意するってどうすんの?
# という質問なのか?

引用返信 編集キー/
■95827 / inTopicNo.3)  Re[2]: 複数のシリアルポートを使用した制御について
□投稿者/ いろりん (2回)-(2020/09/30(Wed) 13:32:42)
詳しい事がわからないのでコマンドを送るタイミングについては特に考えていませんでした。
単純に
機器1送信⇒機器1受信
機器2送信⇒機器2受信
になると思っていました。
引用返信 編集キー/
■95830 / inTopicNo.4)  Re[3]: 複数のシリアルポートを使用した制御について
□投稿者/ 774RR (830回)-(2020/09/30(Wed) 15:08:52)
機器1だけ、機器2だけ、とってみればその図になるけど
複数のシリアルポートはそれぞれ独立動作可能なのでオイラの書いた下の図になるっス

シリアル送信には 9600bps で1オクテットに約 1msec かかる。
これはパソコンの CPU から見るととてつもなく長い時間なので、
SerialPort.Write は送信データを周辺回路の FIFO に投げるまで(=一瞬)で
実際の送信が終わるのを待たないはず。

で、この動作はあなたにとって都合が、良いの、悪いの、どっち?

あとオイラまだ「真に聞きたいこと」がなんだかわからないんだけど

引用返信 編集キー/
■95833 / inTopicNo.5)  Re[4]: 複数のシリアルポートを使用した制御について
□投稿者/ いろりん (3回)-(2020/09/30(Wed) 15:38:17)
> あとオイラまだ「真に聞きたいこと」がなんだかわからないんだけど

聞きたい事は
com1ポートの機器1への送信コマンド
com2ポートの機器2への送信コマンド
この時にどうすればそれぞれのポートに・・・
すみません。完全に凡ミスです。
774RRさんお手数をおかけして本当に申し訳ありませんでした。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ