String an Funktion übergeben und auswerten

Sh4gr4th

Level-1
Beiträge
33
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ist es möglich eine Funktion zu schreiben, der man einen String übergibt und je nach Inhalt dieses Strings (zB. OBEN, UNTEN, RECHTS, LINKS) verschiedene Anweisungen ausführt?
So dass man quasi im Klartext übergeben kann, was gewünscht ist, also beispielsweise
CALL FC 1
Richtung : RECHTS (Oder LINKS, OBEN, UNTEN)
Displaydrehen : JA (NEIN)

Wenn es nur 2 Möglichkeiten gibt, kann ich das ja auch mit False/True und anderer Namensgebung (zB rechtsrum: true/false) lösen, aber wenn ich mehrere Möglichkeiten zur Auswahl habe, dann fällt mir momentan nur die Übergabe eines Integerwertes ein, den in in der Funktion auswerte, aber das finde ich nicht so schön (war die 2 jetzt recht oder links, oder eher unten oder doch etwa oben?), da es fehleranfälliger ist.

Simatic S7-300, AWL, Step7 V5.0 SP2
 
Du musst den String in einen DB schreiben. Diesen kannst du dann an einen FC Eingang symbolisch anbinden. In dem FC machst du dann deinen Vergleich auf den String.

So in etwa?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry, verstehe ich nicht ganz mit der symbolischen Anbindung bzw. die Umsetzung ist mir nicht klar.
Aber ich versuche mal zu überlegen, was Du meinen könntest.
Ich übergebe der Funktion einen String, diesen String schreibe ich zuerst in der Funktion in einen DB, dann frage ich diesen DB ab?
So in etwa?
Wenn nein, dann kannst Du da vielleicht etwas mehr zu schreiben?
Wenn ja, String in einen DB zu schreiben ist mir glaube ich klar, aber wie kann ich einen String mit einem in einem DB gespeicherten String vergleichen? Bin ich bislang noch nicht drüber gestolpert.
 
Du bekommst ja die Vorgabe irgendwo her, aus einem Panel denke ich. Von dort aus schreibst du in einen DB Oben. Da du keine Strings an einen Baustein parametrieren kannst, musst du einen Zeiger übergeben. Du klickst auf den Eingang am Baustein, rechte Maus, Symbol einfügen, Auswahl der Variablen aus der Tabelle und ENTER.

pt
 
Dann gibt es noch den FC29 im IEC Ordner. Der Vergleicht Strings.

Im FB kannst du Strings statisch deklarieren.

so am Rande

Ich würde es über eine Byte oder INT Variable lösen und in den Kommentar die Bedeutung des Wertes 1-4 reinschreiben.


Gruß, pt
 
Zurück
Oben