Ansteuerung Servoverstärker

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von zn-gong.

    Ansteuerung Servoverstärker

    Hallo,


    ich versuche schon seit einiger Zeit vergebens einen Servoverstärker, für die Steuerung einer Verfahreinheit mittels Visual Basic, anzusteuern.
    Und zwar gibt es für den Servoverstärker im Handbuch eine Tabelle mit ASCII Commands mit denen sich einzelne Fahrbefehle mittels der RS232 Schnittstelle ansteuern lassen.
    Hier mal ein Ausschnitt der Tabelle:


    Das ganze klappt mithilfe von Putty auch einwandfrei, nur mit VB tut sich iwie nichts.
    Mein Code sieht wie folgt aus:

    Quellcode

    1. Imports System.IO
    2. Imports System.IO.Ports
    3. Public Class Form1
    4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. SerialPort1.PortName = "COM3"
    6. SerialPort1.BaudRate = 9600
    7. SerialPort1.DataBits = 8
    8. SerialPort1.Parity = Parity.None
    9. SerialPort1.StopBits = StopBits.One
    10. SerialPort1.Handshake = Handshake.None
    11. SerialPort1.Open()
    12. End Sub
    13. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    14. SerialPort1.Write("MH")
    15. End Sub
    16. End Class
    @dittoheadnullÜblicherweise werden die Befehle mit einem Enter abgeschlossen:

    VB.NET-Quellcode

    1. SerialPort1.WriteLine("MH")
    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!

    dittohead schrieb:

    Folgende Variante Funktioniert schonmal nicht
    LOL
    Gib Deinem Projekt zunächst Option Strict On.
    Sieh Dir bitte Deinen ursprünglichen Code und meinen Code an und vergleiche dann Deinen mit meinem Code.
    Klick mal auf WriteLine und drück F1 (= Hilfe).
    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!
    Sorry hab ich überlesen, aber bringt leider auch nichts :(
    Hier nochmal mein code

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.IO
    3. Imports System.IO.Ports
    4. Public Class Form1
    5. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    6. SerialPort1.PortName = "COM3"
    7. SerialPort1.BaudRate = 9600
    8. SerialPort1.DataBits = 8
    9. SerialPort1.Parity = Parity.None
    10. SerialPort1.StopBits = StopBits.One
    11. SerialPort1.Handshake = Handshake.None
    12. SerialPort1.Open()
    13. End Sub
    14. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    15. SerialPort1.WriteLine("MH")
    16. End Sub
    17. End Class


    Edit: Okay habe das Problem gelöst es reicht Chr(13) anzufügen


    VB.NET-Quellcode

    1. SerialPort1.Write("MH" & Chr(13))


    Danke für den Denkanstoß :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dittohead“ ()

    dittohead schrieb:

    habe das Problem gelöst
    Das geht so:

    VB.NET-Quellcode

    1. SerialPort1.NewLine = vbCr
    2. SerialPort1.Open()
    3. ' ...
    4. SerialPort1.WriteLine("MH")
    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!
    Selbstes Problem besteht immer noch bei meinen Adruino. Werde auch ma mit Char Array Probieren. Vielen danck, ähre ohne euch nicht drauf gekommen.

    LG, Herbrich