- 締切済み
RS232Cで機器制御
C言語で、RS232Cインターフェイスを使って機器を制御したいのですが、こういった経験がないものなので、どういう準備したらいいか、どういう関数を使ったらいいのかといった基本手順を教えてもらえないでしょうか。 勉強するのにいい本なども知りたいです。 数学系の出身なので、C自体は数値計算で使い慣れています。 環境はWindowsXPか2000があります。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- terra5
- ベストアンサー率34% (574/1662)
機器との接続条件やケーブルの結線、どういうタイミングでどのようなデータをやりとりするのかをしっかり把握しておく必要があると思います。 単に通信速度あわせて文字列を送って、文字列を受け取るぐらいなら簡単ですが、 ものによってはかなり特殊なものもあります。 ブレーク信号が必要だったり、RTS,CTSといった信号の自力での制御が必要だったり。 そうなると、自分でWIN32APIでの操作が必要かも。
- MunyaMunya
- ベストアンサー率26% (5/19)
C言語で使用できるRS232Cインターフェイスは下記URLにあります。(無償です)DLファイル内にはサンプルもあり手順なども親切に解説されています。基本的には (1)ポートのopen (2)通信パラメータの設定 (3)ポートへの書出しまたは読込み (4)ポートのclose です。ポートからの入力データや出力データの形式は器機によって異なります。 市販本についてはあまり知りませんが、Webで検索(キー:rs232c)すれば見つかりますよ。
- JaritenCat
- ベストアンサー率37% (122/322)
コンポーネントを使う方法が簡単でしょうが、Win32APIを使う手もありますね。 とりあえず動かすだけなら難しくないと思います。 CreateFileで"COM1"をオープン SetCommStateで通信設定 SetCommTimeoutsでタイムアウト設定 WriteFileかTransmitCommCharで送信 ReadFileで受信 CloseFileで閉じる 実際にはエラー処理などいろいろ必要かと。
お礼
ご回答ありがとうございます。
- teo98
- ベストアンサー率23% (70/303)
WindowのRS232Cの制御では、フリーのコンポーネントを探してくるのが近道です。COMXとか・・・いろいろあります。シェアよりも、フリーの物の方が掲示板等でバグ等の指摘が出易いため使いやすいかもしれません。 本格的に使うためには、他人のコンポーネントではなく、自らAPIを操作する必要があります。 また、LinuxのRS232Cでは、WindowsのRS232Cよりも安心して制御出来るように聞いております。 BASICだと、始めからRS232Cの制御も考慮したコンパイラになっているわけで、安易にプログラム出来ます。ですが、BASICでは、いろいろな意味で限界を感じます。
お礼
ご回答ありがとうございます。
お礼
回答ありがとうございます。DLしましたので、ちょっと読んでみます。 いい忘れたのですが、実はDOS上で動かしたいと思っています。素人はまずDOSかなーと思いまして。