Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 2 von 2

Thema: Libnodave mit VB2005

  1. #1
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich will mit Libnodave Bits aus einer S7-CPU lesen und schreiben. Vorerst teste ich mit Accontrol. Das Schreiben klappt problemlos, das Lesen will nicht funktionieren.

    Der Code fürs Schreiben des M18.0 ist:
    Code:
    Private Sub btnM18_0Einschalten_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnM18_0Einschalten.Click
    Dim buf As Byte
    If res = 0 Then
    buf = 1
    'M18.0 = 18x8+0 = M144
    res = daveWriteBits(dc, daveFlags, 0, 144, 1, buf)
    End If
    End Sub
    Der Code fürs Lesen des M18.0 ist:
    Code:
    Private Sub btnM18_0Lesen_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnM18_0Lesen.Click
    Dim buf As Byte
    If res = 0 Then
    'M18.0 = 18x8+0 = M144
    res = daveReadBits(dc, daveFlags, 0, 144, 1, buf)
    txtM18_0Lesen.Text = buf
    End If
    End Sub
    In der Textbox "txtM18_0Lesen" wird immer eine 0 angezeigt, unabhängig davon, ob der M18.0 den Wert True oder False hat.

    Ich benutze nur die libnodave.dll, ohne die libnodave.net.dll (Wrapper) und habe sämtliche VB6.0-Funktionen und Prozeduren in einen Modul gepackt und alles öffentlich (Public) eingestellt. Später will ich das dann in eine Klasse stecken.

    Ich benutze zum Schreiben:
    Code:
    Public Declare Function daveWriteBits Lib "libnodave.dll" (ByVal dc As Integer, ByVal area As Integer, ByVal areaNumber As Integer, ByVal start As Integer, ByVal numBytes As Integer, ByRef buffer As Byte) As Integer
    und zum Lesen:
    Code:
    Public Declare Function daveReadBits Lib "libnodave.dll" (ByVal dc As Integer, ByVal area As Integer, ByVal areaNumber As Integer, ByVal start As Integer, ByVal numBytes As Integer, ByVal buffer As Byte) As Integer
    Zitieren Zitieren Libnodave mit VB2005  

  2. #2
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    habe meinen Fehler gefunden.
    Der letzte Parameter der daveReadBits-Funktion muss als Zeiger, d.h. mit ByRef und nicht mit ByVal übergeben werden. Dann geht auch das Lesen.

    Earny

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 09.09.2010, 00:27
  2. ÄÖnderungen am libnodave.net.cs File von libnodave
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 12.05.2010, 16:56
  3. Libnodave mit VB2005
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 15.03.2010, 21:48
  4. LibNoDave unter VB.Net ohne libnodave.net.dll
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 09.03.2010, 18:57
  5. Klöckner Moeller PS 306 SUCOM A VB2005
    Von Heti im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 30.09.2008, 21:06

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •