1

このRS232cコマンドの送信は初めてです。これは私のヤマハA/VRX-A2000のドキュメントにあるものです。

PWR
  [PUT Command] 
     @MAIN:PWR=Parameter
  [GET Command]
     @MAIN:PWR=?
        Operating & retrieving Power state of Main Zone
        Initial Auto Feedback is Available
  [Parameters]
        Standby
          PUT: turining its state to Standby / GET: indicating Standby status.
        On
          PUT: turining its state to On / GET: indicating On status.
        On/Standby
          PUT Only: toggling its status between On/Standby

MSCommコントロールを介してそのようなコマンドを送信する方法について少し混乱しています。

MSComm.CommPort = 2
MSComm.Settings = "9600,n,8,1"
MSComm.PortOpen = True

If Not MSComm.PortOpen Then
    MsgBox "not opened"
Else
    MSComm.Output = "@MAIN:PWR=On" & Chr(13)

    Do While MSComm.InBufferCount > 0
         Text1.Text = Text1.Text & MSComm.Input
    Loop
End If

それは正しいでしょうか?

デビッド

4

2 に答える 2

3

Do While のセットアップは実際にはまったく正しくありませんが、コードは概念的には少し正しいように見えます。コーディング例については、http://support.microsoft.com/kb/194922を参照してください。(ただし、".Handshaking = 2 - comRTS" の部分は ".Handshaking = 2" にする必要があります) イベントを使用することは、RS232 通信へのより信頼性の高い方法です。

詳細なガイダンスについては、 http://www.vbrad.com/article.aspx?id=37を参照してください。

PC にハイパーターミナル (またはその他の TTY プログラム) がある場合は、それを使用してヤマハとの手動通信を試みます。うまくいけば、あなたのユーザーマニュアルには、あなたが試すことができるいくつかの例があります. 他のアイデアについては、「hyperterminal rs232」で Google。http://www.connectworld.net/interface-troubleshooting.htmlなど。手動ルートに進むことで、少なくとも PC を Yamaha と通信できることが確認され、コードの書き方を考えるのに役立ちます。

( http://www.windowsreference.com/windows-vista/alternatives-to-hyperterminal-in-vista/など、他の TTY プログラム用の Google の「ハイパーターミナル代替ウィンドウ」)

于 2011-05-17T19:13:19.847 に答える
2

コードは健全ですが、小さな欠陥があります。このコードに注意してください:

MSComm.Output = "@MAIN:PWR=On" & Chr(13)

Do While MSComm.InBufferCount > 0
     Text1.Text = Text1.Text & MSComm.Input
Loop

いくつかのデータを送信すると、すぐに応答が表示されることを期待します。現時点では読み取るものがないため、コードはDoループに入りません。

したがって、少し休止した後で.InBufferCountを確認するか、別のアプローチを採用してください。私は通常、タイマーに200ミリ秒ごとにポートをチェックさせます(緊急度によって異なります)。OnCommイベントに応答することもできますが、通過するデータが多すぎる場合、このイベントはCPU使用率を100%にラチェットすることが知られています。少量のデータセットを処理するように思われるので、どちらのアプローチでも問題ないはずです。

于 2011-05-17T19:20:57.507 に答える