Sonstiges Libnodave mit VisualBasic Daten schreiben

Speedi90

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

nach endlos langer Suche nach einer Lösung muss ich nun doch ein eigenes Thema erstellen.
Ich möchte mit Libnodave und VB eine LOGO 8 steuern. Die Daten aus der LOGO auslesen stellt kein Problem dar, jedoch schaffe ich es nicht Daten in die LOGO zu schreiben.

Hier mein Code:

Code:
    Private Sub btn_einst_lesen1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btn_einst_lesen1.Click
        Dim buf(0) As Byte
        If fds.rfd > 0 Then

            res = dc.readBytes(libnodave.daveDB, 1, 1, 14, buf)
            If res = 0 Then

                txtSollTmpMinLesen1.Text = dc.getU16At(12) & " °C"
                txtSollTmpMaxLesen1.Text = dc.getU16At(10) & " °C"
                txtRampTimerLesen1.Text = dc.getU16At(0) & " s"
                txtRampEinLesen1.Text = dc.getU16At(2) / 100 & " s"
                txtRampAusLesen1.Text = dc.getU16At(4) / 100 & " s"
                txtRampGeschwLesen1.Text = Math.Round(dc.getU16At(8) / 45.4545454545) & " A pro s"

            Else
                MsgBox("Fehler! Verbindung prüfen!", MsgBoxStyle.Information, "Fehler")
            End If
        End If

    End Sub

    Private Sub btn_einst_schreiben1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs)

        Dim RampGeschw As Short

        If fds.rfd > 0 Then

            RampGeschw = txtRampGeschwSchreiben1.Text
            RampGeschw = Math.Round(RampGeschw * 45.4545454545)
            res = dc.writeBytes(libnodave.daveDB, 1, 9, 2, BitConverter.GetBytes(libnodave.daveSwapIed_16(RampGeschw)))

        End If

    End Sub

Der Wert den ich schreiben möchte ist per LOGO Soft Comfort auf VM 9 zugewiesen und hat den Typ Word. Es handelt sich um die Änderungsgeschw. einer analogen Rampe.
Wenn ich jedoch versuche meinen Wert zu schreiben, wird jedoch nicht geändert.

Was mache ich falsch?

Vielen Danke für eure Mithilfe.
 
Hallo Speedi
Ich habe zwar noch nie mit einer Logo Verbindung aufgenommen trotz ein Versuch.
welchen Wert hat "res" nach dem Aufruf?
Mit:
Code:
libnodave.daveStrerror(res)
kann man sich den Fehlercode bei res !=0 anzeigen lassen.

Der Aufruf
Code:
  RampGeschw = txtRampGeschwSchreiben1.Text
ist falsch. Hier übergibst du einem Short einen String.


Noch was allgemeines zu deinem Code
Word != Short
Word = UShort
Int = Short
Grüße Holger
 
Zuletzt bearbeitet:
Zurück
Oben