TIA Frage zu JMP_LIST

der_iwan

Level-2
Beiträge
138
Reaktionspunkte
15
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Ich muss auf meine alten Tage noch TIA "lernen"
Ich hab da eine Frage: Zu Testzwecken (Übung) habe ich folgendes gemacht.
1706699618363.png

Wenn ich jetzt das MW890 (K) auf 0 Steuer werden beide Netzwerke bearbeitet
Steuer ich auf 1 wird nur NW 14 bearbeitet
Müsste bei Null nicht nur NW 13 und bei 1 NW 14 bearbeitet werden?

der_iwan
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Müsste bei Null nicht nur NW 13 und bei 1 NW 14 bearbeitet werden?
Nein.
"DEST0" ... sind Sprungziele, ab wo die Programmbearbeitung fortgesetzt wird, und nicht welches Netzwerk bearbeitet werden soll.
Willst Du ein Verhalten wie SCL "CASE", dann musst du selber noch Sprünge hinter die Netzwerke zufügen.
 
bei 0 springt er zum Label "Netzwerk 13" und arbeitet von da an weiter.
Wenn du in dem Fall Netzwerk 14 überspringen willst, müsstest du hinter die Anweisung in NW13 einen Absolutsprung ans Ende deiner "Liste" machen.

Das wäre dann quasi das pondon zu einer Case-Anweisung in SCL
 

Hallo der_iwan,​

du muss nach der Sprungliste und nach jeder Sprungbearbeitung den Baustein beenden bzw. zu einem ständig genutzten Programmteil springen.
Anhang anzeigen 74884
Gibt es einen speziellen Grund, warum man Schrittketten überhaupt in FUP schreibt und nicht Graph verwendet?
Kommt das noch aus Classic Zeiten?
Ich finde es einfach um ein Vielfaches komfortabler und übersichtlicher Schrittketten in Grahp zu programmieren als in FUP oder SCL (CASE).

Würde ich nur rein Interessehalber interessieren, warum man das Heutzutage noch so macht oder wo die Vorteile davon liegen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zum glück habe ich bisher noch keine 1200 Steuerung verwendet 🙈
Keine Ahnung, ob das Glück ist.

Ich finde Preis/Leistung bei dem was man da erhält, eigentlich sehr angemessen.
Und es ist IMHO auch okay, dass sie nicht alles vom großen Bruder kann.


Allerdings kenne ich auch S7-1500, wo Schrittketten je nach Kundenkreis in KOP/FUP oder SCL anstatt in Graph erstellt sind.
Die müssen ja letztendlich damit klar kommen (und geben es dann meist auch so vor).
🤷‍♂️
 
Ich finde Preis/Leistung bei dem was man da erhält, eigentlich sehr angemessen.
Und es ist IMHO auch okay, dass sie nicht alles vom großen Bruder kann.
Damit hast du natürlich recht
Allerdings kenne ich auch S7-1500, wo Schrittketten je nach Kundenkreis in KOP/FUP oder SCL anstatt in Graph erstellt sind.
Die müssen ja letztendlich damit klar kommen (und geben es dann meist auch so vor).
🤷‍♂️
Ich hatte auch schon mit Kunden zu tun, die unbedingt FUP Schrittketten haben wollten.
Das lag aber hauptsächlich daran, dass das der Standard war und der immer schon so war.
Das kann man schon so machen, ist meiner Meinung nach aber immer unübersichtlicher und komplexer als mit GRAPH.
Auch für den Service sehe ich nur Vorteile bei einer GAPH Schrittkette.
PS: Wir hatten auch schon Kunden die wir von GRAPH Schritketten überzeugen konnten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Damit hast du natürlich recht

Ich hatte auch schon mit Kunden zu tun, die unbedingt FUP Schrittketten haben wollten.
Das lag aber hauptsächlich daran, dass das der Standard war und der immer schon so war.
Das kann man schon so machen, ist meiner Meinung nach aber immer unübersichtlicher und komplexer als mit GRAPH.
Auch für den Service sehe ich nur Vorteile bei einer GAPH Schrittkette.
PS: Wir hatten auch schon Kunden die wir von GRAPH Schritketten überzeugen konnten.
Es gibt auch namenhafte Hersteller aus dem Automobil-Bereich, die etwas ähnliches vorschreiben. Dort läuft zwar eine GRAPH-Schrittkette, die Transitionen werden aber in einem KOP-FB gebildet und in einem DB abgelegt, aus dem der GRAPH-FB dann liest.
 
