TIA SCL[FB] - Initialisierung von STRING zur Festlegung dessen Größe bevor geschrieben wird

HT-T

Level-2
Beiträge
113
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich würde gerne meine STRING Variablen "initiieren" bevor diese beschrieben werden um zu vermeiden dass diese unnötig groß werden.
Ich habe bereits folgendes zu diesem Thema gefunden: https://cache.industry.siemens.com/...ung_d.pdf#3 Initialisierung von Zeichenketten
auf Seite 1-2 wird unmittelbar beschrieben wie ich direkt im SCL den String festlege.

So wie ich die VARIANT-Deklarierung verstanden habe, handelt es sich hier um einen Pointer welchem noch kein definierten Datentyp zugeordnet ist.
Was ich jedoch nicht verstehe warum ich diese VARIANT Deklarierung überhaupt benötige, ich habe die jeweiligen STRING Variablen ja bereits als solche deklariert.
Ich möchte nur sicherstellen das STRING_Year[4], STRING_Month[2] und STRING_Day[2] vorab initalisiert werden.
Ansonsten werde ich wieder das Problem haben das beim wegspeichern der Variable alle weiteren Felder einen Standardstrings auf die restlichen 254 befüllt werden könnte. Hier habe bereits beim befüllen von Strings über E/A-Felder der HMI die Erfahrung gemacht dass genau das passiert, das heißt der gewünschte Inhalt wird zwar in den String geschrieben, beim Überführen genau diesem Wert in das DataLog CSV-File werden die restlichen Stellen des String mit Leerzeichen aufgefüllt.

Vielleicht könnt ihr mir weiterhelfen sodass ich hier zu einem Ergebnis komme.

Sinn und zweck des Ganzen, ich möchte die drei Strings zu einem String, welcher immer dem aktuellen Datum entspricht, zusammenfügen und diesen String dann als "Name" meines künftig zu erstellenden Datalogs in die entsprechende Variable des DataLog[DB] schreiben.


1714117046670.png
1714117085777.png
 
Das Handbuch bezieht sich auf SCL in S7 5.x

unter TIA wird einfach in der Bausteinschnittstelle die komplette Deklaration gemacht. D.h. du musst einfach nur String[n] deklarieren.

also:
Name: STRING_Year
Datentyp: String[4]

in diesem Fall.

den
Code:
VAR
...
END_VAR
Teil kannst du löschen

In TIA Portal ist die Hilfe (F1) tatsächlich gut und ausführlich:
Screenshot 2024-04-26 101314.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Handbuch bezieht sich auf SCL in S7 5.x

unter TIA wird einfach in der Bausteinschnittstelle die komplette Deklaration gemacht. D.h. du musst einfach nur String[n] deklarieren.

also:
Name: STRING_Year
Datentyp: String[4]

in diesem Fall.

den
Code:
VAR
...
END_VAR
Teil kannst du löschen

In TIA Portal ist die Hilfe (F1) tatsächlich gut und ausführlich:
@DCDCDC
Vielen Dank für den wertvollen Hinweis! Auch anhand des Textes des "Information system" wäre mir die Möglichkeit der direkten Deklarierung innerhalb der Variablentabelle nicht in den Sinn gekommen. Aber ich stimme dir uneingeschränkt zu, den Anspruch welchen Siemens in das "Information system" gesteckt hat ist wirklich hoch.

1714121172656.png
 
Auch anhand des Textes des "Information system" wäre mir die Möglichkeit der direkten Deklarierung innerhalb der Variablentabelle nicht in den Sinn gekommen.
Screenshot 2024-04-26 105736.png

Hier ist es ja beschrieben.. ohne weitere Informationen ist String immer 254 Zeichen, mit der Information [n] im Datentyp wird dann die länge spezifiziert.
 
Zurück
Oben