Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Strukturierter Text.

Ähnliche Präsentationen


Präsentation zum Thema: "Strukturierter Text."—  Präsentation transkript:

1 Strukturierter Text

2 in der SPS-Welt nicht so bekannt (neueste Sprache)
Strukturierter Text textuelle Sprache Hochsprache PASCAL-ähnlich in der SPS-Welt nicht so bekannt (neueste Sprache) von allen Sprachen am besten geeignet zur bedingten Programmierung und zum Programmieren von Schleifen. Strukturierter Text Die Automatisierer kommen traditionell oft aus der Elektrotechnik und der Digitaltechnik und fühlen sich in den klassischen SPS-Sprachen KOP und FBS recht wohl. Ihnen macht z.T. schon die Notwendigkeit der Datentypisierung und -deklaration zu schaffen, so daß Hochsprachenelemente wie Schleifen großes Mißtrauen hervorrufen, sind sie in der Arbeitweise der SPS ja auch nicht ganz unproblematisch. Hochschulabgänger jedoch sind in den Sprachelementen des ST zuhause und den Umgang mit ähnlichen Sprachen wie PASCAL und C gewohnt. Ihnen wiederum macht eher die zyklische Programmabarbeitung der SPS zu schaffen; ebenso die in der SPS-Technik selbstverständliche Online-Änderung und Diagnose.

3 Arithmetische Operatoren
AWL,FBS,KOP ST ADD + SUB - MUL * DIV / MOD Arbeiten auf ANY_NUM Arithmetische Operatoren Sowohl die Operatoren für numerische Variablen als auch die auf der nächsten Seite beschriebenen Vergleichsoperatoren geben sich, was den Schreibaufwand angeht, nicht viel. Deren Anwendung ist reine Gewöhnungssache. Durch die Zusammenfassung mehrerer Ausdrücke in einer Befehlszeile wirken die Programmzeilen in ST allerdings immer etwas kompakter als die entsprechenden Umsetzungen in AWL, bei der ja jedes Statement eine neue Zeile belegt. Persönliche Anmerkungen:

4 Vergleichsoperatoren
AWL,FBS,KOP ST EQ = NE <> GE >= GT > LE <= LT < Arbeiten auf ANY Vergleichsoperatoren Persönliche Anmerkungen:

5 Hierarchie der Operatoren
AWL LD I1 AND I2 OR (I3 AND I4 ) ST Ergebnis ST Ergebnis:= I1 AND I2 OR I3 AND I4; optional Ergebnis:= (I1 AND I2) OR (I3 AND I4); Hierarchie der Operatoren Im Strukturierten Text gelten die vielleicht noch aus der Grundschule für die Grundrechenarten bekannten Regeln: Punktrechnung vor Strichrechnung“ und „UND-Verknüpfung vor ODER-Verknüpfung“. Auf diese Weise lassen sich sehr kompakte Ausdrücke erstellen, die dennoch wesentlich übersichtlicher bleiben als die Entsprechungen in der Anweisungsliste. Persönliche Anmerkungen:

6 Verzweigungen I AWL IF variable > 100 THEN a:=a-1;
LD variable GT 100 JMPC groesser EQ 100 JMPC gleich LD a ADD 1 ST a JMP END groesser: SUB 1 gleich: ST ergebnis END: AWL IF variable > 100 THEN a:=a-1; ELSIF variable = 100 THEN ergebnis:=a; ELSE a:=a+1; END_IF; ST Verzweigungen I Bei den Verzweigungen kann die Hochsprache ST ihre Stärken ausspielen. Sowohl bei den IF THEN ELSE-Konstrukten als auch bei den sehr mächtigen CASE-Anweisungen lassen sich auch komplexe Auswahlkriterien schnell und übersichtlich ausdrücken. Persönliche Anmerkungen:

7 Verzweigungen II AWL CASE variable OF 1: a:=a+1; 2,3,4: a:=a+2;
LD variable EQ 1 JMPC fall_1 EQ 2 OR (variable EQ 3 ) EQ 4 JMPC fall_2 LD a ADD 1 ST a JMP END fall_1: fall_2: . AWL CASE variable OF 1: a:=a+1; 2,3,4: a:=a+2; 5..100: a:=a+3; ELSE a:=0; END_CASE; ST Verzweigungen II Die CASE-Anweisung ermöglicht elegante Fallunterscheidungen, die man in AWL oder auch den grafischen Sprachen nur mit Geduld und relativ großem Aufwand nachbilden kann. Persönliche Anmerkungen:

