Daten wandeln und archivieren

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von dannyli.

    Daten wandeln und archivieren

    VB Anfäger sucht Hilfe:

    Hallo zusammen

    ich habe die Aufgabe eine software zu schreiben die mir Daten von einer Siemens S7 SPS abholt und diese in eine SQL DB archiviert. Dieverbindung zur Steuerung stelle ich mit Libnodave her (ist eine Art Kommunikationstool bzw .dll). Ich abe mein programm jetzt soweit das ich Werte aus einem Datenbaustein der Siemenssteuerung abholen zyklisch abholen kann. Nun komme ich einfach nicht weiter ich dekomme meine daten als dezimalzahl angezeigt will sie aber in char umwandeln und danach gleich in eine sql schreiben. Kann mir vieleicht jemand dabei helfen ?

    Gruss dannyli

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

    Mach mal aus der roten Schrift ein "Edit" oder so und nimm das rot raus. Ich glaub, das wird hier nicht so gern gesehn. (Admin-Farbe)
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Wo ist denn das Problem?

    Du bekommst von der Schnittstelle den Wert: 65
    Du möchtest:
    - das als "65" speichern
    - das als "A" speichern
    - das als "41" speichern
    - das als "QQ==" speichern

    ?

    ToString(), Chr(), ToString("X"), ToBase64String()
    hallo picoflop

    ich will diesen Wert als "A" anzeigen lassen also convert to string. Mein problem ist das ich mich nicht gerade sehr gut mit Hochsprachen auskenne mache das erst seit einer Woche. Ich hab im Moment keine Ahnung wie ich jetzt weiter an die Sache ran gehen soll . Ich beschreibe noch mal kurz was ich vor habe:
    Ich Lese 144 Bytes aus dem DB der SPS . Diese bekomme ich in meinem Programm als dec Zahlenwerte angezeigt. etwa so

    1 97
    2 98
    3 99
    .
    .
    .
    das entspricht ja nun abc. soweit alles klar. will nun diese werte beliebig zu strings zusammensetzen damit ich sie dann in eine sql db schreiben kann das ganze soll zyklisch geschehen also werte aus SPS in DB ... DB auslesen in sql.....werte aus SPS in DB ... DB auslesen in sql.....usw....

    weiss nicht wie ich jetzt weiter machen soll hier mal die stellle die ich gemacht habe. 144Bytes werden geholt zylklisch gelesen und angezeigt.

    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

    Dim buf(144) As Byte


    If fds.rfd > 0 Then
    res = dc.readManyBytes(libnodave.daveDB, 1, 0, 144, buf)

    End If

    Dim counter As Integer


    res = dc.readManyBytes(libnodave.daveDB, 1, 0, 144, buf)
    For counter = 0 To 144
    ListBox1.Items.Add(counter & " " & daveGetU8from(buf(counter)))

    Next




    End Sub

    Hoffe mal das macht mein problem etwas klarer...

    Gruss dannyli
    Wenn du eh schon alles in nem Array hast und WENN das alles im Prinzip "ASCII" ist, dann ist's ja simpel:

    VB.NET-Quellcode

    1. Dim b() As Byte = New Byte() {65, 66, 67}
    2. Dim s As String = System.Text.Encoding.ASCII.GetString(b)
    3. Debug.Print(s)

    output: ABC
    hallo picoflop

    Danke erstmal für deine Hilfe das mit dem übersetzen geht. Die werte im array ändern sich aber ständig das programm soll praktisch erkennen in byte x steht dec wert sowieso jetzt wandeln in ascii. mit dem code von dir wandel ich ja nur die werte die ich in die klammer geschieben habe