TIA SCL lernen

Kehrer

Level-2
Beiträge
439
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.
Versuche gerade von FUP auf SCL umzustellen.
Mein Beispiel ist doch falsch oder?
1648900594515.png 1648900776580.png
oder wie wäre es richtig?
 

Anhänge

  • 1648900625435.png
    1648900625435.png
    9,8 KB · Aufrufe: 29
Keine if Else Anweisung verwenden.
If ... then M8.0 := true end_if
If ... then M8.0 := false end_if
Syntax beachten. Im obigen Beispiel hab ich das nicht beachtet.
Warum SR Bausteine nicht in FUP/KOP machen?
Das kann Siemens doch gut mit den scl Netzwerken in fup kop.
Oder du tauchst die beiden if Anweisungen. Im Moment hast du ein RS-Glied programmiert. Du willst aber ein SR-Glied.
Mir persönlich gefällt die Lösung mit 2 if ohne Schachtel besser. Ist einfacher für mich
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Reset am SR ist dominant, demzufolge wäre das dann:
Code:
IF "Lichtschranke 1" OR "Lichtschranke 2" THEN
    "Teilabwurf nicht gesehen" := FALSE;
ELSIF NOT bTeilabwurfgesehen" THEN
     "Teilabwurf nicht gesehen" := TRUE;
END_IF;

Ich würde aber generell auf Leerzeichen in Tags verzichten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
SCL lernen ist eine löbliche Absicht. Aber warum willst Du Logik-Verknüpfungen von FUP nach SCL umstellen? FUP-Logik ist viel schneller zweifelsfrei zu verstehen als SCL-Code, SCL-Code läßt sich viel schlechter beobachten als FUP, und FUP verhindert automatisch eine Menge Fehler die man unversehens in SCL machen kann, wie unvollständige Logik, falsche Klammersetzung, verschiedene Zielvariablen in den THEN- und ELSE-Zweigen, oder nichtbeachten von Vorrangregeln und mehr...
Für jede Aufgabe soll man das am besten geeignete Werkzeug verwenden. Und nicht das, was gerade vermeintlich in Mode ist.

Ich würde ebenfalls auf Leerzeichen in Tagnamen verzichten. Nicht daß man sich noch an sowas gewöhnt. In anderen seriösen Programmiersprachen sind Leerzeichen in Variablennamen nicht zulässig.

Harald
 
Zur Übersicht ist es manchmal besser in einer If..Then..Else zweig
die Verknüpfungen untereinander zu schreiben damit es in der Diagnose
übersichtlicher ist.
Gut ist es wenn du mit REGION arbeitest und sehr viel Kommentare nutzt.
Beispiel Code entspricht ist nur zur Veranschaulichung.
Zu den Klammern würde Harald jetzt sagen „Angstklammern“, wenn
es der Übersicht dient nutze Sie ruhig.

Objective-C:
// Ein Verknüpfen
tmpBool := "Irgendwas1"
AND "Irgendwas2"
AND("Lichtschranke1"
OR "Lichtschranke2");

// Ein Ausführen
IF tmpBool Then
    "TeilabwurfNichtGesehen" := TRUE;
END_IF;

// Aus Verknüpfen
tmBool := NOT bTeilabwurfGesehen"
OR "WasAnderes1"
OR "WasAnderes2"
OR ("Istwert" > "Sollwert");

// Aus Ausführen
If tmpBool THEN
     "TeilabwurfNichtGesehen" := FALSE;
END_IF;
 
Der Reset am SR ist dominant, demzufolge wäre das dann:
Code:
IF "Lichtschranke 1" OR "Lichtschranke 2" THEN
    "Teilabwurf nicht gesehen" := FALSE;
ELSIF NOT bTeilabwurfgesehen" THEN
     "Teilabwurf nicht gesehen" := TRUE;
END_IF;
Wobei wenn man es genau nimmt und die Funktion aus FUP 1:1 in SCL nachbilden möchte, hier kein ELSIF verwenden darf, sondern ganz einfach zwei normale IF/THEN hintereinander, mit der Dominanz an zweiter Stelle.

Ein FUP SR/RS ist nämlich nicht Thread-Sicher wenn auf die Variable z.B. in einem höherprioren OB oder bei den 1200/1500 über Kommunikation zugegriffen wird. Man will doch schließlich in SCL die gleichen Effekte haben wie vorher.

