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

Ergebnis 1 bis 8 von 8

Thema: Rampe bei digital wert?

  1. #1
    Registriert seit
    17.08.2012
    Beiträge
    48
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    ich habe in einem Datenbaustein einen Doppelinteger-Wert gespeichert und möchte diesen mit einer Rampe (Zeit ca. 5 s) an ein PAD transferieren, weiss da jemand eine gute Lösung?

    Vielen dank im Vorraus

    Gruß

    GSOhm
    Zitieren Zitieren Rampe bei digital wert?  

  2. #2
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Naja, zuerst brauchst Du eine Definition was die 5s bedeuten.
    Von 0 auf Maximum in der Zeit, oder zB 5s für jede Änderung.
    Was ist das Maximum?
    Nebenbei Frage: was soll an dem PAD passieren, ist das ein PB-Teilnehmer?

    Ansonsten einfach in Zeitscheiben zB 100ms um einen bestimmten Wert (Steigungsgeschwindigkeit) vergrößern oder verkleinern.

    Alternativ gibts einen fertigen Baustein "RAMP_P", FB52 aus der PCS7 Bibliothek.
    Funktioniert aber mit REAL, müsstest den Wert vorher wandeln.

  3. #3
    GSOhm ist offline Benutzer
    Themenstarter
    Registriert seit
    17.08.2012
    Beiträge
    48
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,

    ja es soll bei jeder änderung über die rampe laufen und ja es handelt dich um PB-Teilnehmer.

    Danke im Vorraus

  4. #4
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard

    Zitat Zitat von borromeus Beitrag anzeigen
    Ansonsten einfach in Zeitscheiben zB 100ms um einen bestimmten Wert (Steigungsgeschwindigkeit) vergrößern oder verkleinern.
    Würde ich auch so lösen. Bei einer Sollwertänderung die Differenz berechnen. Anschließend aus Differenz und Rampenwert die Sollwertänderung für ein 100ms-Raster berechnen.
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  5. #5
    Registriert seit
    25.11.2008
    Ort
    Westpfalz
    Beiträge
    1.550
    Danke
    187
    Erhielt 212 Danke für 186 Beiträge

    Standard

    Zitat Zitat von GSOhm Beitrag anzeigen
    Hi,

    ich habe in einem Datenbaustein einen Doppelinteger-Wert gespeichert und möchte diesen mit einer Rampe (Zeit ca. 5 s) an ein PAD transferieren, weiss da jemand eine gute Lösung?

    Vielen dank im Vorraus

    Gruß

    GSOhm
    Kommt der DINT aus einem HMI E/A-Feld oder wird er aus dem Programm ermittelt?
    Bei HMI >> Nutzung der Variableneigenschaften Skalierung
    Bei Programm >> Stichwort Skalierung selbst programmieren bzw. wie oben vorgeschlagen Bibliothek nutzen

    MfG MK
    and we all support the team (S.King - Die Arena)

  6. #6
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Zitat Zitat von GSOhm Beitrag anzeigen
    Hi,

    ja es soll bei jeder änderung über die rampe laufen und ja es handelt dich um PB-Teilnehmer.

    Danke im Vorraus
    Das heisst, bei Änderung DINT pro Zeiteinheit mehr oder weniger.....

    Code:
    L #WERT_AKT //aktueller Stellwert aufs PAD
    L #WERT_SOLL //aktueller Sollwert
    >D //Stellwert größer Sollwert
    SPB DEK
    SPA WEIT
    
    DEK: L #WERT_AKT
    L #V_RAMPE //Änderung pro Zeiteinheit
    -D
    T #WERT_AKT
    
    L #WERT_AKT //wenn zuwenig....
    L #WERT_SOLL
    >D
    SPB OK
    L #WERT_SOLL//... dann Stellwert=Sollwert
    T #WERT_AKT
    
    WEIT: L #WERT_AKT //aktueller Stellwert aufs PAD
    L #WERT_SOLL //aktueller Sollwert
    <D //Stellwert kleiner Sollwert
    SPB INK
    SPA OK
    
    INK: L #WERT_AKT
    L #V_RAMPE //Änderung pro Zeiteinheit
    +D
    T #WERT_AKT
    
    L #WERT_AKT //wenn zuviel .....
    L #WERT_SOLL
    <D
    SPB OK
    L #WERT_SOLL //... dann Stellwert=Sollwert
    T #WERT_AKT
    
    OK: NOP0
    nur so runtergetippt, nicht getestet, braucht man nur in gewünschten Zeitintervall aufrufen.

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Zitat Zitat von GSOhm Beitrag anzeigen
    ich habe in einem Datenbaustein einen Doppelinteger-Wert gespeichert und möchte diesen mit einer Rampe (Zeit ca. 5 s) an ein PAD transferieren, weiss da jemand eine gute Lösung?
    Hallo,
    es gibt da, wie immer, viele Möglichkeiten um ans Ziel zu kommen.
    Mein Weg wäre der folgende :
    - einen FB dafür erstellen.
    - dieser hat als INPUT-Informationen den max.Wert (auf den zu inkrementieren ist), die Zeit , die dafür zur Verfügung steht, die aktuelle Systemzeit und natürlich den Trigger (oder eine Freigabe).
    - nun würde ich mir mir der steigenden Flanke des Trigger ausrechnen, wie hoch das Inkrement pro Millisekunde ist (sinnig wäre hierfür ein REAL). Außerdem den Ausgabewert auf Null schreiben. Die Variable "letzte Systemzeit" auf den Wert der aktuellen Systemzeit setzen.
    - läuft nun das Inkrementieren ... Hierfür die Differenz der aktuellen Systemzeit zur letzten bilden und mit dem Wert das Inkremnt multiplizieren und auf den Ausgabewert aufaddieren (solange das Maximum oder die maximale Zeit noch nicht erreicht ist).

    Gruß
    Larry

  8. #8
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielleicht noch eine Ergänzung:

    Möglicherweise ist der Ausgabewert zum Zeitpunkt des Sollwertspungs <> 0. Dann wäre es ggf. nicht ideal den Ausgabewert auf 0 zu schreiben. Daher würde ich sicherheitshalber den letzten Sollwert speichern und bei einer Sollwertänderung die Differenz zum letzten Sollwert berechnen. Startwert für die Ausgabe wäre dann der letzte Sollwert.
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

Ähnliche Themen

  1. MTTFd Wert Anomalie bei Sistema????
    Von windemacher im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 7
    Letzter Beitrag: 21.10.2012, 11:22
  2. Bestimmten Wert bei Eingang X schreiben.
    Von Katrin1982 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 11.01.2011, 14:00
  3. Problem bei Übergabe von Wert an Pointer
    Von rapser im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 26.08.2009, 15:30
  4. Rampe bei einer Bandgeschwindigkeitsregelung
    Von harald2 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 20.10.2008, 18:48
  5. Bei S7-300 Int-Wert in S5T umwandelt ?
    Von Boernie im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 08.11.2005, 10:22

Lesezeichen

Berechtigungen

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