Mid-Operator liefert fehlerhaften Wert (Beseitigung)

Betrifft welche Produkte?
EVS93xx-EI (Servo PLC Version 6.5 DSMC Steuerkarte)
EVS93xx-ET (Servo PLC Version 6.5 DSMC Steuerkarte)
EPL-10200 EI (Drive PLC Version 6.5)

Behobene Funktionseinschränkung:
Der Mid-Operator liefert mit der Vorgabe 0 (Null) als Startzeichen für einen Teilstring korrekterweise als Rückgabewert keine Zeichen zurück.
 
Betrifft welche Produkte?
EVS93xx-EI (Servo PLC Version 6.2 DSMC Steuerkarte)
EVS93xx-ET (Servo PLC Version 6.2 DSMC Steuerkarte)
EPL-10200-EI (Drive PLC Version 6.2)

Wie sieht die Reaktion aus?
Wird dem MID-Operator als Startzeichen die Position 0 vorgegeben, so liefert der Operator den Teilstring beginnend mit der Position 1 zurück. Korrekterweise dürfte der Operator bei Vorgabe 0 als Startposition keine Zeichen zurückliefern.
Allgemein: Der Operator MID liefert einen Teilstring aus einem String. Der Anwender gibt den String selber vor, die Anzahl der Zeichen, die aus dem String durch den Operator geliefert werden sollen und das Startzeichen von dem aus der Teilstring beginnt.
Zum Beispiel in ST:
Var1:= MID (LenzeAutomation,4,6)  (Var1= Auto)

Wann tritt das Problem auf?
Bei Nutzung des MID-Operators mit einer Startposition 0 für den Teilstring.

Diagnosemöglichkeiten?
Keine.

Kurzfristige Maßnahmen/Empfehlungen?
Es ist programmtechnisch sicherzustellen, dass als Startposition zur Lieferung eines Teilstring nicht der Wert 0 vorgegeben werden kann.

Bewertung:
Der Fehler tritt nur bei Verwendung des Datentypes String, welche eher selten in Applikationen zum Einsatz kommen. Die Nutzung des Datentypen String führt zu keiner Beeinträchtigung des Antriebsverhaltens.

URL zur Verlinkung dieses AKB-Artikels: https://www.lenze.com/de-de/go/akb/200406435/0/
Kontaktformular