MSCommで8Bitデータを機器に送信するには?

解決


Do素人  2002-11-06 11:08:48  No: 105363  IP: [192.*.*.*]

お初です。VB歴1週間の超ド素人です。
機器に、エクセルに書かれたE1からE1024までのバイナリーデータを順に流したいのですが、それ以前の問題で、1バイトも送信出来ません。
過去レスを拝見させて頂いたのですが、アホゥな私にはイマイチ理解できません。

Private Sub cmdOut_Click()
'送信釦クリック時の処理
'バイナリ8Bitデータを一回だけ送信------TEST_Program-------
        Dim sdData As Byte
        sdData = Sheets(2).Cells(1, 5).Value
        msSerial.Output = sdData      <----エラーになる行
End Sub

E1セルには2が書き込まれています。ポート設定、通信設定等の初期設定はHelpの通りに設定したつもりです。
どうか、ご教授願えませんでしょうか。

編集 削除
多分こんな感じ  2002-11-06 16:28:41  No: 105364  IP: [192.*.*.*]

mscomm.outputはstring型で渡してあげなければダメなはずです。

byte配列に入れてあげてばどうでしょうか?

'送信釦クリック時の処理
Private Sub cmdOut_Click()
        Dim sdData(0) As Byte
        sdData(0) = "&H" + hex(Sheets(2).Cells(1, 5).Value)
        msSerial.Output = sdData
End Sub

とりあえずこんな感じかしらん?

編集 削除
Do素人  2002-11-06 18:15:23  No: 105365  IP: [192.*.*.*]

ありがとうございます!
動きましたっ。

msSerial.Output=sdDataの所が疑問なのですが、
宣言で、sdData(0)はバイトデータとしましょう、っと定義しましたよね。
そして、sdData(0)に値を代入。
そうすると、送信するのはsdData(0)なのでわ…っと思うのです。が、このように書き換えると、元の木阿弥でした。
sdData(0)とsdDataは何が違うのでしょうか。
お願い致します。

編集 削除
Do素人  2002-11-07 09:20:02  No: 105366  IP: [192.*.*.*]

"多分こんな感じかな"さん、ありがとうございました。
sdData()とsdDataの件は自己解決しました。

編集 削除
Do素人  2002-11-08 14:19:37  No: 105367  IP: [192.*.*.*]

|

編集 削除