# Strukturierter Text Referenz und Funktionen



## Netwalker (17 März 2010)

Gibt es irgendwo eine Funktionsreferenz zu Strukturiertem Text? Ich finde im Internet nichts und an Büchern gibt es da auch nix.

Wie und wo deklariere ich ne Funktion im ST? Ich hab lediglich ein Beispiel, das wie folgt aussieht:


```
FUNCTION Differenz : INT
VAR_INPUT
w1, w2 : INT;
END_VAR
Differenz := w1-w2;
END_FUNCTION
```

Stell ich das in den Variablenteil oder in den Quellcodeeditor. Hab schon beides ausprobiert, aber Fehlerlos lässt sich das nicht Übersetzen.


----------



## Cerberus (17 März 2010)

Eine Funktion oder ein Funktionsblock deklarierst du in ST wie eine ganz normale Variable:


```
VAR
     fb_PosFlanke: R_TRIG;
END_VAR
```
 
In deinem ausführbaren Code kannst du dann ganz einfach fb_PosFlanke verwenden.


----------



## Netwalker (17 März 2010)

So, jetzt hab ich mein Problem mal ein bisschen besser veranschaulicht.
Ich möchte eine Flankenerkennung für negative und positive Flanke auslagen.

Programm MAIN: (der grüne Text soll durch FB ersetzt werden)







FB Flanke:





Wo liegt der Fehler? Hab leider noch nicht mit FBs in ST gearbeitet.

Danke schonmal vorab


----------



## Ralle (17 März 2010)

Du deklarierst den FB falsch herum.



> USV_Stoerung: Flanke;



sollte das doch heißen, oder?


----------



## Cerberus (17 März 2010)

Mal grundsätzlich zur Definition von Variablen, Funktionen und Funktionsbausteinen:


```
VAR
     xxxxx: yyyyyy;
END_VAR
```
 
Bei so einer Deklaration ist xxxxx der Name der internen Variablen. yyyyyy ist der Datentype, Funktionsbaustein, Funktion, die in der Variablen xxxxx hinterlegt werden soll.

Du musst es, wie von Ralle beschrieben, umgekehrt deklarieren. USV_Stoerung soll die Variable sein, Flanke ist der Funktionsbaustein.


----------



## Netwalker (17 März 2010)

Dankeschön 

hier nochmal der Vollständigkeit halber das korrekte Programm:


----------



## Netwalker (13 April 2010)

Eingangs hatte ich das schonmal angesprochen, aber wurde bisher nicht wirklich darauf eingegangen.
Gibt es für Strukturierten Text irgendwo eine Syntaxreferenz? Das giebt es für so gut wie jede Programmiersprache, nur für ST kann ich absolut nichts finden.


----------



## Cerberus (13 April 2010)

Netwalker schrieb:


> Eingangs hatte ich das schonmal angesprochen, aber wurde bisher nicht wirklich darauf eingegangen.
> Gibt es für Strukturierten Text irgendwo eine Syntaxreferenz? Das giebt es für so gut wie jede Programmiersprache, nur für ST kann ich absolut nichts finden.


 
Vielleicht hilft dir das, das oder das weiter.

Gruß Cerberus


----------



## Netwalker (13 April 2010)

das und das kannte ich schon, aber das nicht  könnte nur etwas brauchen was noch bisschen tiefer in die ganze Sache geht. z.B. Funktionalitäten wie:

```
CONCAT();
```
sind nicht drin beschrieben. Und das sind ja meist die Dinge die man sucht. Aber schonmal danke.


----------



## Cerberus (13 April 2010)

Hier!

Andere Befehle kannst du einfach im Infosys von Beckhoff suchen. Bezieht sich zwar auf TwinCAT, aber die Befehle müssten auch für Codesys passen. Nur eben die entsprechenden Libs nicht.


----------



## Oberchefe (13 April 2010)

ich sag nur "F1":


----------