8 feld_a:ARRAY[1..10] OF INT; feld_b:ARRAY[1..10] OF UINT;
Schleifen I FOR VAR feld_a:ARRAY[1..10] OF INT; feld_b:ARRAY[1..10] OF UINT; feld_c:ARRAY[1..10] OF USINT; END_VAR FOR variable := 1 TO 10 DO BY 1 feld_a[variable]:=100; feld_b[variable]:=50; feld_c[variable]:=3; END_FOR; Schleifen I Wie andere Hochsprachen auch bietet ST verschiedene Sprachelemente für die Schleifenprogrammierung; eine Tatsache, die bei SPS-Programmierern zunächst einmal die Alarmglocken läuten läßt. Schleifenprogrammierung bedeutet schließlich, daß innerhalb der ohnehin schleifenförmingen (zyklischen) Programmabarbeitung der SPS eine weitere Schleife abgearbeitet wird, die u.U. verhindert, daß die SPS in ihrem Arbeitsablauf nach angemessener Zeit die E-/A-Signale auffrischt und ihre systeminternen Abläufe abarbeiten kann. In solchen Fällen kann es sein, daß der „Watchdog“ der SPS zuschlägt und die Steuerung anhält. Die FOR-Schleife eignet sich besonders für Initialisierungsaufgaben, die im Normalfall einmal am Programmanfang abgearbeitet werden. Persönliche Bemerkungen:

9 Schleifen II WHILE a <= 100 DO a:=a*2; b:=b+1; c:=c+5; END_WHILE;
Die Zykluszeit-Falle Schleifen II Gerade bei den beiden Schleifenkonstrukten „WHILE DO“ und „REPEAT UNTIL“ ist in der SPS-Programmierung größte Vorsicht geboten. Hier kann, im Gegensatz zur „FOR NEXT“-Schleife, nicht vorhergesagt werden, nach welcher Zeit die Ende-Bedingung für die Schleife erfüllt ist. Persönliche Bemerkungen: REPEAT a:=a+1; b:=b*2; UNTIL a=100 OR b=50 END_REPEAT; REPEAT UNTIL

10 : Zykuszähler mit Schwellenabfrage
Aufgabe Programmierung mit Moeller XSoft : Zykuszähler mit Schwellenabfrage Aufgabenblatt Schreiben Sie ein Programm, das die Anzahl der durchlaufenen Programmzyklen mitzählt und in dem bei Erreichen der Schwellenwerte 100, 200, 300, 400 und 500 jeweils ein Merker auf TRUE gesetzt wird. Bei 600 sollen alle Merker und der Zykluszähler wieder zurückgesetzt werden. Bitte schreiben Sie das Programm in der Sprache ST. Erstellen Sie eine kleine Visualisierung zur Anzeige der Schwellenwerte. A100_ Auf1. ppt

11 Lösung Lösung Programmierung mit Moeller XSoft
Ein Lösungsvorschlag (natürlich läßt sich die Aufgabe auch mit IF THEN lösen): Eine weitere, pfiffige Lösung:

12 : Erweiterung Zykluszähler
Aufgabe Programmierung mit Moeller XSoft : Erweiterung Zykluszähler Aufgabenblatt Erweitern Sie das in Aufgabe A100-WS7 geschriebene Programm zum Zählen der Programmzyklen. Nutzen Sie den Ausgang FRQ2 (2Hz) des globalen Funktionsbausteins „Blinkfrequenzen“, um einen Merker „Overflow“ bei einer Zahl an Programmzyklen von größer 500 zum Blinken zu bringen. Stellen Sie dieses Blinken auch in der zu Übung A100_WS7 erzeugten Visualisierung dar. Viel Erfolg ! Vorschlag für die Visualisierung: 100 200 300 400 >500 Blinkt mit 2Hz

13 Lösung Lösung Programmierung mit Moeller XSoft
Und das können Sie einfach so lösen.... ...oder so:


Herunterladen ppt "Strukturierter Text."

Ähnliche Präsentationen


Google-Anzeigen