Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Überprüfen ob Wert steigt

  1. #1
    Registriert seit
    22.05.2014
    Beiträge
    9
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo,
    in meinem programm wird zyklisch die geschwindigkeit berechnet, ich möchte nun auch zyklisch berechnen ob die geschwindigkeit im vergeich zum vorigen wert gesunken oder gestiegen ist. hat jemand eine idee, kriegs irgendwie nicht hin.. hoffe meine frage versteht man..

    danke
    Zitieren Zitieren Überprüfen ob Wert steigt  

  2. #2
    Registriert seit
    20.08.2007
    Beiträge
    112
    Danke
    13
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Hier ein kleines Beispiel:

    Deklaration so:

    Code:
    oldVelocity : REAL;
    Velocity : REAL;
    gestiegen : BOOL;
    gesunken : BOOL;
    Code so:

    Code:
    gestiegen := oldVelocity < Velocity;
    gesunken := oldVelocity > Velocity
    oldVelocity := Velocity
    Solls was Rechtes sein, oder darfs auch was von Siemens sein?

  3. Folgender Benutzer sagt Danke zu wonderfulworld für den nützlichen Beitrag:

    fctla (02.06.2014)

  4. #3
    Registriert seit
    21.02.2014
    Ort
    Sachsen-Anhalt
    Beiträge
    1.513
    Danke
    268
    Erhielt 250 Danke für 226 Beiträge

    Standard

    Das Programmbeispiel ist gut. Aber viel hängt von der Geschwindigkeitsberechnung ab.
    Abhängig von der Art der Erfassung der Geschwindigkeit könnte ein Tiefpass (z.B. FT_PT1 aus oscat) hilfreich sein, um ein "Flackern" der beiden Merker zu unterbinden.
    Ich erfasse schonmal gerne die Zähne eines Ritzels als LOWCOST Drehgeber und werte das über eine Periodendauermessung aus. Je schneller ich werde, umso größer wird dabei mein prozentualer Fehler und wird in einem Jitter der erfassten Geschwindigkeit seeehr sichtbar.

    Alternativ oder in Kombination eine Hysterese (hier z.B. 5):
    Code:
    gestiegen := oldVelocity < Velocity-5;
    gesunken := oldVelocity > Velocity+5;
    oldVelocity := Velocity;

  5. #4
    Registriert seit
    06.10.2003
    Beiträge
    3.413
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard

    Zitat Zitat von weißnix_ Beitrag anzeigen
    ..Abhängig von der Art der Erfassung der Geschwindigkeit könnte ein Tiefpass (z.B. FT_PT1 aus oscat) hilfreich sein..
    Genau. Und wenn man dann schon über den Tiefpass einen gedämpften Wert hat, kann man den mit dem aktuellen oder einen weniger gedämpften Wert vergleichen. Der gedämpfte Wert eilt dem aktuellen nach. Ist der gedämpfte Wert kleiner, hat man einen Anstieg, ist er größer hat man einen Abfall.
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  6. #5
    fctla ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.05.2014
    Beiträge
    9
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So danke erstmal für die Antworten!
    aber funktionieren tut es leider nicht so wie es sollte, also wenn ich von Velocity = 0 an beschleunige wird gestiegen = TRUE erkannt, dann beschleunige ich z.B. bis auf Velocity = 300 und geh dann vom Gas. Ich bin auf der Sps eingeloggt und kann beobachten wie Velocity sinkt, es sinkt zwar schnell ist aber gut beobachtbar. Trotz der sinkenden Velocity bleibt mein gestiegen weiter auf TRUE bis Velocity wieder den Wert 0 erreicht, erst dann wechselt gestiegen auf FALSE. Habt ihr eine Idee, an der Zykluszeit wird es vermutlich ja nicht liegen, die müsste sicher klein genug sein oder?

  7. #6
    Registriert seit
    21.02.2014
    Ort
    Sachsen-Anhalt
    Beiträge
    1.513
    Danke
    268
    Erhielt 250 Danke für 226 Beiträge

    Standard

    Ob das jetzt der rechte Augenblick ist, nach einem Codefetzen zu fragen?

  8. #7
    fctla ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.05.2014
    Beiträge
    9
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    code wort für wort so übernommen wie wonderfulworld oben geschrieben.

  9. #8
    Registriert seit
    20.11.2006
    Ort
    Hamburg
    Beiträge
    225
    Danke
    35
    Erhielt 35 Danke für 32 Beiträge

    Standard

    oldVelocity nicht als Temp-Variable deklariert?

  10. #9
    Registriert seit
    21.02.2014
    Ort
    Sachsen-Anhalt
    Beiträge
    1.513
    Danke
    268
    Erhielt 250 Danke für 226 Beiträge

    Standard

    Da fehlen 2 Semikolon , aber das hast Du gemerkt.
    Mich interessiert mehr, wo der Speedwert herkommt. Ist der gefiltert oder nicht.
    Wenn der stark "flattert" ... siehe oben. Schau Dir das mal im Trace an.
    Wenn die Geschwindigkeit konstat bleibt, egal auf welchem Wert, sind beide Bools = False.

    edit: Alternativ mal den Schwellwert, wie in meinem Codesnippet mal einfügen. Schwellwert klein halten!!

    Nochmal edit: Eine langsame Zykluszeit ist hier von Vorteil.
    Geändert von weißnix_ (02.06.2014 um 16:23 Uhr)

  11. #10
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hast du den Code in einer Funktion, einen Funktionsbaustein oder in einem Programm eingebaut?
    Wenn du eine Funktion verwendest und oldVelocity in der Funktion deklariert ist, wird der Wert in jedem Zyklus wieder zurück auf 0 gesetzt. Das würde zu dem von dir beobachteten Verhalten passen.

  12. Folgender Benutzer sagt Danke zu MasterOhh für den nützlichen Beitrag:

    fctla (03.06.2014)

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 12.02.2014, 09:01
  2. Profinet Kommunikation steigt sporadisch aus...
    Von mertens2 im Forum Feldbusse
    Antworten: 2
    Letzter Beitrag: 01.05.2013, 14:24
  3. Profinet steigt aus
    Von sven im Forum Feldbusse
    Antworten: 6
    Letzter Beitrag: 13.03.2012, 09:31
  4. LWL steigt zeitweise aus
    Von Wilhelm im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 18.03.2010, 20:54
  5. sps steigt bei 35°C aus!
    Von Anonymous im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 04.07.2005, 17:09

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •