24. ZEICHENFOLGENREGISTER-ANWEISUNGEN

24.1 Übersicht

Ein Zeichenfolgenregister speichert alphanumerische Zeichenfolgen. Jedes Zeichenfolgenregister kann maximal 254 Zeichen aufnehmen. Standardmäßig gibt es 25 Zeichenfolgenregister.

Sie können die Anzahl der Zeichenfolgenregister beim gesteuerten Start erhöhen. Weitere Informationen zum Ausführen eines kontrollierten Starts finden Sie unter "Systembetrieb" im Anhang des Installations- und Bedienhandbuchs.

Es gibt verschiedene Arten von Zeichenfolgenregister-Anweisungen:

  • Zeichenfolgenregister-Zuordnung, SR[x]=

  • Zeichenfolgenregister-Verkettung, SR[x]+

  • Zeichenfolgenregister-Vergleich, SR[x]<, >, =, <>, <=, >=

  • Zeichenfolgenregister-Länge, R[y]=STRLEN SR[x]

  • Zeichenfolgenregister-Teilzeichenfolge-Suche, R[y]=FINDSTR SR[x], SR[z]

  • Zeichenfolgenregister-Teilzeichenfolge-Schnitt, SR[x]=SUBSTR SR[n],R[y],R[z]

Zeichenfolgeregister können mit der direkten und indirekten Technik adressiert werden. Weitere Informationen finden Sie in Abb. 6.46 in Abschnitt "Register-Anweisungen".

24.2. Zeichenfolgenregister-Zuordnung und -Verkettung

Mit SR[x]-Zeichenfolgenregister-Anweisungen werden Zeichenfolgenregister bearbeitet. Zeichenfolgenregister unterstützten die Zuordnung und Verkettung.

Abb. 113. Zeichenfolgenregister-Zuordnung

Zeichenfolgenregister-Zuordnung

Beispiele für Zeichenfolgenregister-Zuordnungs-Anweisungen:

SR[x]=SR[y]

SR[x]=AR[y]

SR[x]=R[y]

R[x]=SR[y]

Abb. 114. Zeichenfolgenregister-Verkettung

Zeichenfolgenregister-Verkettung

Beispiele für Zeichenfolgenregister-Verkettungs-Anweisungen:

SR[x]=SR[y]+SR[z]

SR[x]=SR[y]+R[z]

SR[x]=AR[y]+SR[z]+R[n]

Zeichenfolgenregister-Anweisungen konvertieren numerische Datentypen automatisch. Diese automatische Konvertierung ist in Abschnitt  24.3, "Konvertierung und Vorrang von Zeichenfolgen" erklärt.

24.3. Konvertierung und Vorrang von Zeichenfolgen

Zeichenfolge- und numerische Daten werden beim Verwenden einer beliebigen Registeranweisung automatisch konvertiert.

Die Konvertierung von Ganzzahl- oder numerischen Gleitkommadaten ist zulässig. Gleitkommadaten werden auf sechs Dezimalstellen abgerundet.

Beispiele für die Konvertierung von numerischen in Zeichenfolgendaten:

Tabelle 26. SR[x]=R[y]

R[y] Wert SR[x] Ergebnis
R[y]=1234 SR[x]=’1234’
R[y]=12.34 SR[x]=’12.34’
R[y]=5.123456789 SR[x]=’5.123457’

Die Konvertierung von Zeichenfolgen in numerische Daten ist zulässig. Wenn der maximale Wert für eine Gleitkommanummer in der Zeichenfolgendarstellung überschritten wird, kann ein Überlauf-Alarm auftreten. Die Konvertierung von Zeichenfolgen in numerische Daten wird gestoppt, wenn das erste Buchstabenzeichen gefunden wird.

Beispiele für die Konvertierung von Zeichenfolgen in numerische Daten:

Tabelle 27. R[x]=SR[y]

SR[y] Wert R[x] Ergebnis
SR[y]=’1234’ R[x] = 1234
SR[y]=’12.34’ R[x]=12.34
SR[y]=’765abc’ R[x]=765
SR[y]=’fgh’ R[x]=0

Wenn innerhalb einer Anweisung mehrere Konvertierungen auftreten, hat die Datentyp-Konvertierung Vorrang. Die Daten werden bei jeder Operation in den Datentyp der linken Anweisung konvertiert.

