-> Hier kostenlos registrieren
Hallo zusammen,
vorab…. danke an all diejenigen, die sich mit meinem Anliegen beschäftigen!!! Tausend DANK!!
Ich habe bereits nach einer Lösung im Internet, besonders hier in unserem Forum geschaut, allerdings nichts gefunden, was mir direkt weiterhelfen konnte.
Wie ihr aus dem Betreff entnehmen könnt habe ich ein Problem mit der Ermittlung eines Maximalwertes, der über einen bestimmten Zeitraum bzw innerhalb eines bestimmten Ereignisses ermittelt werden soll. Anschließend soll dieser Max- Wert in einem DB gespeichert werden.
Diese ganze Prozedur soll sich beliebig oft (zB.: 100 Mal ) wiederholen um eine Optimierung an einer Anlage vornehmen zu können.
Der Wert kommt von einem Analogsensor, der an einem Linearzylinder den verfahrenen Weg misst.
Beim Überschreiten eines bestimmten Messwerten ( des Max- Wertes ) weiß die Anlage, dass ein Teil richtig aufgepresst wurde.
Folgende Überlegung zur Ermittlung und zum Mitloggen des Maximalwertes:
…. Ich hoffe ihr könnt damit etwas anfangen ;-)
U "Starte_Messung" // Startsignal aus der Schrittkette... dauert nur kurz an
FP #FP_merker // Flankenimpuls
SPBN mk1 // Springe bedingt bei VKE=0 nach mk1
L 0 // lade 0
T #max_wert_temp // und schreibe diese in #max_wert_temp
SPB mk2 // springe bedingt bei VKE=1 nach mk2
mk1: L #PEW_IN // akt. Analogwert laden
L #max_wert_temp // vorherigen Analogwert laden
>I // Vergleiche auf >R
SPBN mk2 // Springe wenn Akt. Wert kleiner // erneut akt. Analogwret laden
TAK // tausche Akku 2 mit Akku 1 / Wert bereitstellen
T #max_wert_temp // vorherigen Analogwert mit akt. Wert überschreibn
mk2: NOP 1
U "Ende_Messung" // wenn Maximalschwellwertmessung beendet
SPBN mk3 // springe wenn Messung noch andauert
L #DBNR_IN // DB- Nummer über INPUT einlesen
T #Nr_DB // transferieren in TEMP
AUF DB [#Nr_DB] // Datenbaustein mit DB-Nummer öffnen
L P#0.0 // Zeigeradresse generieren
T #zeiger // Adresse in "#zeiger"- transferieren
L #max_wert_temp // lade den Maximalmesswert
T DBB [#zeiger] // transferiere Wert in DB an Zeigeradresse
L #zeiger // lade erneut Zeiger
L P#2.0 // lade Zeiger mit neuer Adresse
+D // beide Zeigeradressen addieren
T #zeiger // und in Zeiger speichern
L 0 // lade 0
T #max_wert_temp // und schreibe diese in #max_wert_temp.... wird auch schon im NW1 gemacht
mk3: NOP 1
Danke !!!!!
Gruß
Rafael
vorab…. danke an all diejenigen, die sich mit meinem Anliegen beschäftigen!!! Tausend DANK!!
Ich habe bereits nach einer Lösung im Internet, besonders hier in unserem Forum geschaut, allerdings nichts gefunden, was mir direkt weiterhelfen konnte.
Wie ihr aus dem Betreff entnehmen könnt habe ich ein Problem mit der Ermittlung eines Maximalwertes, der über einen bestimmten Zeitraum bzw innerhalb eines bestimmten Ereignisses ermittelt werden soll. Anschließend soll dieser Max- Wert in einem DB gespeichert werden.
Diese ganze Prozedur soll sich beliebig oft (zB.: 100 Mal ) wiederholen um eine Optimierung an einer Anlage vornehmen zu können.
Der Wert kommt von einem Analogsensor, der an einem Linearzylinder den verfahrenen Weg misst.
Beim Überschreiten eines bestimmten Messwerten ( des Max- Wertes ) weiß die Anlage, dass ein Teil richtig aufgepresst wurde.
Folgende Überlegung zur Ermittlung und zum Mitloggen des Maximalwertes:
…. Ich hoffe ihr könnt damit etwas anfangen ;-)
U "Starte_Messung" // Startsignal aus der Schrittkette... dauert nur kurz an
FP #FP_merker // Flankenimpuls
SPBN mk1 // Springe bedingt bei VKE=0 nach mk1
L 0 // lade 0
T #max_wert_temp // und schreibe diese in #max_wert_temp
SPB mk2 // springe bedingt bei VKE=1 nach mk2
mk1: L #PEW_IN // akt. Analogwert laden
L #max_wert_temp // vorherigen Analogwert laden
>I // Vergleiche auf >R
SPBN mk2 // Springe wenn Akt. Wert kleiner // erneut akt. Analogwret laden
TAK // tausche Akku 2 mit Akku 1 / Wert bereitstellen
T #max_wert_temp // vorherigen Analogwert mit akt. Wert überschreibn
mk2: NOP 1
U "Ende_Messung" // wenn Maximalschwellwertmessung beendet
SPBN mk3 // springe wenn Messung noch andauert
L #DBNR_IN // DB- Nummer über INPUT einlesen
T #Nr_DB // transferieren in TEMP
AUF DB [#Nr_DB] // Datenbaustein mit DB-Nummer öffnen
L P#0.0 // Zeigeradresse generieren
T #zeiger // Adresse in "#zeiger"- transferieren
L #max_wert_temp // lade den Maximalmesswert
T DBB [#zeiger] // transferiere Wert in DB an Zeigeradresse
L #zeiger // lade erneut Zeiger
L P#2.0 // lade Zeiger mit neuer Adresse
+D // beide Zeigeradressen addieren
T #zeiger // und in Zeiger speichern
L 0 // lade 0
T #max_wert_temp // und schreibe diese in #max_wert_temp.... wird auch schon im NW1 gemacht
mk3: NOP 1
Danke !!!!!
Gruß
Rafael