String von C# in Beckhoff schreiben

Novus

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

ich würde gerne einen String von meinem C# Programm in die SPS schreiben lassen, bei Bool und Int funktioniert das, allerdings scheint das mit dem String nicht so einfach zu sein...

Code:
TcAdsClient TcClient = new TcAdsClient();
            TcClient.Connect("5.17.58.76.1.1", 801);
            int hStatusAnzeige;
            hStatusAnzeige = TcClient.CreateVariableHandle(".StatusAnzeige");
            TcClient.WriteAny(hStatusAnzeige, (string )(Text));
            TcClient.DeleteVariableHandle(hStatusAnzeige);
            TcClient.Dispose();

beim Ausführen bekomm ich immer folgenden Fehler: Use overload WriteAny(uint indexGroup, uint indexOffset, object value, int characters)) for strings.

Hab da auch bei Beckhoff was gefunden:

Code:
public [URL="http://msdn.microsoft.com/en-us/library/void.aspx"]void[/URL] WriteAny(
[URL="http://msdn.microsoft.com/en-us/library/int.aspx"]int[/URL][I]variableHandle[/I],
[URL="http://msdn.microsoft.com/en-us/library/object.aspx"]object[/URL][I]value[/I],
[URL="http://msdn.microsoft.com/en-us/library/int[].aspx"]int[][/URL][I]args[/I]
);

Allerdings bekomm ich es trotzdem nicht hin, da ich nicht weiß, wie ich das mit meinem Code verbinden kann.
Hab noch nicht allzuviel Erfahrung im Programmieren, da ich das noch nicht lange mache.

Hoffentlich kann mir jemand helfen.

Mfg
Novus
 
Da fehlen bei Dir noch ein paar Zeilen Code, hier ist ein Beispiel in C# dazu:
http://infosys.beckhoff.com/index.p...le_net/html/twincat.ads.sample04.htm&id=18432

Hier nur die Schreib Routine aus dem Beispiel, damit sollte es klappen:

Code:
//length of the stream = length of string + 1
AdsStream adsStream = new AdsStream(textBox1.Text.Length+1);

BinaryWriter writer = new BinaryWriter(adsStream, System.Text.Encoding.ASCII); 

writer.Write(textBox1.Text.ToCharArray());

//add terminating zero
writer.Write('\0');

adsClient.Write(hStatusAnzeige,adsStream);
 
Zurück
Oben