變頻器通訊 用VB做指令傳輸

VB程式碼

mscomm1.output=????

?是我的問題

我要傳輸 Fn_17 (控制指令)

通訊規格為

: / : / AD(H) / AD(L) / ? / RI / COMMAND CONTENTS / SC(H) / SC(L) / CR

ASCII code

: 3A

AD(H) AD(L) 01(控制站號)

? 3F (Indicates a command line)

RI 不明

SC(L) SC(H) sumcheck(變頻器識別確認)

CR 0D (輸入)

以上的字串 我要修改為程式碼VB

要如何傳輸?

mscomm1.output="3A+3A+01+不明+chr(67)+0D"

是這個意思嘛? 若要在每個3A加上delay的指令

要如何打程式碼呢???

台安(東元)變頻器 N2系列

非常感謝~

Update:

你好~ 程式是可以作動的RS232回傳::?

但是變頻器通訊似乎只看得懂 16進位'

這樣不會有問題嗎?

我只能用10進位來做傳輸?

方便的話可以幫我看看通訊手冊嗎?

控制站號 和 RI 和 變頻器識別確認, 我猜想應該是其他接點, 不'在通訊線路裡, 單純使用 Hight Low 控制

這我不是很了解 是H L控制沒錯 但似乎也是在通訊字串裡輸出

麻煩你囉 手冊我待會會寄至你的信箱~ 謝謝你的回答^^

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    試試這個看會不會動

    ': 3A 是 16 進制, 先化成十進制

    '3A(H) = 3*16 + 10 = 58(Dec), 3F(H) = 63(Dec)

    mscomm1.output = chr(58) '一次輸入一個, 不能一起丟

    delay(0.1)

    mscomm1.output = chr(58)

    mscomm1.output = chr(63)

    '控制站號 和 RI 和 變頻器識別確認, 我猜想應該是其他接點, 不'在通訊線路裡, 單純使用 Hight Low 控制

    '0D(H) = 13(Dec)

    mscomm1.output = chr(13)

    Public Sub Delay(Optional ByVal HowLong As Single)

    Dim OldTime As Single, Continue As Single

    If HowLong = 0 Then

    Exit Sub

    Else

    If HowLong < 0.01 Then

    MsgBox "延遲時間無法小於 0.01 秒", vbOKOnly, "參數錯誤"

    Exit Sub

    End If

    End If

    OldTime = Timer

    Do While Continue < HowLong

    Continue = Timer - OldTime

    Loop

    End Sub

    2009-01-09 22:24:48 補充:

    VB 無論是輸出幾進制的字元, 對晶片來說, 一樣是一種 H L 的變化,

    在晶片看來, 3A(H) = 0011 1010, 依序以 H L 接收,

    所以不管你丟幾進制的東西, 在晶片看來都是一樣的.

    另外, 我沒看見你傳的檔案. 我的 mail address : superzemier@yahoo.com.tw

    2009-01-10 17:01:50 補充:

    我寄檔案給你了, 你看一下.

    我這邊沒有實物, 也不知道變頻器是什麼, 我只能靠我的想像去模擬.

    試試看檔案可以執行嗎, 有問題再問.

Still have questions? Get your answers by asking now.