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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 26

Thema: Sprung einer Steigung ermitteln

  1. #1
    Registriert seit
    14.01.2005
    Beiträge
    137
    Danke
    59
    Erhielt 6 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich hab einen Motor der gegen eine Feder dreht.
    Die Feder lässt einen Ventildruck durch

    Am anfang ist der Druckanstieg zur zeit relativ linear, irgendwann aber springt der Druck ab..
    also etwa so:
    nach ist der druckwert
    10 sek = 4,0bar (immer ca 0,1bar dazu)
    11 sek = 4,12bar
    12 sek = 4,25bar
    13 sek = 4,33bar
    14 sek = 4,41bar
    15 sel = 4,54 bar
    16 sek = 4,68 bar

    17 sek = 4,95bar = sprung (hier 0,3bar)

    Nun kann dieser lineare anstieg anstat 0,1 bar auch mal in 0,3er oder 0,5er schritten (variabel) sein und der sprung dann anstatt 0,3 vielleicht 0,5 oder 0,7 bar sein.

    deshalb kann ich den sprungwert nicht als festwert nehmen, sondern muss ihn aus dem mittleren steigungswert der vorigen messungen ermitteln (wenn vorher immer alle sekunde etwa 0,1bar dazu dann ist sprung bei z.b. 0,3bar),
    so dass die steuerunbg weiss, dass der anstieg nicht mehr linear wie vorher war.

    ich hab einen analogdruckmesser, die cpu 314 und die analogkarte.


    wie löse ich das programmtechnisch am besten und einfachsten?


    danke
    Geändert von DennisBerger (26.06.2009 um 20:04 Uhr)
    Zitieren Zitieren Sprung einer Steigung ermitteln  

  2. #2
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Wie lange musst Du das den messen?

    Wenn es nicht zu lange ist, könntest Du Dir die Mittelwerte in der Waagrechten bilden, sprich:
    Bei 10 Sekunden Wert in eine Tabelle schreiben, bei 11 bis 15 dementsprechend in jeweils eine andere Tabelle.
    Damit hast Du dann einen Mittelwert der alle 10 Sekunden getriggert wurde, einen der alle 11 Sekunden getriggert wurde u.s.w.
    Verständlich?

    Wenn Du eine Minute messen musst, wären das 60 Tabellen. Wäre wahrscheinlich dann nicht sinnvoll.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  3. #3
    DennisBerger ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.01.2005
    Beiträge
    137
    Danke
    59
    Erhielt 6 Danke für 3 Beiträge

    Standard

    so aufgrund des automatischen logouts nach einer minute, kann ich das ganze nun nochmal schreiben
    ________

    danke erstmal für deine schnelle antwort.

    diet messzeit ist relativ, ich muss solange messen bis der sprung erkannt wurde.
    da es versch. federn gibt, haben die alle auch unterschiedliche steigungen.

    Ich weiss den druck absprung aber ca, da dieser in einem fenster liegen muss. so kann ich mit der messung kurz vor erreichen des minimalfensters anfangen.

    im prinzip muss ich doch alle sekunde den wert speichern, dann den 2. wert vom vorigen abziehen = steigung s

    w1 = messwert 1 z.b. 1,00bar
    w2 = messwert 2 z.b. 1,012bar
    w3 = messwert 3 z.b. 1,034bar
    w4 = messwert 4 z.b. 1,048 bar

    also
    w2-w1= s1 z.b. 0,012
    w3-w2 = s2 = 0,022
    w4-w3 = s3 =0,014
    w5-w4 = s4 =0,015
    w6-w5 = s5 = 0,019
    usw
    sprung wäre
    w11-w10 = 0,043

    um den mittelwert der steigung auszurechnen müsste ich ja
    andauernd:
    s1+s2 / 2
    dann
    s1+s2+s3 /3
    dann
    s1+s2+s3+s4 /4
    also
    s1+s2+s3++s4+ sx.. / anzahl der messungen
    = mittelwert der steigung Smw

    S > Smw = sprungerkennung


    oder? aber wie mache ich das?
    wie verschiebe ich immer den neuen messwert über den alten und kann gleichzeiotig noch damit rechnen?
    Geändert von DennisBerger (26.06.2009 um 19:22 Uhr)

  4. #4
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von DennisBerger Beitrag anzeigen
    wie verschiebe ich immer den neuen messwert über den alten und kann gleichzeiotig noch damit rechnen?
    Die Steigungsberechnug kannst ja dann über eine art Schleife machen:
    Code:
    // Ermittlung von w
    // Erste Messung einmalig auf "alter Messwert" schreiben 
    L Neuer Messwert
    L Alter Messwert
    - R
    T Neues Ergebniss
     
    L Neuer Messwert 
    T Alter Messwert
     
    // Ermittlung von s
    // Erstes Ergebnis einmalig auf "alter Wert" schreiben 
    // und Anzahl Werte mit 2 vorbelegen
     
    Neues Ergebnis liegt vor
    SPBN Wart
    L neuer Wert
    L alter Wert
    +R 
    T alter Wert
    L Anzahl Werte
    / R
    T Smw
     
    L Anzahl Werte 
    L 1.0
    + R
    T Anzahl Werte
    Wart:NOP 0
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  5. Folgender Benutzer sagt Danke zu Paule für den nützlichen Beitrag:

    DennisBerger (26.06.2009)

  6. #5
    DennisBerger ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.01.2005
    Beiträge
    137
    Danke
    59
    Erhielt 6 Danke für 3 Beiträge

    Standard

    oh man ich liuebe awl

    T steht für transferieren?

    +R steht f+r addiere realzahl
    -R fü+r subtrahiere realzahl?`

    irgendwie steige ich bei dir nicht durch, kannst es etwas anschaulicher ausführlicher machen?

    die aktuellen messwerte sind bei mir von PEW320 in
    DB1.DBD0 abgelegt
    arbeite nur mit DBs

    neuer Messwert wäre dann DB1.DBD4
    usw

    und wie lade iich das einmalig rein?


    ich hab nen blinker programmiert, der alle x ms den wert per positive flanke in einen db verschiebt, ist das okay so?
    (programmiere in fup)

    wie mach ich ne schleife?


    wie berechnest du den neuen wert?
    neuer wert sol doch bei dir der wert sein messwert neu minus messwert alt = neuer wert
    oder?
    Geändert von DennisBerger (26.06.2009 um 21:33 Uhr)

  7. #6
    DennisBerger ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.01.2005
    Beiträge
    137
    Danke
    59
    Erhielt 6 Danke für 3 Beiträge

    Standard

    edit da fehler
    Geändert von DennisBerger (26.06.2009 um 21:32 Uhr)

  8. #7
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von DennisBerger Beitrag anzeigen
    arbeite nur mit DBs

    neuer Messwert wäre dann DB1.DBD4
    usw

    und wie lade iich das einmalig rein?

    ich hab nen blinker programmiert, der alle x ms den wert per positive flanke in einen db verschiebt, ist das okay so?
    (programmiere in fup)

    wie mach ich ne schleife?

    wie berechnest du den neuen wert?
    neuer wert sol doch bei dir der wert sein messwert neu minus messwert alt = neuer wert
    oder?
    Alles korrekt:
    Nur DB's > schön
    Mit positiver Flanke in DB schieben > schön
    Eine richtige Schleife wäre Loop > brauchst aber hier nicht
    Die Schleife ergibt sich dadurch das die Anzahl der Ergebnisse gezählt werden. (s1+s2+s3++s4+ sx.. / anzahl der messungen) Sprich Du machst bei jedem neuen Ergebnis das gleiche, nur die Werte haben sich geändert > Schleife.
    Ersetze Neue und Alte Wert durch DB-Wörter und dann sollte schon mal ein bisschen was gehen.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  9. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.708
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    eine derartige Aufgabenstellung würde ich mit einer Kurven-Aufzeichnung lösen - das heißt in einem festgelegten Zeitintervall (OB35) die Messwerte in einen Puffer einlesen. Am Ende des Einlese-Vorgangs (bei mir normalerweise Zeit oder Erreichen eines bestimmten Endwertes) würde ich das Ganze dann Auswerten und treffe damit auch Aussagen über die ganze Messung.

    Als Hilfsmittel zur Programm-Erstellung benutze ich hier SCL - damit stehen mir Schleifen-Programmierung, Indexierung von Array's etc. zur Verfügung.

    Die Steigung läßt sich m.E. nicht aus 2 sich benachbarenden Werten bestimmen, da diese ja Digitalisierungs-Sprünge (und anderen Mist) beinhalten können. Ich würde hier also die mittlere Steigung aus einer Anzahl Werten errechnen - somit läßt sich dann auch recht gut der (Zeit-)Punkt der Steigungs-Änderung bestimmen.

    Vielleicht ein Ansatz ...

    Gruß
    LL

  10. #9
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Mathematisch hört sich das nach der zweiten Ableitung deines Messwertverlaufes an.
    Wenn dein Messwert nicht oder linear ansteigt oder ist die 2. Ableitung gleich Null.
    Erst wenn die "Steigung" des Messwertes "ansteigt" nimmt die 2. Ableitung einen Wert größer Null an. Auf diese Bedingung könnte man dann triggern.

    Zweimaliges differenzieren bei realen Messwerten ist aber etwas schwierig.
    Der Messwert muss mit einem entsprechend dimensionierten Tiefpass ausreichend, aber nicht zu stark gefiltert werden.

  11. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.708
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Thomas:
    Da ich mich sehr viel mit dem Thema beschäftige würde mich da ein Lösungs-Vorschlag für den Tiefpass sehr interessieren. Stell doch mal was hier rein ...

    Gruß
    LL

Ähnliche Themen

  1. AS Sprung in PRG
    Von Tyler-Durden im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 01.07.2011, 10:08
  2. Länge einer Struktur im DB ermitteln
    Von Knut333 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 22.01.2009, 18:04
  3. Sprung programmieren
    Von Stonie im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 22.12.2008, 22:49
  4. vergleich mit sprung?
    Von Ibaxx im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 28.09.2007, 09:50
  5. ob1 sprung in fc1
    Von Anonymous im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 14.11.2005, 17:32

Lesezeichen

Berechtigungen

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