Libnodave -- DB

softwareheini

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

sorry das ich das Thema zum Xten mal aufgreife.
Aber ich komme einfach nicht weiter.

Versuche gerade aus einer 315 2DP über Ethernet
Daten nach Excel zum schreiben.

Bis jetzt kann ich die CPU starten, stoppen und
den OB1 auslesen
aber ich schaff es einfach nicht
den DB12 auszulesen (Beispiel von Libnodave)

Code:
' read some values from FD0,FD4,FD8,FD12 (MD0,MD4,MD8,MD12 in german notation)
'  to read from data block 12, you would need to write:
'  daveReadBytes(dc, daveDB, 12, 0, 16, 0)
'
Sub readFromPLC()
Cells(1, 2) = "Testing PLC read"
Dim ph As Long, di As Long, dc As Long
res = initialize(ph, di, dc)
If res = 0 Then
    res2 = daveReadBytes(dc, daveDB, 12, 0, 16, 0)
   
    'res2 = daveReadBytes(dc, daveFlags, 0, 0, 16, 0) 'Orginal
    Cells(5, 1) = "result from readBytes:"
    Cells(5, 2) = res2
    If res2 = 0 Then
        v1 = daveGetS32(dc)
        Cells(7, 1) = "MD0(DINT):"
        Cells(7, 2) = v1
        v2 = daveGetS32(dc)
        Cells(8, 1) = "MD4(DINT):"
        Cells(8, 2) = v2
        v3 = daveGetS32(dc)
        Cells(9, 1) = "MD8(DINT):"
        Cells(9, 2) = v3
        v4 = daveGetFloat(dc)
        Cells(10, 1) = "MD12(REAL):"
        Cells(10, 2) = v4
        v5 = daveGetFloatAt(dc, 12)
    Else
        e$ = daveStrError(res)
        Cells(9, 4) = "error:"
        Cells(9, 5) = e$
    End If
End If
Call cleanUp(ph, di, dc)
End Sub
Kann mir evtl jemand nen Tipp geben was ich falsch mache?

Vielen Dank schon mal.
 
Ist die letzte 0 in DaveReadBytes wirklich korrekt? Da sollte der Buffer hin oder wenn es den nicht gibt, dann ein nil oder ein NULL. Kann sein das in Excel 0 dort stehen muß, habs noch nie mit Excel probiert.

Edit: Hm, habs mal nachgelesen, sollte auch mit 0 gehen, laut Zottel.
Schau mal hier, vielleicht bringt dich das weiter: http://www.sps-forum.de/showthread.php?t=5698&highlight=DaveReadBytes
 
Zuletzt bearbeitet:
Anscheinend ist die 0 korreckt.
Wenn ich sie lösche zeigt er mir nen Kompilerfehler an.

Einen Wert (MD0) bekomme ich..
eigentlich solte im MD0 100 stehen.

In Excel steht aber 25427968:confused:
und die anderen 3 Werte (MD4 bis MD12) sind 0.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anscheinend ist die 0 korreckt.
Wenn ich sie lösche zeigt er mir nen Kompilerfehler an.

Einen Wert (MD0) bekomme ich..
eigentlich solte im MD0 100 stehen.

In Excel steht aber 25427968:confused:
und die anderen 3 Werte (MD4 bis MD12) sind 0.

Das ist aber nicht MD0, sondern DB12.DBD0, aber ich denke, das ist dir klar, oder? Ist ja nur eine Bezeichungsfrage, das von dir geutzte Beispiel griff ja auf daveFlags, also Merker zu. Ich geh also mal davon aus, daß du im DB12 mind. 4 DINT angelegt hast.
 
Hallo,

Ja so ist es. DB12 mit 3 mal DINT und einmal
Real.

Ich habe den Zugriff auf Flags auskommentiert und dafür daveDB genommen.

MD hab ich nur schnell auls Bezeichner hingekritzelt.

Kann es sein, dass es vielleicht was mit meiner Schnittstelle zu tun hat?

Wenn ja, dann versteh ich nur nicht warum ich
die CPU starten und stoppen kann und den OB1 auslesen kann:-?
 
Hallo Jungs,

komisch aber wahr...
Hab heute früh die CPU getauscht und jetzt funktioniert
es :) :confused: :confused:

Kann es was mit dem Firmwarestand zu tun haben?

Danke an Ralle!!!
 
Zurück
Oben