• 締切済み

RS232C端子に信号を出力させたい

環境は VB6 Learning Edition,WindowsXP です。 RS-232C(2,3,4,5,6,8,20) 何れかのピンに Morse信号を出力したいのですが。 例えば"R" である ・― ・ を次のタイミングで出力させるにはどうすれば良いでしょうか。 0.4秒間-ON,0.4秒間-OFF,1.2秒間-ON,0.4秒間-OFF,0.4秒間-ON

noname#62128
noname#62128

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

『Microsoft Comm Control 6.0』MSCommを使うんですが Learning Editionに付属してしたっけ? プロジェクト > コンポーネントのコントロールタブに Microsoft Comm Control 6.0 がありますか? ここにチェックをつけると 電話とその下にモデムを描いたようなアイコンがツールボックスに追加されます タイマーを準備して これに一定時間過ぎたらOFFまたはONにすると言った記述をします Dim m_bDone as boolean ' myOnTimeは 0.4秒の場合400 1.2秒なら1200 Sub MorseStart(myOnTime as Integer)   m_bDone = false   Timer1.Enabled = false   Timer1.Interval = myOnTime   MSComm1.DTREnable = True   Timer1.Enabled = true   While m_bDone = false     doEvents   End While   MSComm1.DTREnable = FALSE   ' 0.4秒間のOFF   Timer1.Interval = 400   m_bDone = false   Timer1.Enabled = true   While bDone = false     doEvents   End While   Timer1.Enabled = false End Sub Sub Timer1_Timer()   m_bDone = TRUE End Sub ' morse_startを呼ぶ方法   MSComm1.DTREnable = FALSE   MSComm1.Open   MorseStart 400 ' 0.4秒ON - 0.4秒OFF   MorseStart 1200 ' 1.2秒ON - 0.4秒OFF   MorseStart 400 ' 0.4秒ON - 0.4秒OFF   MSComm1.Close といった具合です

noname#62128
質問者

お礼

せっかくVB6でプログラムを考えて下さったのに申し訳ありませんが、VB9(2008)にはMSCommが附属しているので計画変更します。 redfox63さんのプログラムを元に2008用に変えてみたのですがうまくいきませんでした。 いったん閉じて新たに質問しますのでよろしくお願いします。 Public Class Form1 Public m_bDone As Boolean Sub MorseStart(ByVal myOnTime As Integer) m_bDone = False Timer1.Enabled = False Timer1.Interval = myOnTime MSComm1.DTREnable = True Timer1.Enabled = True Do While m_bDone = False My.Application.DoEvents() Loop MSComm1.DTREnable = False ' 0.4秒間のOFF Timer1.Enabled = False Timer1.Interval = 400 m_bDone = False Timer1.Enabled = True Do While m_bDone = False My.Application.DoEvents() Loop Timer1.Enabled = False End Sub Private Sub Btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn.Click ' morse_startを呼ぶ方法 MSComm1.DTREnable = False MorseStart(400) ' 0.4秒ON - 0.4秒OFF MorseStart(1200) ' 1.2秒ON - 0.4秒OFF MorseStart(400) ' 0.4秒ON - 0.4秒OFF End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick m_bDone = True End Sub End Class

noname#62128
質問者

補足

残念です。 Learning Edition には付いていません。Professional Edition 以上になるようです。 2005を買おうと思いますが、2005を買った場合上のプログラムは動作しますでしょうか。

  • miyuyu
  • ベストアンサー率61% (30/49)
回答No.1

こんにちは 面白そうなのでヘルプを調べてみました。 実際の出力は未確認です。 Pin#4:DTRを使ってみるとどうでしょうか DTREnableの説明はこうでした。 // ----- DTREnable を真 (True) に設定すると、Data Terminal Ready ラインは、ポートを開いたときに有効 (オン) に、ポートを閉じたときに無効 (オフ) に設定されます。DTREnable を偽 (False) に設定すると、Data Terminal Ready ラインは常に無効になります。 // ----- ポートのOpen/CloseでOn/Off

noname#62128
質問者

補足

すみませんが、サンプルプログラムを書いて頂けると助かります。

