ADS DLL Byte in Array schreiben

mkersch

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

mittels einer ADS DLL Funktion (in Labview) lese und beschreibe ich ein Array in einer Beckhoff Steuerung (CX9020).

Im Prinzip funktioniert diese Funktion auch ganz gut.

Beim schreiben und lesen des Arrays kann ich leider nur vom Anfang aus eine bestimmte Anzahl lesen oder schreiben.

Ich möchte aber vom Anfang + Index aus eine bestimmte Anzahl Bytes lesen oder schreiben.
Ist dies möglich ?


Im Moment verwende ich zwei DLL Funktionen
- Handl mittels Variablenname lesen (Indexgroup F005).
- Variable schreiben / lesen mittels Handl (Indexgroup F003).


mfg.

mkersch
 
Kannst du das Handle nicht direkt von einem bestimmten Element des Arrays holen?
Also statt hVar = CreateVariableHandle(".ArrayVar"); hVar = CreateVariableHandle(".ArrayVar[10]"); benutzen.
Bei ReadAny dann die länge in den Argumenten entsprechend kürzen.

Wenn das nicht geht kann man auch noch versuchen die IndexGroup und den Offset von einem Element des Arrays über ReadSymbolInfo zu holen und dann die entsprechende Überladung von ReadAny für IndexGroup und IndexOffset zu benutzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die Antwort.

Du hast mir sehr weitergeholfen.

In der Zwischenzeit läuft die Kommunikation.

1. Mittels F007 Infos zum Variablennamen einlesen
Mit der Funktion ReadWrite kann man über den Variablennamen die zugehörige Indexgroup und den Indexoffset lesen
==> Rückgabe - Indexgroup
- Indexoffset
- Laenge

2. Jetzt kann über die Indexgroup /Indexoffset + Offset mit Read oder Write auf jedes Element im Array zugreifen.

mfg.

mkersch
 
Zurück
Oben