# WAGO SSI READPI und WRITEPI - STRING



## fabianfischer (9 Februar 2016)

Hallo Zusammen,

ich möchte per READPI und WRITEPI Variablen vom Typ STRING per JavaScript mit einer WAGO 750-881 austauschen.

Mit Deklarationen vom Typ BOOL, Integer und Co. funktioniert das auch schon einwandfrei.

Einzig der Austausch von STRING Variablen mit fester Größe funktioniert nicht, es werden undefinierte Zeichen ausgegeben.

Hat jemand eine Idee?

Meine Programmierung sieht wie folgt aus:







Wenn ich %s durch %c ersetze wird das erste ASCII Zeichen aus dem STRING korrekt übertragen.

MFG
Fabian Fischer


----------



## excelite (9 Februar 2016)

Hallo,

ich kenn mich mit der Steuerung nicht aus und auch nicht mit der Funktion die du nutzen möchtest. 

Was mich jedoch sehr stutzig macht ist, dass du in der XML Datei zwar direkte Adressen angeben kannst und die Formatierung jedoch nicht was für ein Datentyp es ist. OK durch die Angabe ob es sich um ein Byte oder Wort oder Doppelwort handelt kann man die folgenden Bytes entsprechend Interpretierung und ausgeben. Deshalb funktioniert das auch gut bei den Basistypen Real, Dint. Die Formatierung sieht für mich nach der Standardcodesysformatierung  der Visu aus mit %d, %f,... Was aber aus der Definition deiner XML Datei nicht ersichtlich ist, ist die Länge des Strings. Du gibst an MB110 - und das als String. Woher soll jetzt irgendwer wissen wie lang der String ist. Kann ja ein Byte oder 255 Bytes sein.

Entweder der Syntax in deiner XML Datei erfordert weitere Angaben über die nun einzulesende Länge oder der Stringaustausch ist so nicht möglich.


----------



## fabianfischer (9 Februar 2016)

Hallo excelite,

das ist ja genau mein Problem, ich weiß nicht welches Format bzw. wie ich die Länge vom STRING in der XML Datei angeben kann.

Mit Datentypen fester Größe, wie z. B. INT, REAL und CO. klappt es ja einwandfrei.

MFG
Fabian Fischer


----------



## NieZuSpaet (9 Februar 2016)

Und wenn du den String in freier Länge deklarierst? ...string()


----------



## fabianfischer (9 Februar 2016)

Gleiches Ergebnis.

MFG
Fabian Fischer


----------



## excelite (9 Februar 2016)

Hallo Fabian,

habe etwas geschaut zu diesem Thema. Hier in diesem Forum gibt es ein Paket "WAGO SSI Samples" https://www.symcon.de/forum/threads/8990-Wago-steuerung-per-HTML-und-JavaScript habe das runtergeladen und dort steht:



> Unterstützte Datentypen         Anwendungsbeispiel für die von den SSI-PlugIns unterstützten Datentypen Bit, Byte, Word, DWord und Real.




Ich würde also sagen String klappt nicht. Ist zumindest hier nicht aufgeführt.


----------



## fabianfischer (10 Februar 2016)

Laut WAGO Support können mit READPI und WRITEPI nur die deklarierten Variablen abgefragt werden, jedoch nicht die benachbarten.

Als Workaround bleibt nur noch die Character einzeln zu übertragen.

MFG
Fabian Fischer


----------