Die IF/THEN/ELSIF Variante lässt sich in FUP/AWL nur mit Sprüngen umsetzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
SCL lernen ist eine löbliche Absicht. Aber warum willst Du Logik-Verknüpfungen von FUP nach SCL umstellen? FUP-Logik ist viel schneller zweifelsfrei zu verstehen als SCL-Code, SCL-Code läßt sich viel schlechter beobachten als FUP, und FUP verhindert automatisch eine Menge Fehler die man unversehens in SCL machen kann, wie unvollständige Logik, falsche Klammersetzung, verschiedene Zielvariablen in den THEN- und ELSE-Zweigen, oder nichtbeachten von Vorrangregeln und mehr...
Für jede Aufgabe soll man das am besten geeignete Werkzeug verwenden. Und nicht das, was gerade vermeintlich in Mode ist.
weil das ganze Projekt in SCL geschrieben wurde und ich möchte es erweitern.
Im Onlinekurs habe ich auch gelernt dass SCL besser bei Ablaufsteuerungen o.ä. geeignet ist und FUP/KOP für die "normale" Programmierung
 
Wir versuchen immer wo möglich in KOP zu programmieren, damit der Schichtelektriker aus der Instandhaltung auch die Möglichkeit hat, einen Fehler so schnell wie möglich zu finden.
Wenn in KOP programmiert, kann es jeder Darstellen wie er möchte, außer halt in SCL.
Denn ungeplanter Stillstand mag keiner gerne.

Frage
Wo ist der der Unterschied zwischen "Ablaufsteuerungen" und "normaler Programmierung"?
Den hab ich in den letzten 40 Arbeitsjahren noch nicht gefunden.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das hängt meiner Erfahrung nach oft mehr "wollen" als am "können".
Wenn man unter Zeitdruck in einem fremden Programm suchen muß, warum eine Anlage nicht mehr weiterläuft, dann geht das einfach viel schneller, wenn die Logik-Verknüpfungen in KOP/FUP programmiert sind, als wenn man sich in SCL durch zig IF..THEN..ELSE hangeln muß. Auch wenn "Können" und "Wollen" 100% vorhanden sind.

Harald
 
Wenn man unter Zeitdruck in einem fremden Programm suchen muß, warum eine Anlage nicht mehr weiterläuft, dann geht das einfach viel schneller, wenn die Logik-Verknüpfungen in KOP/FUP programmiert sind, als wenn man sich in SCL durch zig IF..THEN..ELSE hangeln muß. Auch wenn "Können" und "Wollen" 100% vorhanden sind.

Harald
Ich würde das nicht pauschalisieren. Ich persönlich tue mir mit KOP/FUP deutlich schwerer als mit AWL/SCL. Es ist wohl eher eine Frage der Gewohnheit und des eigenen Nutzungsverhalten.
 
Nimm eine Bildschirmseite voll SCL-Code und eine Bildschirmseite mit einem FUP/KOP-Netzwerk. Bei FUP/KOP siehst Du in 3 Sekunden warum der Ausgang nicht "grün" ist. Wenn Du SCL "gewöhnt" bist, siehst Du das auch in 3 Sekunden??

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nimm eine Bildschirmseite voll SCL-Code und eine Bildschirmseite mit einem FUP/KOP-Netzwerk
Eine Bildschirmseite voll SCL erhält mehr Programmcode als eine Bildschirmseite FUP/KOP.
Daher brauche ich auch nicht eine ganze Seite SCL Code anschauen sondern nur einen Teil davon.

Wenn Du SCL "gewöhnt" bist, siehst Du das auch in 3 Sekunden??
Warum sollte ich dort großartig länger brauchen?
Ich kann mich nur wiederholen, AWL/SCL ist für mich einfacher zu lesen.
Das kann aber natürlich bei jedem anders sein.
 
Ich grätsch hier mal als Moderator rein:

Liebe Kollegen lasst bitte die Glaubenskriege KOP - FUP - AWL - SCL

Jede Sprache hat ihre Berechtigung, Vor- und Nachteile.

Gruß
Blockmove
 
Zurück
Oben