String Funktionen aus der Standard Lib

Simatiker

Level-1
Beiträge
176
Reaktionspunkte
30
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
bei CoDeSys gibt es den Hinweis, dass die String Funktionen aus der Standard lib nicht "wieder-eintritt-sicher" sind, und somit nicht in unterschiedlichen Tasks verwendet werden sollen.
z.Bsp. hier bei Twincat
Stringfunktionen

Bitte beachten:

String-Funktionen sind nicht sicher bei Taskwechsel: Bei der Verwendung von Tasks dürfen String-Funktionen nur in einer Task eingesetzt werden. Wird die gleiche Funktion in verschiedenen Tasks benützt, besteht die Gefahr des Überschreibens.

Hat sich jemand schon mal damit auseinander gesetzt? Hat jemand den technischen Hintergrund parat?
Im Prinzip ist die Sache ja klar, aber ich wollte mal fragen wie es andere Programmierer handhaben. Im Netz findet man sehr wenig (eigentlich nix) dazu, so ist es, denke ich, auch mal ein interessantes für dieses Forum.

Wir erstellen Bibliotheken und haben in der Vergangenheit, unwissend, auch die String Funktionen aus der Standard lib darin verwendet. Nun kann ich ja nicht vorhersehen ob der Anwender mehrere Tasks verwendet, was aber sehr wahrscheinlich ist, geschweige denn ihn darauf hinzuweisen, dass er bestimmte Funktionen nur in der selben Task verwenden soll wie meine POUs. Auf der anderen Seite sollte es schon mit Teufel zugehen, dass ich just in dem Moment wo diese String funktion abgearbeitet wird (dauert ja auch keine Ewigkeit), die aufrufende Task unterbrochen wird und genau diese Funktion in der unterbrechenden Task verwendet wird. Aber ..., der Teufel ist ein Eichhörnchen. ;)
Lange Rede, kurzer Sinn: In Bibliotheken sollte man auf diese String Funktionen verzichten. Gelle?
Was verwendet ihr so standardmäßig für Funktionen bei der Verwendung von Strings? Es gibt ja die StringUtils library, welche auch noch performanter sein soll und mehr Funktionen bietet. ich denke, darauf wir es hinauslaufen, dass wir in unseren Guidelines die Verwendung der Standard lib untersagen und Alternative zum "selber-basteln" auf die StringUtils verweisen.
 
Hallo,

das Problem hat sich von selbst gelöst. Bei dem Hinweis handelt es sich um ein Relikt aus der CoDeSys V2.3. Bei der Suche habe ich nicht darauf geachtet, dass ich mich in der Hilfe zu Twincat V2 befand. Hatte es ursprünglich auch in der Hilfe von CoDeSys V3 entdeckt. Habe von 3S die Info bekommen das seit V3 alle String Functionen Threadsafe sind. Des Weiteren, bekam ich die Empfehlung die StringUtils zu verwenden, da die Funktionen aus dieser Lib performanter sind.
 
Zurück
Oben