Step 7 Energiezähler Peaks herausfiltern (AWL)

Thixor

Level-1
Beiträge
32
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag liebes SPS Forum,

So nun muss ich mich auch mal melden :) und zwar stehe ich vor folgendem Problem:

Programm: Step 7
Sprache: AWL
Steuerung: S7-300
WinCC: TIA14


Auf einer Maschine wurde ein Energiezähler Programmiert welcher den Luftdruck via analogen eingang misst und verarbeitet (was auch wunderbar funktioniert)
Auf der anzeige gibt es einen:
Aktueller Wert
Maximaler Wert

Der Aktuelle Wert wird alle Sekunde gemessen und angezeigt
Der Maximale Wert wird nur dan Aktuallisiert wenn der Aktuelle Wert über dem Maximalen ist.

Nun ist jedoch das Problem das beim umschalten des Modus der Luftdruck kurzzeitig <1sek auf einen ziemlich hohen wert steigt, welcher natürlich in folge der Max.Wert übernimmt und dort dan auch bleibt bis dieser geresetet wird.

Zu meiner Theoretischen Lösung:
1.) vergleich aktueller Wert mit max.Wert
2.) wenn min.Wert grösser
3.) warte 1sekunde
4.) Wenn min immer noch grösser schreibe den Wert in Max.Wert hinein

Momentan sieht dies so aus
// max flow processing
L #ActualFlowRate
L #MaxFlowRate
>I
SPBN ne11

//Warte 1 Sekunde
SET
L S5T#10S
SA "T99"


U "T99"
= M 3333.0
CLR


//Nochmals vergleichen
L #ActFlowRate
L #MaxFlowRate
>I
SPBN ne04
TAK
T #MaxFlowRate

ne11: NOP 0
ne04: NOP 0


Leider ist mein wissen über AWL ziemlich begrenzt sagen wir eine Woche alt:)
Leider habe ich das verständniss nicht um einen Timer zu programmieren welcher mir den Wert nach 1 Sekunde nochmals überprüft
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Onkel Dagobert danke für die schnelle Antwort, jedoch müsstest du mir dies ein wenig genauer erklären wie diese " verzögerung" zustande kommt
 
Gute Idee das könnte relative einfach sein weill die Umschaltung über Tasten läuft welche auf den eingängen der SPS liegen :) danke werde dies morgen mal testen
Manchmal ist man einfach zu fest eingefahren und sieht die einfachen sachen nicht mehr :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auf einer Maschine wurde ein Energiezähler Programmiert welcher den Luftdruck via analogen eingang misst und verarbeitet (was auch wunderbar funktioniert)
...
Nun ist jedoch das Problem das beim umschalten des Modus der Luftdruck kurzzeitig <1sek auf einen ziemlich hohen wert steigt, welcher natürlich in folge der Max.Wert übernimmt und dort dan auch bleibt bis dieser geresetet wird.
Was hat der Luftdruck mit der Energie zu tun? Das Stichwort "FlowRate" deutet an, dass eigentlich eine DruckDifferenz gemessen werden muss.
Wenn nur 1 Druckwert gemessen wird, dürfte dieser umso grösser sein, je weniger "Flow" stattfindet. Kann es sein, dass dies beim Umschalten des Modus der Fall ist? Dass der Druckwert zwar einen ungewöhnlich hohen Wert erreicht, dies aber gar nicht einer hohen Energie entspricht?
Du sagst, die Spitzen treten beim Umschalten des Modus auf. Wie wär's, wenn Du das Kriterium ModusUmschaltung für eine vorübergehende Unterdrückung der MaximumsErmittlung nutzt.
Eine MaximumsErmittlung, die dafür sorgt, dass MaximalWerte generell ausgeblendet werden, erscheint mir wenig sinnvoll.
 
Was hat der Luftdruck mit der Energie zu tun? Das Stichwort "FlowRate" deutet an, dass eigentlich eine DruckDifferenz gemessen werden muss.
Wenn nur 1 Druckwert gemessen wird, dürfte dieser umso grösser sein, je weniger "Flow" stattfindet. Kann es sein, dass dies beim Umschalten des Modus der Fall ist? Dass der Druckwert zwar einen ungewöhnlich hohen Wert erreicht, dies aber gar nicht einer hohen Energie entspricht?
Du sagst, die Spitzen treten beim Umschalten des Modus auf. Wie wär's, wenn Du das Kriterium ModusUmschaltung für eine vorübergehende Unterdrückung der MaximumsErmittlung nutzt.
Eine MaximumsErmittlung, die dafür sorgt, dass MaximalWerte generell ausgeblendet werden, erscheint mir wenig sinnvoll.

