Hallo liebe WIN-SPS Gemeinde,
vorab bin noch ein relativer Grünschnabel.
Habe ein keines Problem mit dem übergeben von Strings in FBs oder FCs, dies können selbst geschrieben sein oder z. B der FC 17. Hier bei ist es egal ob ich den String in ‚einfachen‘ hoch Kommata Setzte oder „doppelten“. In der WIN-SPS Hilfe finde ich folgenden Hinweis (aus dem FC 17):
Allgemeiner Hinweis
Wenn beim Aufruf einer der folgenden FCs einem Formalparameter vom Datentyp STRING ein Aktualparameter zugewiesen wird, der im Lokaldatenbereich des aufrufenden Bausteins definiert wurde, muß folgendes beachtet werden:Vor dem FC-Aufruf muß in der temporären Variablen vom Datentyp STRING das Verwaltungsbyte "maximale Länge des Strings" mit der definierten Stringlänge beschrieben werden.
Eine STRING-Variable enthält zwei Längen: die maximale Länge (sie wird bei der Definition der Variablen in eckigen Klammern vorgegeben) und die aktuelle Länge (das ist die Anzahl der momentan gültigen Zeichen). Die aktuelle Länge ist kleiner oder gleich der maximalen Länge. Die Anzahl der durch eine Zeichenkette belegten Bytes ist um 2 größer als die maximale Länge.
Mir stellt sich die Frage ob ich mir einen ANY-Pointer für eine String bauen muss wie auch immer…
Gruß SPS-Starter
Problem bei String Übergabe in FBs/FCs
-
- SPSTreff-User
- Beiträge: 3
- Registriert: 21 Okt 2010, 10:04
- Matthias
- SPSTreff-Profi User
- Beiträge: 288
- Registriert: 19 Jun 2010, 11:16
- Wohnort: Bretten
- Kontaktdaten:
Strings werden üblicherweise in DBs angelegt:
Dann können diese Strings aus dem DB an eine FC übergeben werden:
Weitere Tipps:
- Strings können mit der Systemfunktion SFC20 kopiert werden
- Mit den IEC Funktionen (Siehe Bibliothek->IEC) sind viele Fuktionen für die Stringbehandlung vorhanden.
Hilft Ihnen das weiter?
Code: Alles auswählen
DATA_BLOCK DB1
AUTHOR:mh
FAMILY:nb
NAME:nb
VERSION:1.0
STRUCT
s1:STRING[254]:='Hallo'
s2:STRING[254]:='Welt'
END_STRUCT
BEGIN
s1:='Hallo'
s2:='Welt'
END_DATA_BLOCK
Code: Alles auswählen
CALL FC 1
in1:=DB1.s1
in2:=DB1.s2
identisch:=A0.0
- Strings können mit der Systemfunktion SFC20 kopiert werden
- Mit den IEC Funktionen (Siehe Bibliothek->IEC) sind viele Fuktionen für die Stringbehandlung vorhanden.
Hilft Ihnen das weiter?