Donnerstag, 20. Oktober 2016

Serielle Schnittstelle für Messgeräte mit Visual Basic programmieren


Serielle Schnittstelle für Messgeräte mit Visual Basic programmieren

Author D. Selzer-McKenzie

Youtube-Video: https://youtu.be/yn8osin2PoQ

Heute zeige ich Ihnen, wie Sie ein Serielle Schnittstelle für

Externe Messgerät mit Visual Basic programmieren, um z.B. technische Messungen usw. vorzunehmen.

Der SourceCode ist hier im Video vergrössert abgefilmt und Sie

Müssten ggf. das Video anhalten, um den Text abschreiben zu können.

Aber der SourceCode ist auch im Forum


zu finden.

 

Der SourceCode:

Imports System.IO.Ports

 

Public Class FormSerielleSchnittstellen

 

    Private Sub FormSerielleSchnittstellen_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        SerialPort1.Open()

    End Sub

 

    Private Sub SerialPort1_DataReceived(sender As Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

        Try

            Dim count As Integer = SerialPort1.BytesToRead   ' Anzahl Bytes im Empfangspuffer des Ports

            ' bestimmte Anzahl von Bytes aus dem Empfangspuffer in ein Byte-Array einlesen:

            Dim ba() As Byte

            ReDim ba(count - 1)

            SerialPort1.Read(ba, 0, count)

            ' Aufsplitten des Byte-Arrays in zwei Strings (Messwert und Messbereich):

            Dim data1 As String = System.Text.Encoding.Default.GetString(ba, 0, 5)      ' Messwert

            Dim data2 As String = System.Text.Encoding.Default.GetString(ba, 6, 2)      ' Messbereich

 

            LabelAusgabeFenster.Invoke(displayDataPtr, data1, data2)       ' Umschaltung auf UI-Thread

 

        Catch

        End Try

    End Sub

 

    Private Delegate Sub displayDataDlg(dat1 As String, dat2 As String)

    Private displayDataPtr As displayDataDlg = AddressOf displayData

 

    ' Messbereichsabhängige Umrechnung und Anzeige:

    Private Sub displayData(d1 As String, d2 As String)

        ' Messwert in Gleitkommazahl parsen:

        Dim f As Single = Single.Parse(d1)

        Select Case d2

            Case "11" : LabelAusgabeFenster.Text = f / 1000 & " V"

            Case "21" : LabelAusgabeFenster.Text = f / 100 & " V"

            Case "41" : LabelAusgabeFenster.Text = f / 10 & " mV"

            Case Else : LabelAusgabeFenster.Text = String.Empty

        End Select

    End Sub

 

    Private Sub ButtonMessungenBeenden_Click(sender As Object, e As EventArgs) Handles ButtonMessungenBeenden.Click

        SerialPort1.Close()

        Me.Close()

    End Sub

End Class




Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.