関連するQ&A

  • RS232C端子に信号を出力させたい

    環境は VB9(2008) Express Edition,WindowsXP です。 RS-232C(2,3,4,5,6,8,20) 何れかのピンをプログラムでON-OFF出来るようにしたいのですが。 なお、Visual Basic 2008 は、無料でダウンロードでき、ライセンスも無料で取得できるようです。

  • RS232Cの切替器

    お願いします RS232Cの切替器(ON/OFF器)を探しています RS232Cは信号を出力しかしていません(入出力ではなく) それを遠隔からON/OFF(出力/切)をしたいのですが、そのような装置をご存知ありませんでしょうか? 遠隔からは接点信号でON/OFFしたい(もしくは専用の操作器でもなんでも結構です) よろしくお願いします

  • RS-232C コントローラの製作

    ビデオプロジェクタ(以下VP)の電源ON/OFF等を、「RS-232C」で操作する『基盤』を作成しないといけなくなりました。 動作手順として、 1.ON信号(接点)が入ったら VPへ「電源ON」のコマンドを出力。 2.VPから「電源ON」のステータスが帰ってくるまで 定期的に繰り返す。 3.ON信号(接点)が切れたら VPへ「電源OFF」のコマンドを出力。 4.VPから「ランプ電源OFF」のステータスが帰ってくるまで 定期的に繰り返す。 コマンド出力は 基盤→VP 'C' + 'コマンド1' + 'コマンド2' + CR         VP→基盤 ACK + CR 戻り値は    基盤→VP 'C' + 'R' + '0' + CR        VP→基盤 '戻値1' + '戻値2' + CR です。 当方 シリアル通信、RS-232Cの技術的なことはよくわかりません。 ある程度のロジック回路は組めます。 そこで、 (1)既製品で「RS-232Cコントローラ」のようなものは あるのでしょうか? (2)このようなものを 少ロットで製作(5~10台単位)で   受けてもらえる業者さんは ありますか? (3)(将来は)自分で勉強しようと思いますが、  「Basic-stamp」や「PIC」を使った 通信を学べるいい教材はありますか? (4)そのほか シリアル通信の勉強にタメになるっと 思われる情報もお願い致します。 尚、この質問内容がこのカテゴリでなかったらご指摘ください。

  • Visual Basic2008での自作センサーとのRS232C接続

    現在学校でセンサー(焦電型赤外線センサー)とPCをRS232Cで接続させようと考えています。 センサーからの信号は検知するとHが出力されます。 Visual Basic 2008を使って信号がHになった回数をカウントさせたいのですがどのようなプログラムを組めば良いのでしょうか? また、センサーの出力はRS232Cのどのピンに接続すれば良いのでしょうか、どなたか詳しい方教えてください。

  • RS-232Cって入力?

    PCのことはあまりしりません。 ノートパソコンの外部出力から、RS-232Cがついている、プラズマディスプレイにコードを接続するとPCの画面がディスプレイに映し出されるのでしょうか? ようはPCでなくプラズマディスプレイの大画面で見たいのですが、RS-232Cとはそうゆうものではないのでしょうか? あと、15ピンからRS-232Cのコードってあるのでしょうか?

  • RS232cデーターをエクセルに落とす

    RS232cデーターをエクセルに落とす 始めまして RS232c出力基盤を持つ秤から データーを収集出来ないかと依頼を受け困ってます 当方ソフトにはド素人でして 試作でなるべく安くとの事で 232エクセルロガー というソフトを見つけまして使用を考えています スクリプトの組み方が判りません 判る方お手数ですが指導をお願いできませか ハード的には 1つの製品のロッドが完了したときに 総生産数  NG製品数 OK製品数等が 出力されます 出力される時間は決まってってません  生産が終わり次第出力されます 信号を受け取るスクリプトを組みたいです 信号は1日に大体5~6回出力されます VBとか使えれば、簡単に出来るのでしょうが いかんせ ソフト関係ド素人で エクセルのマクロも組めませんので どうか指導をよろしくお願いいたします

  • Visual Basic6.0でRS232-Cを介して機械を動かす方法を教えてください

    Visual Basic6.0(VB6)で機械(二軸ステージコントローラ)を制御したいのです。 機械側には、「RS232-Cストレートケーブルを使用してください」と書いてあります。 RS232-Cで情報を送信するには、VB6の中のMSCommというコマンドを使えば良いということは分かりました。 ただ不明なのは、RS232-Cには、クロスケーブルとストレートケーブルがあるらしいのですが、その違いがよくわかりません。 ちなみに、パソコン側は9ピンで、機械側は25ピンです。 よろしくお願いします。

  • RS232Cについて

    プログラミング初心者です。 Visual Basic6.0のMScommコントロールで0と1の文字を判別して、mscomm1.outputでon/offの出力信号を送信する方法ってありますか。どなたか御教授願います。

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

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

  • RS-232Cの使い方

    RS-232C(D-Sub9)を使用してスイッチのオン/オフを見たいのですが、 簡単に実現できる方法はございますでしょうか? スイッチの接点だけなので、高価なインターフェース基板など使用したくありませ。ご教授おねがいいたします。

専門家に質問してみよう