Martin Glarner
Level-2
- Beiträge
- 278
- Reaktionspunkte
- 52
-> Hier kostenlos registrieren
Hallo
Ich mache gerade meine ersten Gehversuche mit Libnodave.
Mein Ziel:
Ich möchte alle Werte eines Datenbausteins aus der Steurung lesen und in ein Arrray abspeichern.
Was funktioniert:
Ich kann über IBH-Link und IS
n_TCP einzelne Werte aus der Steuerung lesen.
Was geht nicht:
daveReadByte schreibt die gelesenen Werte nicht direkt in mein Array. (Buffer)
Wer kann mir einen Hinweis geben?
Ist es sinnvoller, wenn ich mit "daveGetU8" Byte für Byte in einer Schleife aus dem internen Buffer lese und in mein Array kopiere?
Besten Dank für euer Hilfe
Ich mache gerade meine ersten Gehversuche mit Libnodave.
Mein Ziel:
Ich möchte alle Werte eines Datenbausteins aus der Steurung lesen und in ein Arrray abspeichern.
Was funktioniert:
Ich kann über IBH-Link und IS

Was geht nicht:
daveReadByte schreibt die gelesenen Werte nicht direkt in mein Array. (Buffer)
Code:
Function DB_lesen_aus_SPS() As Variant
Dim Buffer(19) As Byte
Dim ph, di, dc As Long
Dim res As Integer
Dim v1 As Long
' Verbindungsaufbau funktioniert
res = SPS_Verb_aufbauen(ph, di, dc)
If res = 0 Then
' Bei dieser Variante werden die Werte nicht in den Buffer geschrieben.
res = daveReadBytes(dc, daveDB, 120, 0, 20, Buffer(0))
' Bei dieser Variante wird ein Laufzeitfehler im Excel ausgelöst
rem res = daveReadBytes(dc, daveDB, 120, 0, 20, Buffer)
' Hier wird der Wert richtig in v1 geschrieben
v1 = daveGetS32At(dc, 6)
End If
' Verbindung wird wieder richtig abgebaut
Call SPS_Verb_abbauen(ph, di, dc)
End Function
Wer kann mir einen Hinweis geben?
Ist es sinnvoller, wenn ich mit "daveGetU8" Byte für Byte in einer Schleife aus dem internen Buffer lese und in mein Array kopiere?
Besten Dank für euer Hilfe