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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Hilfe bei Halbautomatik

  1. #11
    rene ist offline Benutzer
    Themenstarter
    Registriert seit
    28.06.2007
    Beiträge
    66
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hmm, aber wenn du dir meinen awl code oben anguckst, ist es bei mir doch eigentlich genauso oder nicht?
    ich vergleiche ja die differnz zwischen soll und istwert, hab somit die differnz, vergleiche sie und schiebe es in die stellgröße(arbeitspunkt)

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

    Standard

    Naja, Du nimmst irgendwie den Istwert und zählst 100 dazu, natürlich bei irgendwelchen Bedingungen die ich jetzt nicht kenne.
    - ist der Sollwert Null, dann ist es das gleiche....

    warum funzt es dann nicht?

  3. #13
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von rene Beitrag anzeigen
    richtig, der motor soll langsamer werden, desto näher er den sollwert erreicht.
    also wenn du diese formel preisgben würdest, wäre ich dir sehr dankbar
    1. Komme ich gerade nicht an das Programm und somit auch nicht an die Formel ran.

    2. Kann ich mich aber daran erinnern das wir die Geschwindigkeit quadratisch reduziert haben um am Schluss möglichst genau an den Punkt heran zu kommen.

    Aber in groben Zügen hat das ungefähr so ausgesehen:

    Code:
    FUNCTION myControl : REAL
    VAR_INPUT
        w            :REAL; (* Sollwert *)
        tolerance    :REAL; (* Toleranz +/- *)
        x            :REAL; (* Istwert *)
        rampStart    :REAL; (* Startpunkt wann die Rampe gestartet werden soll *)
        y_max        :REAL; (* Stellgrenze *)
        y_min        :REAL; (* Minimale Rest Geschwindigket *)
    END_VAR
    VAR
        w_pro        :REAL;
        x_pro        :REAL;
        e_pro        :REAL;
    END_VAR
    Code:
    (* Eingangswerte in Prozente Skalieren *)
    w_pro        := w * (100.0 / rampStart);
    x_pro        := x * (100.0 / rampStart);
    e_pro        := x_pro - w_pro;
    
    (* Stellgröße ermitteln *)
    myControl := ((EXPT(e_pro, 2) / 100.0) * (y_max / 100.0));
    
    (* Stellgröße nicht größer y_max zulassen *)
    IF (myControl > y_max) THEN
        myControl := y_max;
    END_IF
    
    (* Stellgröße nicht zu kein werden lassen *)
    IF (myControl < y_min) THEN
        myControl := y_min;
    END_IF
    
    (* Zielerreicht *)
    IF (ABS(x - w) < tolerance) THEN
        myControl := 0;
    END_IF;
    Das ist jetzt sicher nicht die Endgültige Lösung für Deine Aufgabe. Je nach Parametern und wie Du das mit der Stellgröße weiter verarbeiten tust kann auch das System ins Schwingen geraten.

    Die Stellgröße kann hier auch negativ werden das lässt sich aber auch recht schnell ausschalten.

    PS: Das ist natürlich jetzt kein AWL lässt sich aber auch recht leicht (von Hand) umsetzen.
    If you open your Mind too much, your Brain will fall out.

Ähnliche Themen

  1. Hilfe Hilfe - HMI Fehler
    Von vietha11 im Forum HMI
    Antworten: 7
    Letzter Beitrag: 04.05.2011, 07:53
  2. Antworten: 90
    Letzter Beitrag: 21.03.2010, 12:35
  3. Moeller 719 Hilfe Hilfe
    Von kacperowski im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 11.05.2009, 19:57
  4. Hilfe Hilfe FM353
    Von Holle6 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 06.10.2005, 19:03
  5. Antworten: 15
    Letzter Beitrag: 01.03.2005, 22:25

Lesezeichen

Berechtigungen

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