USB - (Serielle) Relaiskarte ansteuern

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    USB - (Serielle) Relaiskarte ansteuern

    Hallo,

    ich versuche ein Relaisboard mit 4 Relais anzusteuern.
    Das erste Relais schaltet, die anderen nicht...
    Mit einem Programm, was bei der Relaiskarte bei liegt, kann man alle Relais einzeln bedienen.

    In der Beschreibung steht:
    Communication Parameter: 8 Data, 1 Stop, No Parity - Baud rate: 9600 <- soweit ok
    Commands: FIRST canal commands: OFF command: FF 01 00 (HEX) or 255 1 0 (DEC) - ON commands: ff 01 01 (HEX) or 255 1 1 (DEC)
    Commands: SECOND canal commands: OFF command: FF 02 00 (HEX) or 255 2 0 (DEC) - ON commands: ff 02 01 (HEX) or 255 2 1 (DEC)
    Commands: THIRD canal commands: OFF command: FF 03 00 (HEX) or 255 3 0 (DEC) - ON commands: ff 03 01 (HEX) or 255 3 1 (DEC)
    Commands: FOURTH canal commands: OFF command: FF 04 00 (HEX) or 255 4 0 (DEC) - ON commands: ff 04 01 (HEX) or 255 4 1 (DEC)



    Ich habe nun 2 Stunden getestet und gelesen/gegoogelt. Ich bekomme einfach hin.




    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim a As Boolean = False
    3. Dim b As Boolean = False
    4. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. SerialPort1.Open()
    6. End Sub
    7. Private Sub form1_formClosing() Handles Me.FormClosing
    8. SerialPort1.Close()
    9. End Sub
    10. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    11. If a Then
    12. SerialPort1.Write(255)
    13. SerialPort1.Write(1)
    14. SerialPort1.Write(0)
    15. Else
    16. SerialPort1.Write(255)
    17. SerialPort1.Write(1)
    18. SerialPort1.Write(1)
    19. End If
    20. a = Not a
    21. End Sub
    22. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    23. If b Then
    24. SerialPort1.Write(255)
    25. SerialPort1.Write(3)
    26. SerialPort1.Write(0)
    27. Else
    28. SerialPort1.Write(255)
    29. SerialPort1.Write(3)
    30. SerialPort1.Write(1)
    31. End If
    32. b = Not b
    33. End Sub
    34. End Class


    Ich habe es auch schon mit WriteLine und dann das Kommando in einer "Sendung" versucht zu übertragen...
    Ich bekomme nur das Erste Relais an.

    Hat jemand Rat?

    Gruß TommiB
    Um was für eine Relaiskarte handelt es sich denn?

    Ich hatte so ein Problem mit einer 2-er Relaiskarte, welches ich auch lösen konnte: Steuerbefehle für "IO-Warrior" zum Aktivieren von Relais in USB-Relaiskarte (siehe letzter Post).
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    TommiB schrieb:

    getestet
    Du sendest 3 Bytes als Befehl.
    Kann es sein, dass da noch ein Ende-Zeichen an jeden Befehl dran gehört?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Eierlein schrieb:

    Standard ist ASCII Nur 7-Bit
    Da werden Bytes übertragen, die wissen nichts von Encoding.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Manawyrm schrieb:

    mit dem Encoding
    hat das bei mir ganz prima hingehauen, die hatten sogar beim Lesen und Schreiben verschiedene Zeilenenden. :rolleyes:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!