Es gibt auch namenhafte Hersteller aus dem Automobil-Bereich, die etwas ähnliches vorschreiben. Dort läuft zwar eine GRAPH-Schrittkette, die Transitionen werden aber in einem KOP-FB gebildet und in einem DB abgelegt, aus dem der GRAPH-FB dann liest.
So etwas habe ich auch schon gesehen.
Da wird dann auch auf der Instanz DB mit schritt.x zugegriffen, um Aktionen auszuführen. (meiner Meinung nach das schlechteste aus beiden Welten)

Gibt es von euch jemanden der lieber in FUP, KOP oder SCL Schrittketten programmiert, wenn er die freie Wahl hat und die Steuerung das hergibt.
 
So etwas habe ich auch schon gesehen.
Da wird dann auch auf der Instanz DB mit schritt.x zugegriffen, um Aktionen auszuführen. (meiner Meinung nach das schlechteste aus beiden Welten)

Gibt es von euch jemanden der lieber in FUP, KOP oder SCL Schrittketten programmiert, wenn er die freie Wahl hat und die Steuerung das hergibt.
SCL oder Graph, alles andere ist mir persönlich zu unübersichtlich. Und auch aus dem Grund, dass ich zB in Twincat auch Sequenzen in ST machen.. also würde sich das einlesen hier leichter machen wenn man aus der anderen Welt kommt, oder eben Graph, weil es super ersichtlich ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt es von euch jemanden der lieber in FUP, KOP oder SCL Schrittketten programmiert, wenn er die freie Wahl hat und die Steuerung das hergibt.

SCL-Fraktion hier.
Ich brauch für vieles die ganzen Zusatzfunktionen der Graph-Bausteine nicht & die Fehlerbehandlung finde ich in SCL einfacher.
Sieht dann für kleinere Anwendungen beispielsweise so aus:
Code:
CASE #sStateM OF
  0: //Standby, init eines neuen Durchlaufs
    ;
    //Start des Ablaufs
    #sStateM := 10;
    //====================================================
  10://Schritt1:
    //Hier Schritt-Aktion schreiben
    
    
    IF Transition = TRUE THEN
      #sStateM := 11;
    END_IF;
    
    IF Fehler THEN
      #sStateM += 9000; //In Fehlerbehandlungsblock springen, indem zum aktuellen Schritt ein Festwert addiert wird
    END_IF;
    
  11: //Schritt 2
    //Hier Schritt-Aktion schreiben
    
    
    IF Transition = TRUE THEN
      #sStateM := 0;
    END_IF;
    
    //====================================================
  9000..9999://Fehlerbehandlungsblock
    CASE #sStateM OF
      9010://Fehlerbehandlung speziell für Schritt1
        ;
      ELSE
        //Fehlerbehandlung für alle anderen Schritte
        ;
    END_CASE;
    
  ELSE
    #sStateM := 0; //Ungültige Stati abfangen, ggf mit Fehlerbehandlung
END_CASE;

Die Zahlen würden bei echtem Code natürlich durch Konstanten ersetzt werden (Querverweise).

So eine Struktur könntest du natürlich auch mit JMP_LIST aufbauen, ausreichend masochismus vorausgesetzt.
Musst halt aufpassen, dich mit den Sprüngen & Labels nicht zu verheddern, speziell bei Änderungen.
Wenn du dich in SCL mit Case verhedderst mault der Compiler dich an, bei KOP/FUP & JMP_LIST lässt er dich machen.

Graph nehme ich nur, wenn ich tatsächlich das ganze Zusatzgeraffel benötige.
(Einzelschritt, Kriterienanalyse, ...)
 
SCL-Fraktion hier.
Ich brauch für vieles die ganzen Zusatzfunktionen der Graph-Bausteine nicht & die Fehlerbehandlung finde ich in SCL einfacher.
Sieht dann für kleinere Anwendungen beispielsweise so aus:

