TIA Altes AWL Programm

Mauricem02

Level-2
Beiträge
17
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin, ich habe auf der Arbeit ein altes AWL Programm bekommen für eine alte Maschine und soll dies jetzt neu aufsetzen in FUP. Da ich in AWL nicht so geübt bin verstehe ich nun eine Passage nicht genau. Kann mir dort einer Weiterhelfen?image.jpg
Es geht um die letzten 4 Zeilen im Programm und zwar:
U M 66.2
L DW 49
SE T 4

Ich verstehe grob was dort passieren soll aber ich weiß nicht wie ich das in FUP umsetzen kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber Obacht! L und T (Lade und Transferiere -Befehle) werden IMMER ausgeführt - ungeachtet des Verknüpfungsergebnisses (VKE) oberhalb!
Aufgrund des Fotos schließe ich auf STEP5...

Bei solchen Sachen am besten vor dem Lade/Transferier-Befehl einen bedingten Sprung einfügen.

...
U M66.2
SPBN >MARKE< // bedingter Sprung bei VKE = 0
L ... // lade irgendwas
T ... // transferiere irgendwohin
SE T4 // Beispiel: Setze einschaltverzöger Timer4
...
>MARKE< // hierher wird bedingt gesprungen
... //weiter im Programm
...
 
Bei solchen Sachen am besten vor dem Lade/Transferier-Befehl einen bedingten Sprung einfügen.
Er hat ja keinen Transferierbefehl und der Ladebefehl vor dem Timer sowie der Timer selbst kann immer ausgeführt werden.
Es ist auch eher unüblich, einen Timeraufruf zu überspringen. Der Timer wird dann nie ein VKE 0 von dem von dir genannten M66.2 mitbekommen.
 
Es geht um die letzten 4 Zeilen im Programm und zwar:
U M 66.2
L DW 49
SE T 4

Ich verstehe grob was dort passieren soll aber ich weiß nicht wie ich das in FUP umsetzen kann.
Das ist eine Einschaltverzögerung. (S7-FUP: S_EVERZ)
Die sieht in S5-FUP etwa so aus:
Code:
            T4
        +--------+
        | |---|0 |
 M22.6--|T     DU|-
  DW49--|TW    DE|-
      --|R      Q|-
        +--------+
Für welche CPU mit welchem Programmiersystem willst du das in FUP umbauen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist eine Einschaltverzögerung. (S7-FUP: S_EVERZ)
Die sieht in S5-FUP etwa so aus:
Code:
            T4
        +--------+
        | |---|0 |
 M22.6--|T     DU|-
  DW49--|TW    DE|-
      --|R      Q|-
        +--------+
Für welche CPU mit welchem Programmiersystem willst du das in FUP umbauen?
Mit einer S7-1200 programmiere mit dem TIA-Portal in FUP
 
Er hat ja keinen Transferierbefehl und der Ladebefehl vor dem Timer sowie der Timer selbst kann immer ausgeführt werden.
Es ist auch eher unüblich, einen Timeraufruf zu überspringen. Der Timer wird dann nie ein VKE 0 von dem von dir genannten M66.2 mitbekommen.
Hier ist das Überspringen von Laden und/oder Transferieren das Thema. Wenn eine Variable/Wert geladen wurde, kann Dir der Wert im AKKU gehörig reinscheixxen. Daher der Sprung über den Ladebefehl, und auch über SE T (damit ist sichergestellt, dass der Timer keinen anderen Wert AUSSER dem DW49 zugewiesen bekommt. Man soll bei Timern nur aufpassen, dass sie nicht direkt in Schrittketten beschrieben werden (S/R/FR), sondern außerhalb der Schritte, sonst kanns zu Problemen kommen.
Schau Dir mal im Status/Beobachten das VKE in diesen Zeilen an, dann wirst Du schon sehen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
U M 66.2
L DW 49
SE T 4
Wenn M66.2 TRUE dann lade Doppelwort 49 (Akku 1 / Akku 2) UND starte Einschaltverzögerung Timer 4, im Doppelwort dürfte die Zeit für die Einschaltverzögerung stehen.
NEIN! Nicht DoppelWort - DatenDoppelWort wäre DD. DW ist DatenWort. Aus Welchem DB das DW gemeint ist, das ist hier nicht ersichtlich.
NEIN! Durch das L DW wird zuerst der Inhalt von Akku1 nach Akku2 kopiert und dann der Inhalt des DW nach Akku1.
Es wird NICHT der Inhalt des DW (teils) nach Akku1 und (teils) nach Akku2 geladen. Auch dann nicht, wenn statt L DW dort L DD stehen würde!
Ansonsten: Ja. Die EinschaltVerzögerung wird mit der positiven Flanke des VKE, also von M66.2, gestartet und dabei wird der Zeitwert aus Akku1 übernommen, der zuvor mit dem Inhalt von DW geladen wurde.
Dies hat schon so funktioniert, als S5 Sprünge noch nicht so richtig konnte. Überspringen ist nicht nur total überflüssig, sondern übel, weil der Befehl SE T nie die positive Flanke des VKE zu sehen bekäme.
 
Zuletzt bearbeitet:
Zurück
Oben