Beispiele für den Vorrang der Konvertierung:

Tabelle 28. SR[x]=R[y]+SR[z]

R[y]=123.456 + SR[z]=’345.678’ SR[x]=’456.134’
R[y]=456 + SR[z]='1abc2' SR[x]='457'

Tabelle 29. SR[x]=SR[y]+R[z]

SR[y]=’123.’ + R[z]=345 SR[x]=’123.345’
SR[y]=’xyz’ + R[z]=81573 SR[x]=’xyz81573’

24.4. STRLÄN-Anweisung

Die STRLÄN-Anweisung gibt die Länge der im angegebenen Register gespeicherten Zeichenfolge zurück.

R[x]=STRLEN SR[y]

Abb. 115. STRLÄN-Anweisung

STRLÄN-Anweisung

Beispiel für die Verwendung von STRLÄN:

Tabelle 30. R[x]=STRLEN SR[y]:

SR[y] Wert R[x] Ergebnis
SR[y]=’abcdefghij’ R[x]=10
SR[y]=’zyx1,2,3,4,5,6,lm’ R[x]=17
SR[y]=’’ R[x]=0

Wenn STRLÄN mit einem Argumentregister verwendet wird, wird für AR[x], dessen Datentyp keine Zeichenfolge ist, wird ein Alarm zum falschen Typ angezeigt.

24.5. STRSUCH-Anweisung

Die STRSUCH-Anweisung sucht die Zielzeichenfolge für die Suchzeichenfolge und gibt den Index innerhalb der Ziel-Zeichenfolge zurück. Bei allen Zeichenfolgenvergleichen wird die Groß- oder Kleinschreibung nicht berücksichtigt. Wird die Suchzeichenfolge in der Zielzeichenfolge nicht gefunden, wird der Index "0" zurückgegeben.

R[x]=FINDSTR SR[y],SR[z]

Abb. 116. STRSUCH-Anweisung

STRSUCH-Anweisung

Beispiel der Verwendung von STRSUCH:

Tabelle 31. R[x]=FINDSTR SR[y],SR[z]

SR[z] Wert mit SR[y]=’Wir suchen eine Zeichenfolge in dieser Zeichenfolge’ R[x] Ergebnis
SR[z]=’wir’ R[x]=1
SR[z]=’Zeichenfolge’ R[x]=24
SR[z]=’sonstige’ R[x]=0
SR[z]=’’ R[x]=0

Wenn STRSUCH mit einem Argumentregister verwendet wird, wird für AR[x], dessen Datentyp keine Zeichenfolge ist, wird ein Alarm zum falschen Typ angezeigt.

24.6. SUBSTR-Anweisung

Die SUBSTR-Anweisung eine Teilzeichenfolge der Zielzeichenfolge basierend auf dem angegebenen Startpunkt und der angegebenen Länge zurück.

SR[n]=SUBSTR SR[x],R[y],R[z]

Abb. 117. SUBSTR-Anweisung

SUBSTR-Anweisung

Beispiel der Verwendung von SUBSTR:

Tabelle 32. SR[n]=SUBSTR SR[x],R[y],R[z]

R[y] und R[z] Werte mit SR[x]=’Diese Zeichenfolge wird beschädigt.’ SR[x] Ergebnis
R[y]=1,R[z]=4 SR[x]=’Diese’
R[y]=28,R[z]=5 SR[x]=’beschädigt’
R[y]=8,R[z]=0 SR[x]=’’

Bei einer der folgenden Bedingungen wird ein Überlaufalarm angezeigt:

  • Startpunkt ist kleiner als oder gleich Null

  • Länge ist kleiner als Null

  • Startpunkt ist größer als die Länge der Zielzeichenfolge

  • Startpunkt plus Länge ist größer als die Länge der Zielzeichenfolge

Wenn ein Argumentregister, AR[x], als Zielzeichenfolge verwendet wird, dessen Datentyp keine Zeichenfolge ist, wird ein Alarm zum falschen Typ angezeigt. Wenn ein Argumentregister, AR[x], als Startpunkt oder Länge verwendet wird, dessen Datentyp kein numerischer Typ ist, wird ein Alarm zum falschen Typ angezeigt.