1 strukturierter text grundlagen der programmierung mit strukturiertem text
TRANSCRIPT
![Page 1: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/1.jpg)
1
Strukturierter Text
Grundlagen der Programmierung mit Strukturiertem Text
![Page 2: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/2.jpg)
2
Programmierung mit Strukturiertem Text
Übersicht:
• Vorteile der ST Programmierung
• ST Editor
• Zuweisungen
• Kommentare
• Variablen
• Syntax Regeln
• Operatoren
• Standard Kommandos
• Bedingung IF THEN
• Verzweigung CASE
• Schleifen FOR
• Schleifen WHILE
• Schleifen REPEAT UNTIL
• Funktionsblock Aufruf in ST
• Funktions Aufruf in ST
• Strukturen
• FUB Aufruf ST vs. KOP
• Vergleiche zwischen KOP und ST
![Page 3: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/3.jpg)
3
Vorteile der ST Programmierung
• Einfach lesbarer Code• Portabler Code (99%) zu IEC61131-3 Dritthersteller • Editierbar in Text Editor• Effizienter Code, besser als KOP oder FBD• Bequeme Verwendung von Strukturen (komplexe
Datentypen)• Kürzere Entwicklungszeit• Mischen von KOP und ST möglich (InLine ST)
![Page 4: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/4.jpg)
4
ST Editor
GRÜN:KommentareGRÜN:Kommentare
BLAU: Ablauf, Anweisungen, Operatoren
BLAU: Ablauf, Anweisungen, Operatoren
ROT: Globale Variablen, Globale Konstanten,Strings
ROT: Globale Variablen, Globale Konstanten,Strings
• Syntax EinfärbungStandardfarben, diese können teilweise in den Optionen umgestellt werden
SCHWARZ: Variablen, Konstanten, Funktionen, Funktionsblöcke
SCHWARZ: Variablen, Konstanten, Funktionen, Funktionsblöcke
![Page 5: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/5.jpg)
5
ST Editor
VariablenDeklarationVariablenDeklaration
ST Programm EditorST Programm Editor
![Page 6: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/6.jpg)
6
Zuweisungen
• Zuweisungen von Werten, Ausdrücken oder Zuständen mit “:=“
• Es können Leerzeichen und Tabulatoren verwendet werdenum die Lesbarkeit zu verbessern
• Anweisungen müssen am Zeilenende mit einem Semikolon abgeschlossen werden “;“
![Page 7: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/7.jpg)
7
Zuweisungen
• Integer Werte können auch Binär oder Hexadezimal eingegeben werden
• Komplexe, lange Ausdrücke können auf mehrere Linien gesplittet werden mittels „Return“ (). Der Ausdruck wird mit dem Semikolon “;“ abgeschlossen
![Page 8: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/8.jpg)
8
• Blockkommentare können irgendwo im ST Programm platziert werden, verwendet als Zeilen oder Mehrzeilen Kommentar. Start mit “(*” Ende mit “*)”
Kommentare
• Linienkommentare können mit “//“ begonnen werden
![Page 9: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/9.jpg)
9
• Variablen Deklaration: – Der Compiler unterscheidet nicht zwischen Klein - und
Großschreibung. In der Praxis ist empfohlen immer die gleiche Schreibweise zu verwenden um die Lesbarkeit zu verbessern.
Nicht empfohlenNicht empfohlen
Lesbar +Konsistent
Variablen
![Page 10: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/10.jpg)
10
• Variablen Deklaration: – Noch nicht deklarierte Variablen werden mit einem blauen Rechteck markiert.– Durch anklicken dieser Markierung kann die Variable generiert werden (Lokal)– Jetzt muss nur noch der Datentyp eingegeben werden
Variablen
![Page 11: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/11.jpg)
11
– Sonderzeichen können nicht in Variabel Namen benutzt werden. Ausnahme: Tiefstrich “_” (nicht an erster Position)
>, <=, >=, <>, :=, -, *, /, &, (*,*), %,$,@...
• Reservierte Schlüsselwörter: – Schlüsselwörter dürfen nicht verwendet werden, da diese für ST
Kommandos reserviert sind.
– Datentypen, und benutzerdefinierte Typen können nicht als Vaiabelname verwendet werden
BOOL, USINT, SINT, BYTE, UINT, INT,WORD, REAL, DINT, UDINT, DWORD, LREAL, LINT, ULINT, LWORD…
AND, BY, CASE, DO, ELSE, ELSIF, EXIT, FALSE, FOR, IF, NOT, OF, OR, REPEAT, RETURN, THEN, TO, TRUE, UNTIL,WHILE, XOR, END_IF,END_WHILE, END_CASE, END_REPEAT..
Syntax Regeln
![Page 12: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/12.jpg)
12
Übung 1
• Finde die 7 Fehler…
:;
![Page 13: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/13.jpg)
13
( ) Ausführungs Priorisierung Value:=(1+2) *(3+4) // Value is 21Priorität: ( ), NOT, **, * / , MOD, + -
** Exponent Value:= 2**8 ; // Value is 256
NOT Negierung Value:=NOT TRUE; //Value is FALSE
* Multiplikation Value:=8 * 100; // Value is 800
/ Division Value:=200 / 25; // Value is 8
+ Addition Value:=200 + 25; // Value is 225
- Subtraktion Value:=200 - 25; // Value is 175
MOD Modulo (Rest) Value:=10 MOD 6; // Value is 4
<,>,<=,>= Vergleiche Value:= 60 > 10; // Value is TRUE
= Vergleich (Ist gleich) Value:= 8=7; // Value is FALSE
<> Vergleich (Ungleich) Value:= 8<>7; // Value is TRUE
&, AND Logisches UND Value:=2#1001 AND 2#1100; //Value is 2#1000
XOR Logisches Exklusives ODER Value:=2#1001 XOR 2#1100; //Value is 2#0101
OR Logisches ODER Value:=2#1001 XOR 2#1100; //Value is 2#1101
Operatoren
![Page 14: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/14.jpg)
14
• Fallunterscheidungen– IF..THEN....END_IF– IF..THEN….ELSE….END_IF– IF..THEN….ELSIF..THEN…END_IF
• Verzweigung– CASE..OF….END_CASE
• Schleifen– FOR.. (BY) .. DO..END_FOR– WHILE..DO….END_WHILE– REPEAT...UNTIL…END_REPEAT– EXIT
ST Standard Kommandos
![Page 15: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/15.jpg)
15
• Einfache Bedingung: IF .. THEN .. END_IF
– Die <Bedingung> wird geprüft, und die <Anweisung(en)> zwischen THEN und END_IF ausgeführt wenn die Bedingung zutrifft
– Wenn die Bedingung nicht zutrifft werden die Anweisungen zwischen THEN und END_IF übersprungen.
ST Bedingung IF THEN
![Page 16: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/16.jpg)
16
ST Bedingung IF THEN
• IF..THEN..END_IF Beispiel:
– Value wird auf 10 gesetzt, wenn Enable TRUE ist und PowerON FALSE.
– Ist Enable FALSE oder PowerON TRUE, wird Value auf 0 gesetzt
![Page 17: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/17.jpg)
17
ST Bedingung IF THEN
– Wenn Bedingung erfüllt ist wird nur „Anweisung_1“ ausgeführt, wenn Bedingung nicht erfüllt ist, nur „Anweisung_2“
– Eine IF Anweisung wird nur ausgeführt wenn die Bedingung TRUE ist. Um auch den anderen Fall abzufangen, also wenn die Bedingung FALSE ist, brauchen wir die ELSE Anweisung.
When TRUE
When FALSE
![Page 18: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/18.jpg)
18
ST Bedingung IF THEN ELSIF
– <Bedingung_1> wird geprüft und <Anweisung_1> ausgeführt wenn nötig– Nach <Bedingung_1> wird ein ELSIF nach dem anderen abgearbeitet.
Es können also mehrere Bedingungen und Anweisungen durchlaufen werden
– Wenn keine der Bedingung zutrifft wird die ELSE Anweisung ausgeführt
• Erweiterte IF Anweisung mit ELSIF
![Page 19: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/19.jpg)
19
ST Bedingung IF THEN ELSIF
–IF THEN ELSEIF Fallunterscheidungen können geschachtelt werden
Jede verschachtelte Sektion muss mit END_IF abgeschlossen sein.
Es ist sehr empfohlen die Sektionen einzurücken für bessere Lesbarkeit. Dies wird durch den Editor unterstützt.
Theoretisch kann bis zu einer tiefe von 15 Stufen verschachtelt werden, was natürlich kein schöner Code ist!
![Page 20: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/20.jpg)
20
ST Verzweigung CASE
• Verzweigung mit CASE..OF … ELSE …END_CASE
– Abhängig vom <Status> wird der entsprechende Zweig ausgeführt.– Ist keine der Konditionen zutreffend kann optional eine ELSE Anweisung
abgearbeitet werden – Es ist immer nur ein Zweig pro durchlauf aktiv.
![Page 21: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/21.jpg)
21
ST Verzweigung CASE
• CASE..OF.. END_CASE Beispiel:
Wichtig: Wird der Status innerhalb der Case Struktur geändert, wird dies erst im nächsten Zyklus aktiv. Am Ende des Zweigs wird immer zu END_CASE gesprungen. Dies kann ausgenützt werden um Zykluszeit zu sparen…
![Page 22: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/22.jpg)
22
ST Verzweigung CASE
value=20value=20
Nächster Zyklusvalue=30
value=30value=30
Nächster Zyklusvalue=40
value=40value=40
Nächster Zyklusvalue=50
• Immer nur ein Status innerhalb der Case Struktur ist aktiv
Nächster Zyklusvalue=20
value=10value=10
![Page 23: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/23.jpg)
23
ST Verzweigung CASE
• Beispiel mit Enumerator
ENUM Deklaration
Variablen Deklaration
![Page 24: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/24.jpg)
24
ST Verzweigung CASE
• Beispiel mit Mehrfachauswahl
Mehrfachauswahl ist möglich, durch Kommagetrennte Werte oder mit “..“ als Bereichsangabe
![Page 25: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/25.jpg)
25
Übung 2
• Erstellen sie den folgenden Ablauf
Lösung
![Page 26: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/26.jpg)
26
Übung 3 Lösung
• Erstellen sie den folgenden Ablauf
![Page 27: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/27.jpg)
27
Übung 4
Erstellen sie ein Programm in ST für eine Pumpensteuerung:
-Pumpe 1 einschalten bis Schalter 1 anspricht-Wenn Schalter 1 anspricht schaltet Pumpe 2 ebenfalls ein, bis Schalter 3 anspricht. -Wenn Schalter 3 anspricht 3. Pumpe einschalten.
-Wenn Hauptschalter ausgeschaltet ist alle Pumpen ausschalten.
Tipp: Lösen mit CASE und IF
Lösung
![Page 28: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/28.jpg)
28
• Bedingte Schleifen: FOR.. (BY) .. DO..END_FOR
– Wiederholt die Anweisungen zwischen FOR und END_FOR in einer Schleife von <Anfangswert> bis <Endwert>
– Wenn Endwert erreicht ist wird zu END_FOR gesprungen– Die <Schrittweite> Angabe ist optional. Standard ist 1– Zähler, Anfangswert, Endwert und Schrittweite müssen vom selben
Datentyp sein– Achtung! Die Schleife wird nicht unterbrochen. Zu viele
Wiederholungen / Anweisungen oder Endlosschlaufen führen zu Zykluszeitverletzung
ST Schleifen FOR
![Page 29: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/29.jpg)
29
ST Schleifen FOR
• FOR.. (BY) .. DO..END_FOR Beispiel
– Ohne “BY“ Kommando, wird die Zählervariable bei jedem Durchlauf automatisch um +1 erhöht.
![Page 30: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/30.jpg)
30
• Bedingte Schleifen: WHILE.. DO..END_WHILE
– Wiederholt die <Anweisungen> zwischen WHILE .. END_WHILE solange die <Bedingung> erfüllt ist.
– Wenn die Bedingung nicht erfüllt ist, wird die Schleife beendet.– Die WHILE Schleife ist Kopfgesteuert (wird evtl. nie durchlaufen)– Die Programmabarbeitung bleibt solange in der WHILE Schleife bis
die Bedingung nicht mehr erfüllt ist. Gefahr von Zykluszeitverletzung durch zu viele Anweisungen oder Endlosschlaufe
ST Schleifen WHILE
![Page 31: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/31.jpg)
31
• WHILE..DO..END_WHILE Beispiel
Die Schleife wird verlassen wenn counter den Wert 10 erreicht. Value wird 10 sein.
ST Schleifen WHILE
– ACHTUNG Endlosschleife !:
![Page 32: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/32.jpg)
32
Übung 5a
• Schreiben sie ein Programm, welches ein Dreiecksignal generiert mit 200 Schritten, und in einem Array abspeichert.
1 100 200
100
Triangle: Array[1..200]
Arr
ay
valu
e
Lösung
![Page 33: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/33.jpg)
34
– Anweisung wird ausgeführt, dann die Bedingung geprüft, ist die Bedingung FALSE, wird die Schleife weiter durchlaufen. Bis die Bedingung zutrifft.
– REPEAT ist Fussgesteuert, wird also mindestens einmal durchlaufen– Die Programmabarbeitung bleibt solange in der WHILE Schleife bis die
Bedingung nicht mehr erfüllt ist. Gefahr von Zykluszeitverletzung, durch zu viele Anweisungen oder Endlosschlaufe
ST Schleifen REPEAT UNTIL
• Bedingte Schleifen: REPEAT .. UNTIL .. END_REPEAT
![Page 34: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/34.jpg)
35
• REPEAT..UNTIL..END_REPEAT Beispiel
Nach END_REPEAT, counter ist gleich 142
ST Schleifen REPEAT UNTIL
![Page 35: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/35.jpg)
36
• Unterschied zwischen WHILE Schleife und REPEAT Schleife
WHILE REPEAT
– Bedingung wird VOR der Schleife geprüft
– Schleife wird nie ausgeführt wenn Bedingung nicht erfüllt ist
– Bedingung wird NACH der Schleife geprüft.
– Die Schleife wird immer mindestens einmal durchlaufen
ST Schleifen
![Page 36: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/36.jpg)
37
• Unterbrechen von bedingten Schleifen: EXIT
– EXIT Kommando wird normalerweise in Verbindung mit Schleifen verwendet– EXIT ist zum unterbrechen der Schleife aufgrund einer Bedingung– EXIT Befehl kann hilfreich sein um Endlosschleifen zu verhindern und Zykluszeit zu
sparen z.B. “suchen bis gefunden“– EXIT kann in allen Schleifen verwendet werden FOR / WHILE / REPEAT
ST Schleifen EXIT
![Page 37: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/37.jpg)
38
• EXIT Beispiel
– WHILE wird spätestens nach 40 Durchgängen mit EXIT Befehl abgebrochen
ST Schleifen EXIT
![Page 38: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/38.jpg)
39
• Schreiben sie eine Funktion um die Fakultät n! zu berechnen
• Die Fakultät von 0! ist 1.• Falls der eingegebene Wert negativ ist soll 0 returniert werden• Die Ausgabe soll als DWORD erfolgen, maximaler Eingabewert: 31
Tipps:
Übung 6
![Page 39: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/39.jpg)
40
Function Programm
Beispiel Aufruf:
Übung 6 Lösung
![Page 40: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/40.jpg)
41
• Ein Funktionsblock muss mit einer vorgängig deklarierten Instanz aufgerufen werden
• Eingange werden zugewiesen mit “:= “• Ausgänge werden zugewiesen mit “ =>”• Ein/Ausgänge können mit beidem zugewiesen werden
(Vorzugsweise “:= “)
Funktionsblock Aufruf in ST
InstanzName (<Input_1>:=… ,<Input_n>:=… ,<Output_1> =>… ,<Output_n> =>… , <Input_output_1> :=… ,<Input_output_n>):=… );
InstanzName (<Input_1>:=… ,<Input_n>:=… ,<Output_1> =>… ,<Output_n> =>… , <Input_output_1> :=… ,<Input_output_n>):=… );
![Page 41: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/41.jpg)
42
• Beispiel Funktionsblock Aufruf
Funktionsblock Aufruf in ST
P_oN2(Axis := MC_Axis001,Enable := BB,Axis =>,Status =>ok2,Busy =>NotReady,Error =>Alarm,ErrorID =>ErrID);
P_oN2(Axis := MC_Axis001,Enable := BB,Axis =>,Status =>ok2,Busy =>NotReady,Error =>Alarm,ErrorID =>ErrID);
KOP:
P_oN2 ist eine Instanz des FunktionsblockMC_Power
![Page 42: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/42.jpg)
43
• Die unbenutzten Ein- und Ausgänge können leergelassen oder gar weggelassen werden beim Aufruf
• Die weggelassenen Parameter werden auf default Werte gesetzt
Beispiel
Funktionsblock Aufruf in ST
p_oN (Axis := MC_Axis000,Enable := AA,Axis =>,Status => ok,Busy =>,Error =>,ErrorID =>);
p_oN (Axis := MC_Axis000,Enable := AA,Axis =>,Status => ok,Busy =>,Error =>,ErrorID =>);
p_oN (Axis := MC_Axis000,Enable := AA,Status => ok);
p_oN (Axis := MC_Axis000,Enable := AA,Status => ok);
![Page 43: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/43.jpg)
44
• Ausgangswerte können auch durch Zugriff auf die entsprechenden Elemente der (Instanz)Struktur ausgelesen werden
Funktionsblock Aufrufe in ST
ok:= p_oN.Status ;ok:= p_oN.Status ;NotReady:= p_oN.Busy ;NotReady:= p_oN.Busy ;
p_oN(Enable:=AA) ;p_oN(Enable:=AA) ;
p_oN (Axis := MC_Axis000,Enable := AA,Axis =>,Status => ok,Busy => NotReady,Error =>,ErrorID =>);
p_oN (Axis := MC_Axis000,Enable := AA,Axis =>,Status => ok,Busy => NotReady,Error =>,ErrorID =>);
![Page 44: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/44.jpg)
45
• Eine Funktion kann “normal” aufgerufen werden, es ist keine Deklaration oder Instanz nötig
Beispiel:
Production_1:=ProductionSpeed(Enable:=TRUE, SetPoint:=45,
Diameter:=345.6);
Production_2:=ProductionSpeed(Enable:=TRUE, SetPoint:=46,
Diameter:=220);
Production_1:=ProductionSpeed(Enable:=TRUE, SetPoint:=45,
Diameter:=345.6);
Production_2:=ProductionSpeed(Enable:=TRUE, SetPoint:=46,
Diameter:=220);
<variable>:= FunctionName(<parameter_1>,…,<parameter_n>)<variable>:= FunctionName(<parameter_1>,…,<parameter_n>)
Funktions Aufruf in ST
![Page 45: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/45.jpg)
46
• Die unbenutzten Eingänge können leergelassen oder weggelassen werden
• Die weggelassenen Parameter werden auf default Werte gesetzt
Beispiel:
Funktions Aufruf in ST
Production_3:= ProductionSpeed(Enable:= ,
Diameter:=345.6);
Production_3:= ProductionSpeed(Enable:= ,
Diameter:=345.6);
Production_3:= ProductionSpeed(Diameter:=345.6);
Production_3:= ProductionSpeed(Diameter:=345.6);
![Page 46: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/46.jpg)
47
<variable>:= <Type> . <Type Element>;<variable>:= <Type> . <Type Element>;
<variable>:= <Type_1> . <Type_2> . <Type_2 Element>;<variable>:= <Type_1> . <Type_2> . <Type_2 Element>;
• Auf die Elemente einer Struktur kann mit dem “.” zugegriffen werden
Strukturen
• Strukturen können verschachtelt werden
Name:= Person.Nachname;Name:= Person.Nachname;
Beispiel:
Vorname:= Person.Kind.Vorname;Vorname:= Person.Kind.Vorname;
Beispiel:
![Page 47: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/47.jpg)
48
Beispiel:
Motor_1.Enable:=TRUE;Motor_1.Setpoint:=459;Motor_1.Value:=0;EncoderValue:= Motor_1.Encoder;Motor_1.Status.StandStill:=TRUE;Motor_1.Status.StateCode:=100;
Motor_1.Enable:=TRUE;Motor_1.Setpoint:=459;Motor_1.Value:=0;EncoderValue:= Motor_1.Encoder;Motor_1.Status.StandStill:=TRUE;Motor_1.Status.StateCode:=100;
Strukturen
![Page 48: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/48.jpg)
49
• Erstelle folgenden Funktionsblock in ST:– Execute Eingang positiv Flanken getriggert– Mit jeder steigenden Flanke am Eingang soll die Ausgangsvariable
„Value“ um 1 erhöht werden bis 5, dann zurücksetzen– Ein Bit Ausgang soll mit jeder Flanke am Eingang „Execute“
alternieren von ON-OFF-ON …– Ein Reset Eingang soll beide Ausgänge zurücksetzen
• Aufruf des Funktionsblockes aus ST Programm und KOP
Übung 7
![Page 49: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/49.jpg)
50
Übung 7 Lösung
![Page 50: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/50.jpg)
51
Funktionsblock Aufruf in ST vs. KOP
![Page 51: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/51.jpg)
52
Vergleich zwischen KOP und ST
Logische Verknüpfung
Bedingte Zuweisung
Zuweisung
![Page 52: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/52.jpg)
53
Vergleich zwischen KOP und ST
Verzweigung
*Die Lock Variable wird hier verwende um das CASE verhalten zu erreichen, das heißt nur ein Zweig pro Zyklus wird bearbeitet.
![Page 53: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/53.jpg)
54
Vergleich zwischen KOP und ST
Flankenerkennung
oder ….
![Page 54: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/54.jpg)
55
Vergleich zwischen KOP und ST
Timer und ZählerDeklaration der FB Instanzen
![Page 55: 1 Strukturierter Text Grundlagen der Programmierung mit Strukturiertem Text](https://reader035.vdocuments.site/reader035/viewer/2022062219/55204d7549795902118c930b/html5/thumbnails/55.jpg)
56