TIA Begrenzt eine FUP-Verzweigung AKKU Inhalte?

Peter Wahlen

Level-3
Beiträge
1.062
Reaktionspunkte
460
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

S7-1200
TIA V15.1 up8
aktuell mit PLC-Sim

habe ich irgendwelche FUP Regeln verletzt?

ein Bild (drei Bilder) sagt mehr als Worte, es geht um die Tastenfarbe der Grundstellungstaste am Panel:

Die Ursprungsversion war ok
1686901460210.png


Dann habe ich die einzelnen move's auf ein ODER gelegt, das gibt aber ein falsches Ergebnis:
1686901612775.png

mit einer Hilfsvariablen geht wieder:
1686901659614.png

Das bedeutet für mich, dass die Verzweigung irgendwas falsch macht.

Ist das eine Fehler oder ein Feature?
 
Wäre schön, wenn man noch nach AWL umschalten könnte. Dann wäre die Abarbeitungsreihenfolge deutlich ersichtlich. Wer weiß das schon genau, was bei FUP wann abgearbeitet wird. Aber ich würde es auch für einen Fehler halten, denn der Move hinter dem "Oder" sollte ja das Letzte Element sen, meint man...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wäre schön, wenn man noch nach AWL umschalten könnte. Dann wäre die Abarbeitungsreihenfolge deutlich ersichtlich. Wer weiß das schon genau, was bei FUP wann abgearbeitet wird. Aber ich würde es auch für einen Fehler halten, denn der Move hinter dem "Oder" sollte ja das Letzte Element sen, meint man...
Ja, das hab ich mir auch schon gedacht. Aktuell überlege ich mal so ein NW in S7-classic mit einer 300er zu testen, vlt. gibt's dann ja noch ein anderes Ergebnis.
 
Auch bei TIA mit 300er und in classic mit 300er, immer das gleiche Ergebnis, der Editor kann zu AWL wandeln, aber nicht mehr zurück, man sieht, dass der Zweig mit der Verzweigung zuerst behandelt wird.
1686907264563.png

1686907338616.png
 
Auch bei TIA mit 300er und in classic mit 300er, immer das gleiche Ergebnis, der Editor kann zu AWL wandeln, aber nicht mehr zurück, ...
An der AWL-Version stört mich persönlich, dass innerhalb der Klammerungen gesprungen wird. Das wäre etwas, was ich mir in meiner aktiven AWL-Zeit nicht erlaubt hätte, allein der Übersichtlichkeit wegen. Vielleicht hapert es daran, dass sich der Editor weigert, in FUP zurück zu übersetzen?
... man sieht, dass der Zweig mit der Verzweigung zuerst behandelt wird.
Das waren noch Zeiten, als man sich auf die AWL-Variante verlassen konnte bezüglich der ReihenFolge, in der die einzelnen Anweisungen abgearbeitet wurden. In dieser Beziehung war mir die FUP-Darstellung nie wirklich geheuer.

Das eigentliche Problem scheint ja zu sein, dass eine (temporäre) Variable im selben Zyklus mit 0 bis 4 verschiedenen Werten beschrieben wird.
Sobald 2 oder mehr Werte pro Zyklus aktiv werden, entscheidet natürlich über das Ergebnis, wer zuletzt überschreibt.
Ich vermute mal, dass die FUP-Variante zwar richtig arbeitet/rechnet, ABER, dass die StatusAnzeige der WirkungsWeise nicht dazu passt und falsch ist, weil sie die angezeigten Werte nicht zum korrekten ZeitPunkt liest?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
An der AWL-Version stört mich persönlich, dass innerhalb der Klammerungen gesprungen wird. Das wäre etwas, was ich mir in meiner aktiven AWL-Zeit nicht erlaubt hätte, allein der Übersichtlichkeit wegen. Vielleicht hapert es daran, dass sich der Editor weigert, in FUP zurück zu übersetzen?

Das waren noch Zeiten, als man sich auf die AWL-Variante verlassen konnte bezüglich der ReihenFolge, in der die einzelnen Anweisungen abgearbeitet wurden. In dieser Beziehung war mir die FUP-Darstellung nie wirklich geheuer.
Stimmt, dies AWL Version ist total unübersichtlich.

Das eigentliche Problem scheint ja zu sein, dass eine (temporäre) Variable im selben Zyklus mit 0 bis 4 verschiedenen Werten beschrieben wird.
Sobald 2 oder mehr Werte pro Zyklus aktiv werden, entscheidet natürlich über das Ergebnis, wer zuletzt überschreibt.
Ich vermute mal, dass die FUP-Variante zwar richtig arbeitet/rechnet, ABER, dass die StatusAnzeige der WirkungsWeise nicht dazu passt und falsch ist, weil sie die angezeigten Werte nicht zum korrekten ZeitPunkt liest?
Stimmt, die tmp-Variable tmp_int wird mit bis zu 4 Werten beschrieben (bei RS bzw. SR-Gliedern ist das ja auch so, dass der letzte gewinnt), aber die vom Panel gelesene Variable Betrieb.Anlag.G_Info_T wird nur an einer Stelle beschrieben.
Ich wollte ja auch nur die lose Verkettung von der 1., funktionierenden Version zusammenfassen, damit man nicht so leicht was verschiebt bzw. einfügt.
 
