TwinCat & LabVIEW(Ads.Net) - W/R Problem mit Array innerhalb ein Structur

kech1971

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

ich versuche gerade Daten zwischen LabVIEW und TwinCAT auszutauschen.

Ich verwende dazu Ads.net und das Beckhoff Beispiel code (sample07) - 'Lesen und Schreiben von SPS Variablen eines beliebigen Typs (ReadAny, WriteAny)'
http://infosys.beckhoff.com/index.p...labview/html/tcatadsnet_setup_lv.htm&id=11886



Alle Variable/Datentypen vor die complexStruct1.dintArr funktionieren OK!!!

Aber ab
dintArr:
- ich schreibe '65536' ins index-0 --> sehen in TwinCat Program ein Wert '1'....
- wann ich die BoolVal, (nach dei dintArray ins
Complexstruct) - schrieben mit Bool wert 1 --> sehen in TwinCat Program dintArr[3] Wert '65536'

Ich verstehe diese Offset nicht?
Oder es scheint fast als ob eine dataconversion stattfindet?!? Warum ist die UINT wertebereich present?

Dachte die Datentypen sind kompatible - LabVIEW I32 und TwinCAT dint...

Kann jemanden mich bitte hilfen...

Gruß

kech
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Hack,

Sorry das hat mich nicht weiter geholfen.

Mehr zu meine Installation:
Ich nutzte TwinCAT3 & MS Visual Studio 2013) als Local PC(mit EK110 EtherCat-Koppler)
LabVIEW v15.0.1
dll --> C:\TwinCAT\AdsApi\.NET\v4.0.30319

Die erste 4 bytes of dintArr[0] - bis wert 65535 sind geschluckt.
Diese Offset ist wahrscheinlich die erste 4 bytes von die LabVIEW Datentype Array - was die Nr. von Element vermittelt..

Ich weiße nicht was genau ich anpassen muss, oder konkrete wie ich solche Padding Bytes handel?

Ins TwinCAT das Struct is wie folgt definiert.

TYPE TComplexStruct :
STRUCT
intVal : INT:=1200;
dintArr: ARRAY[0..3] OF DINT:=[ 0,1,2,3];
boolVal: BOOL := FALSE;
byteVal: BYTE:=10;
stringVal : STRING(5) := 'hallo';
simpleStruct1: TSimpleStruct;
END_STRUCT
END_TYPE
 
Zurück
Oben