Ich habe auch CoDeSys 2.3.9.10 und da kann ich auch Strings die länger sind als 255 Zeichen definieren und benutzen.
gruß bonatus
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2009-02-18
Originally created by: mg
Solange ich die String Funktionen von Codesys nicht verwende hatte ich schon jede Größe von Strings verwendet. Und zumindest bei mir funktionierten die (ist aber vielleicht systemabhäüngig)
PS: String mit Pointern bearbeiten.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Also es stimmt definitiv, dass String länger als 255 Zeichen sein dürfen.
Definition wie immer mit strText: STRING(1000);
Bei mir funktioniert das wunderbar, auch schon seit Jahren.
Nur die von 3S gelieferten Library Funktionen (z.B. CONCAT, LEFT, MID, usw...) hören bei > 255 auf.
Anbei eine CONCAT Funktion die aus 2x512 Byte String einen 1024 Byte String macht.
VORSICHT ich habe das auch schon mit grösseren Strings getestet. Die Grenze liegt bei 8kB (8192 Bytes). Das ist der maximale Stack der für Funktionen reserviert wird. Bei grösseren Funktionsparametern gibts nen schönen blauen Screen (RTE auf Windows Rechner).
Hallo Gemeinschaft ,
es kam bestimmt schon einmal hier im Forum vor, doch leider hab ich nichts gefunden oder nach dem falschen gesucht.
Meine Frage:
Kann ich auch einen String zusammensetzen der länger als 255 Zeichen ist - wenn ja wie
CONCAT funktioniert nur bis 255 Zeichen.
Ich habe ein ARRAY [] OF STRING und ich bräuchte den Inhalt als einen String.
Über Hilfen oder Ratschläge wäre ich dankbar.
Hallo,
ich kann dich leider nur auf ein anders Forum weiterleiten. Ich will ja nicht anderes Gedankengut als meines darstellen.
http://sps-forum.de/showpost.php?p=98204&postcount=8
gruß bonatus
einen string der länger ist als 255 geht nicht, das ist eine feste begrenzung des compilers.
eine lösungsmöglichkeit ist ein array of byte das kann dann bis zu 32000 zeichen aufnehmen
bausteine für buffer handling, kopieren und rückschreiben von strings findest du ind ewr oscat lib unter w www.oscat.de w
Hallo,
also ich kann String mit beliebiger länge definieren und benutzen.
z.B.: StrVar:String(1024);
gruß bonatus
Danke, hat mir schon weitergeholfen.
hallo c.reps
habe ich hier etwas übersehen
laut manual ist bei codesys 2.3 die stringlänge auf 255 begrenzt.
ausprobioert und der compiler meldet ungültige stringlänge wenn string(n) n > 255
das ist dioch das forum für codesys 2.3 und nicht 3.0 oder????
Hallo,
ich benutze TwinCat und da funktioniert es.
Ich habe auch CoDeSys 2.3.9.10 und da kann ich auch Strings die länger sind als 255 Zeichen definieren und benutzen.
gruß bonatus
Originally created by: mg
Solange ich die String Funktionen von Codesys nicht verwende hatte ich schon jede Größe von Strings verwendet. Und zumindest bei mir funktionierten die (ist aber vielleicht systemabhäüngig)
PS: String mit Pointern bearbeiten.
wie bitte definierst du den string?
string(1000) geht definitiv nicht der compiler sagt unerlaubte stringlänge
als array[0..1000] of byte definiert sicherlich das machen wir auch mit buffern usw....
aber dann nennt man das ganze nicht mehr string, es ist dann ein array of byte und kein string
string ist ein vordefinierter datentyp des compilers
ich nutze codesys 2.3.9.11 aktuellstze version und kann defnitiv keinen string(n) mit n > 255 definieren....
gibt es da eine gehaeime einstellung die strings > 255 erlaubt?
oder ist das eine limitierung im target file ich werde mal verschiedene targets untersuchen.
twincat macht sicherlich nichts anderes als codesys den es ist codesys lediglich die steuerungskonfiguration läuft dort anders
Moin
Also es stimmt definitiv, dass String länger als 255 Zeichen sein dürfen.
Definition wie immer mit strText: STRING(1000);
Bei mir funktioniert das wunderbar, auch schon seit Jahren.
Nur die von 3S gelieferten Library Funktionen (z.B. CONCAT, LEFT, MID, usw...) hören bei > 255 auf.
Anbei eine CONCAT Funktion die aus 2x512 Byte String einen 1024 Byte String macht.
VORSICHT ich habe das auch schon mit grösseren Strings getestet. Die Grenze liegt bei 8kB (8192 Bytes). Das ist der maximale Stack der für Funktionen reserviert wird. Bei grösseren Funktionsparametern gibts nen schönen blauen Screen (RTE auf Windows Rechner).
Gruss
Erik
ASYSCONCAT.zip [477 Bytes]
nun ich hab mittlerweile etwas weiter getestet und folgendes festgestellt
die max erlaubte stringlänge hängt vom tagret file ab.
beispiel:
wago 842 erlaubt nur 256 zeichen (256 nicht 255)
ein wago 841 neue firmware erluabt hingegen 512
die maximale dstringlänge ist wohl im targetfile vorgegeben und für verschiedene targets unterschiedlich.
in der standard.lib von codesys sind alle string funktionen mit string(255) definiert.
vorsicht der compiler meldet hier keinen fehler, wer schneidet die strings einfach ab und das programm liefert ohne zu murren falsche ergebnisse.
habe auch festgestellt das bei einem moeller target als string konstanten nur 253 zeichen möglich sind.
Originally created by: mg
... danke für Eure Informationen und Eure Tests (erspart mir in Zukunft sicher viel Ärger ung Zeit)
SUPER !!!