Diskussion:Strukturierter Text
Beispiele
[Quelltext bearbeiten]Ich würde die Beispiele, die im aktuellen Artikel genannt sind etwas überarbeiten. Meines Erachtens sind die Beispiele mit viel Inhalt gefüllt, der nicht notwendig ist und das ganze Beispiel somit unübersichtlich macht. Das aktuelle Beispiel zu if Anweisung würde ich folgendermaßen umbauen:
IF Bedingung THEN
Anweisung1;
ELSIF Bedingung2
Anweisung2;
ELSE
Anweisung3;
END_IF
Was meint ihr dazu? Ich würde es als Verbessung empfinden, wenn die Beispiele übersichtlicher und allgemeiner dargestellt werden. --DerTechniker (Diskussion) 14:12, 29. Apr. 2017 (CEST)
- Habe nun einmal das erste Beispiel abgändert, werden die anderen in den nächsten Tagen vereinfachen und vereinheitlichen. Auch würde ich die Überschriften "Beispiel1" , "Beisspiel 2" ,.... gerne abändern. Ich würde vorschlagen: Ähnlich wie bei anderen Programiersprachen einen Abschnitt mit der Überschrieft "Sprachelemente von Strukturiertem Text" erstellen. Als Unterüberschriften würde es dann ein "IF-Statement" , CASE-Statement",... geben. Zu jedem Sprachelement gibt es dann eine kurze Beschreibung und ein Codebeispiel. Der aktuelle Artikel sieht nämlich nur wie eine Beispielsammlung aus... --DerTechniker (Diskussion) 22:04, 3. Mai 2017 (CEST)
- Werde nun noch zwei Sprachelemente hinzufügen, die bisher nicht im Artikel waren: Zuweisung und POINTER Oder spricht etwas dagegen? --DerTechniker (Diskussion) 16:35, 10. Mai 2017 (CEST)
END_ Statements mit ; abschließen?
[Quelltext bearbeiten]An allen Codebeispielen wurde zum Abschluss eines END_ Statements ein ";" hinzugefügt!
@Schnatterfleck:: Im Strukturierten Text ist ein END_ Statement mit und ohne ";" möglich. Alle Steuerungen die ich bis jetzt programmiert habe funktionieren ohne ein ; am Ende eines END_ Statements. Hast du andere Erfahrungen gemacht? Oder was veranlasst dich ein END_ Statement ohne ; als Syntaxfehler zu bezeichnen?
Bemerkung: Da beide Varianten zulässig sind, ist es mir egal welche im Artikel bei den Beispielen verwendet wird. Mich interessiert nur, warum die Variante ohne ; als Syntaxfehler bzeichnet wird! --DerTechniker (Diskussion) 20:26, 18. Jun. 2017 (CEST)
- @DerTechniker:: Gerade nochmal probiert: Ein aktuelles Siemens TIA-Portal wirft mir beim Übersetzen eine Fehlermeldung, wenn hinter einem END_IF kein Semikolon steht. Also zumindest die Steuerungen eines Hersteller scheinen mit einem fehlenden Semikolon an der Stelle nicht klar zu kommen.
- --Schnatterfleck (Diskussion) 06:37, 31. Aug. 2017 (CEST)
- Vielen Dank für die Info, werde es bei Gelegenheit einmal im TIA Portal ausprobieren. Bei Codesys, sowie Twincat funktioniert es ohne Semikolon!--DerTechniker (Diskussion) 14:14, 3. Sep. 2017 (CEST)
Quelle 1
[Quelltext bearbeiten]Quelle 1 ist als Link nicht mehr vorhanden.
Keine Unterscheidung von Groß- und Kleinschreibung bei Schlüsselworten
[Quelltext bearbeiten]Meine IDE (eine recht frühe Codesys-Implementierung) schreibt Schlüsselworte automatisch in Großbuchstaben. Wenn ich Text mit dem Texteditor eingebe und das nicht mache, bekomme ich einen Syntax-Fehler: "Schlüsselworte müssen groß geschrieben werden". Was ist denn nun falsch? Dieser Satz in Wikipedia oder meine Implementierung? Variablen sind allerdings "case insensitive". --188.97.43.67 10:37, 6. Aug. 2021 (CEST)
- Hallo, ich hab es gerade in einer aktuellen Version getestet, dort lässt sich folgendes fehlerfrei übersetzen und ausführen
IF TRUE THeN ; end_if
- Laut Standard ist ST nicht Casesensitive daher ist es ein Implementierungsfehler, wenn dadurch ein Fehler erzeugt wird
- -- JE - Diskussion - Bewertung -- 11:45, 6. Aug. 2021 (CEST)
While und Repeat Schleifen
[Quelltext bearbeiten]Diese Schleifen sollte man als SPS-Programmierer aber nur in Ausnahmefällen und dann auch nur mit größter Vorsicht einsetzen. Die meisten SPS verfügen ja über einen Watchdog. Wenn die Abarbeitung dieser Schleife zu lange dauert, schlägt der unweigerlich zu. Eine Anweisung wie WHILE NOT Eingang_1 DO .. geht also in 99,9% aller Fälle schief. Da ist vielleicht eine Warnung angebracht? --188.97.43.67 10:58, 6. Aug. 2021 (CEST)