Automatische Initialisierung von Bausteinparametern in Funktionen (FC)
In S7-300/400 müssen temporäre Lokaldaten (Temp) einer Funktion zwingend mit einem Wert vorbelegt werden. Andernfalls konnte es vorkommen, dass das Programm mit undefinierten Werten arbeitet.
In S7-1500 ist die Gefahr des Weiterverarbeitens undefinierter Werte deutlich reduziert, da folgende Parameter beim Bausteinaufruf automatisch initialisiert werden:
Temporäre Daten vom Datentyp STRING und WSTRING werden grundsätzlich mit der Maximallänge 254 und der tatsächlichen Länge 0 vorbelegt.
Temporäre Daten mit elementarem Datentyp werden in Funktionen (FC) mit optimiertem Zugriff automatisch initialisiert. Sie werden dabei mit dem Wert belegt, der für den angegebenen Datentyp vordefiniert ist. Für BOOL ist z. B. der Wert "false" vordefiniert. Elemente von PLC-Datentypen werden mit dem Defaultwert vorbelegt, der in der Deklaration des PLC-Datentyps (UDT) angegeben ist. ARRAY-Elemente werden mit dem Wert "0" vorbelegt, auch wenn sie innerhalb eines PLC-Datentyps verwendet werden.
Ausgangsparameter (Output) in Funktionen mussten in S7-300/400 zwingend mit einem Wert beschrieben werden, da es ansonsten zu ungewollten Reaktionen im Programm kommen konnte. Beim Einsatz von Sprunganweisungen oder VKE-abhängigen Anweisungen musste jeder mögliche Programmpfad daraufhin geprüft werden.
In S7-1500 ist die Gefahr undefinierter Ausgangsparameter deutlich reduziert, da Ausgangsparameter elementaren Datentyps beim Bausteinaufruf automatisch initialisiert werden. Sie werden dabei mit dem Wert vorbelegt, der für den angegebenen Datentyp vordefiniert ist. Für BOOL ist z. B. der Wert "false" vordefiniert. Strukturierte Ausgangsparameter werden jedoch nicht mit einem Wert vorbelegt. Sie werden beim Bausteinaufruf als Pointer übergeben und können somit nicht undefiniert sein.