Ich vermute mal, dass die FUP-Variante zwar richtig arbeitet/rechnet, ABER, dass die StatusAnzeige der WirkungsWeise nicht dazu passt und falsch ist, weil sie die angezeigten Werte nicht zum korrekten ZeitPunkt liest?
Nö, die Statusanzeige wird richtig sein. Das MOVE 0 wird tatsächlich erst nach dem MOVE 1 ausgeführt.

Ich denke, das eigentliche Problem wird sein, daß da künstlich mehrere unabhängige FUP-Anweisungen bzw. VKE-Pfade in ein Netzwerk gequetscht werden, was so (ohne das OR) in Step7 classic nicht möglich war und erst in TIA eingeführt wurde. Solange die VKE-Pfade nicht miteinander verbunden werden, ist die Abarbeitungs-Reihenfolge noch eindeutig.
Durch das Verbinden der unabhängigen FUP-Anweisungen mit der OR-Verknüpfung erhält der FUP-Compiler anscheinend die Möglichkeit, die einzelnen Operanden (bzw. Zwischenergebnisse der Vor-Operationen) des OR in der Abarbeitungsreihenfolge zu tauschen umzustellen, was ja für eine OR-Verknüpfung zulässig und unerheblich ist. Anscheinend beginnt die FUP-Übersetzung mit der am weitesten links stehenden Anweisung? (bei KOP wird von oben nach unten übersetzt). Kann die problematische FUP-Darstellung mit dem OR eigentlich nach KOP (und zurück) geändert werden?

Bei der problematischen FUP-Darstellung mit dem OR darf man eigentlich noch froh sein, daß die 3 OR-Zweige nach dem immer ausgeführten MOVE 0 überhaupt noch ausgeführt werden. Bei Codesys würde der FUP-Compiler so optimieren, daß nach dem ersten TRUE am OR die restlichen Anweisungen gar nicht mehr ausgeführt werden.

Harald
 
Zuletzt bearbeitet:
Kann die problematische FUP-Darstellung mit dem OR eigentlich nach KOP (und zurück) geändert werden?
In KOP kann die Schaltung (Verzweigungszweig) nicht angelegt werden und wie schon geschrieben, bei TIA mit 300er und classic mit 300er kann zu AWL gewandelt werden, aber nicht mehr zurück.

Vlt. mache ich bei KOP ja etwas falsch, ich bin mit KOP noch nie richtig klargekommen.
Ich komme aus der Digitaltechnik (AEG Logistat (die schönen bunten Bausteine) und Simatic C1, da wurde dann z.B. sogar bei der Simatic S3 der AWL Code auf Papier oft zu FUP gewandelt.
In KOP sehe ich nur Reihen und Parallelschaltungen von Kondensatoren, KOP kann ich auch nicht mit einer realen Kontaktverschaltung vergleichen, bei KOP gibt's keine Rückspannung.
Das mit KOP ist meine persönliche Meinung, wer damit klarkommt, kann es ruhig benutzen, bei mit wird sowas umgewandelt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab mir schon in Classic Zeiten angewöhnt die Netzwerke so wie hier im Bild dargestellt zu programmieren,
damit ich die Ablaufreihenfolge besser sehe.
Das geht mit deinem Netzwerk nur in FUP, kleinere NW gehen auch in KOP. Für den Graphischen Aufbau beginne ich mit einem VKE1
( Bit = immer 1)
Ich hoffe ich hab keinen Tippfehler drinn.
Netzwerk_FUP.png
 
Ich hab mir schon in Classic Zeiten angewöhnt die Netzwerke so wie hier im Bild dargestellt zu programmieren,
damit ich die Ablaufreihenfolge besser sehe.
Das geht mit deinem Netzwerk nur in FUP, kleinere NW gehen auch in KOP. Für den Graphischen Aufbau beginne ich mit einem VKE1
( Bit = immer 1)
Das hab ich auch schon oft so gemacht, hat halt den Vorteil zu meiner 1. funktionieren losen Verkettung den Vorteil, dass man nicht so leicht was verschieben oder einfügen kann, nur bei der nicht funktionierenden Version habe ich gedacht, dass ich die Zusammenfassung auch ausnutzen kann, was leider nicht funktioniert hat.

PS: du hast keine Tippfehler drinn, sonst hätte ich die auch behalten.
 
Zurück
Oben