Die Zahlen würden bei echtem Code natürlich durch Konstanten ersetzt werden (Querverweise).

So eine Struktur könntest du natürlich auch mit JMP_LIST aufbauen, ausreichend masochismus vorausgesetzt.
Musst halt aufpassen, dich mit den Sprüngen & Labels nicht zu verheddern, speziell bei Änderungen.
Wenn du dich in SCL mit Case verhedderst mault der Compiler dich an, bei KOP/FUP & JMP_LIST lässt er dich machen.

Graph nehme ich nur, wenn ich tatsächlich das ganze Zusatzgeraffel benötige.
(Einzelschritt, Kriterienanalyse, ...)
So strukturierte Case Schrittketten kenne ich auch.
Die finde ich auch schon deutlich besser als FUP oder KOP.
Die Übersichtlichkeit finde ich aber bei GRAPH noch deutlich besser.
Ich habe leider auch noch keine gute Lösung für Parallelschritte gefunden.
Wie machst du das denn?

SCL oder Graph, alles andere ist mir persönlich zu unübersichtlich. Und auch aus dem Grund, dass ich zB in Twincat auch Sequenzen in ST machen.. also würde sich das einlesen hier leichter machen wenn man aus der anderen Welt kommt, oder eben Graph, weil es super ersichtlich ist.
Ich hatte in letzter Zeit auch etwas mehr mit Beckhoff zu tun und hier ist mir aufgefallen, dass keiner der Kunden, mit denen ich zu tun hatte GRAPH(AS) arbeitet. Die arbeiten alle mit Case Schrittketten ähnlich wie Botimperator.
Gibt es hierfür einen Grund?
 
Ist wahrscheinlich so gewachsen / gewohnt. Ich hab auch noch nie den Beckhoff graphen in einem Projekt gesehen.

In ST können auch Leute daran arbeiten die eher Hochsprachen machen ohne sich umzugewöhnen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In ST können auch Leute daran arbeiten die eher Hochsprachen machen ohne sich umzugewöhnen
Das stimmt, aber sogar mein Chef, der komplett aus der Hochsprache kommt und leichte Abneigungen gegen Siemens hat, musste schon zugeben, dass ihm der GRAPH schon ganz gut gefällt. :ROFLMAO:
 
Ich finde Graph auch schön, es ist ersichtlich was wann passiert ohne dass man dazu Kenntnisse braucht.

Es lässt sich mit Prodiag auch schön am HMI abbilden und so können auch Bediener/Instandhalter nachsehen wo es aktuell klemmt ohne das PG direkt aufklappen zu müssen. Mit sauberen Interlock und Supervision Alarmen kann man hier genug Informationen abbilden um eine gezieltere Aussage zu treffen wo der Fehler liegen könnte und dann kann man direkt entscheiden ob man das PG braucht oder mal wieder nur die Einweglichtschranke am Zaun ins Leere schaut
 
Ich habe leider auch noch keine gute Lösung für Parallelschritte gefunden.
Wie machst du das denn?
Für den seltenen Fall, dass ich wirklich um Paralellschritte nicht drumrum komme wird dann halt doch Graph genutzt ¯\(°_o)/¯
Bei nachträglichen Änderungen notfalls auch zwei Case-Schrittketten, die die aktuelle Schrittnummer der anderen Kette als Transition verwenden.

Dazu sollte ich aber erwähnen, dass ich nur sehr wenig Schrittketten-Technik in meinen Anlagen verwende.
Meine Abläufe bestehen für gewöhnlich aus max. 10-15 Schritten, ohne Verzweigungen.
Nichts bei dem es sich lohnen würde ein Fass aufzumachen.

Die arbeiten alle mit Case Schrittketten ähnlich wie Botimperator.
Gibt es hierfür einen Grund?
Damit lassen sich recht simpel FSM umsetzen ("finite state machine" bzw. "endlicher Zustandsautomat").
Z.B. "Schrittketten" zum Versenden von Daten oder ähnliches, sowas machst du nicht in Graph.
Und für kleinere Abläufe (Tür auf => Material rein => Tür zu) sind solche Konstrukte ebenfalls ausreichend.
 
Zurück
Oben