Oh da habe ich mich wohl ein wenig falsch ausgedrückt es wird nicht der Luftdruck gemessen sondern der Durchfluss (mit einem Durchflusssensor):ROFLMAO: Dies mit dem unterdrücken werde ich eben heute mal ausprobieren, so wie dein vorredner diese idee auch schon hatte :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du machst deinen Vergleich so wie gehabt und startest damit eine Einschaltverzögerung (SE). Der Timer (SE) wird erst high, wenn der Vergleich länger als die vorgegebene Zeit true liefert.

ok höhrt sich auch nach einer lösung an werden die beiden mal ausprobieren :) vielen Dank Community ich melde mich bei weiteren Problemen
 
Code:
[COLOR=#333333][FONT=Verdana]L #ActualFlowRate
L #MaxFlowRate
>I
//Warte 1 Sekunde
L S5T#1S
SE "T99"[/FONT][/COLOR][COLOR=#333333][FONT=Verdana]
[/FONT][/COLOR]
[COLOR=#333333][FONT=Verdana]U "T99"[/FONT][/COLOR]
[COLOR=#333333][FONT=Verdana]SPBN ne04[/FONT][/COLOR][COLOR=#333333][FONT=Verdana]
[/FONT][/COLOR][COLOR=#333333][FONT=Verdana]L #ActFlowRate
T #MaxFlowRate
[/FONT][/COLOR][COLOR=#333333][FONT=Verdana]ne04: NOP 0[/FONT][/COLOR]
 
Hallo JoopB Vielen dank für die Auflösung ich hätte es fast gehabt

[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]// max flow processing
FR "T99"[/FONT]
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif] U(
L #ActFlowRate
L #MaxFlowRate
>I
)
L S5T#500MS[/FONT]
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif] SE "T99"
SPBN ne04
L #ActFlowRate
T #MaxFlowRate
ne04: NOP 0
R "T99"

XD Dofes AWL :) vielen vielen dank funktioniert jetzt
[/FONT]
 
Ahh alles klaar dieses FR T99 steht halt so in den beschreibungen. Ist das richtig das der Timer nicht zurückgesetzt werden muss da er sowiso immer wieder von vorne anfängt zu laufen und bei einem Stopp während dem laufen auch wieder an den anfang geht?

das U T99 braucht es dies um den ausgang weiterzuschalten?
 
Zuletzt bearbeitet:
Hier wenn ich das mach in FUP oder KOP und wie dass automatisch umgewandelt wurde in AWL.

Edit: Ja wenn T99 nicht abgelaufen ist wurde hinten U T99 die sprunge gemacht.
 

Anhänge

  • 8-4-fup.JPG
    8-4-fup.JPG
    52,1 KB · Aufrufe: 10
  • 8-4-kop.JPG
    8-4-kop.JPG
    54,5 KB · Aufrufe: 9
  • 8-4-awl.JPG
    8-4-awl.JPG
    44,7 KB · Aufrufe: 10
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier wenn ich das mach in FUP oder KOP und wie dass automatisch umgewandelt wurde in AWL.

Edit: Ja wenn T99 nicht abgelaufen ist wurde hinten U T99 die sprunge gemacht.


Das mit dem umwandeln hab ich auch versucht hat etwa ähnlich ausgesehen, villeicht habe ich mich auch vertippt vielen dank :)

Werde das Thema nun schliessen
 
... wie dein vorredner diese idee auch schon hatte
Das passiert immer wieder, wenn hier mehrere Antworter gleichzeitig am Werk sind. Haralds Antwort war für mich seltsamerweise eine ganze Weile, nachdem ich meine abgeschickt hatte, noch nicht sichtbar ...

Der erste und letzte zeile Ihre code konte Sie auch noch entfernen. Der sind total uberflussig
Mit den Timern kommt man viel besser klar, wenn man die Befehle Freigeben und Rücksetzen gar nicht benutzt, finde ich. Wenn sie aber trotzdem im Programm benutzt werden, wäre ich ganz vorsichtig mit der Aussage "sie sind überflüssig" - jedenfalls in der Bedeutung "kann man bedenkenlos weglassen" - sie könnten nämlich auch ganz gewaltig stören oder aus irgendwelchen Gründen beabsichtigt und sinnvoll sein.
 
Zurück
Oben