Complexe Struktur mit string Arrays per ADS.NET von einer Beckhoffsteuerung lesen und schreiben [closed]

2 weeks ago 16
ARTICLE AD BOX

ich habe ein Problem bei meiner Abfrage an die PLC. Ich kann die Struktur, die ich unten gleich zeigen werde, zwar lesen, doch der Stringarray wird nicht korrekt wiedergegeben. Hier bekomme ich immer Null für jeden einzelen String. Habe schon einiges probiert, aber irgendwie will das nicht funktionieren.
Hier einmal die Struktur der PLC:

TYPE ST_DATABASE_REQUEST : STRUCT sDB_Name :STRING; sUsername:STRING; sPasswort:STRING; sIPServer:STRING; uiPort:UINT; xBusy:BOOL; xDone:BOOL; xError:BOOL; xExecute:BOOL; bIndex:BYTE; asRequest:ARRAY[0..99]OF STRING; END_STRUCT END_TYPE

Hier dann einmal die Struktur im c# Programmteil:

public partial class ADSDatabaseReq { public string sDatabse; public string sUsername; public string sPassword; public string sIPServer; public ushort uiPort; public bool xBusy; public bool xDone; public bool xError; public bool xExecute; public byte bIndex; [MarshalAs(UnmanagedType.ByValArray,SizeConst =100)] public string[] asRequest; }

Und der Programmcode für das Auslesen der Struktur im C# Code.

enter image description here

enter image description here

enter image description here

Vielleicht hat ja jemand eine Lösung parat.

Read Entire Article