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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 25 von 25

Thema: Seegangsfolgeeinrichtung

  1. #21
    Registriert seit
    10.06.2004
    Beiträge
    98
    Danke
    1
    Erhielt 3 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ralf,

    also der Neigungssensor ändert seinen Wert von z. B. 15000 auf 17000 und dann wieder zurück auf 1500. Ich möchte den Arm nachfahren wenn der wert steigt und wieder zurückfahren wenn der Wert sinkt.

  2. #22
    Registriert seit
    25.05.2004
    Beiträge
    172
    Danke
    0
    Erhielt 39 Danke für 7 Beiträge

    Standard

    Eine (halbfertige) Lösung mit Regler und beiden Gebern liefe so ähnlich wie
    Code:
    FUNCTION_BLOCK "Schiff"
    TITLE =
    VERSION : 0.1
    
    
    VAR_INPUT
      RohNeigSchiff : INT ;	//Neigungsgeber Schiff
      RohNeigAusgl : INT ;	//Neigungsgeber Ausgleich
      VerstellOben : BOOL ;	//Von Hand nach oben fahren
      VerstellUnten : BOOL ;	//Von Hand nach unten fahren
    END_VAR
    VAR_OUTPUT
      WinkelSchiff : REAL ;	//Winkel Neigungssensor 1
      WinkelAusgleich : REAL ;	//Winkel Neigungssensor 2
      HydraulikRoh : INT ;	//+/- 10V an Ventil
    END_VAR
    VAR
      Winkel1Offset : REAL  := -4.500000e+001;	//Offset Geber 1
      Winkel1Faktor : REAL  := 9.000000e+001;	//Skalierung Geber 1
      Winkel2Offset : REAL  := -4.500000e+001;	//Offset Geber 2
      Winkel2Faktor : REAL  := 9.000000e+001;	//Skalierung Geber 2
      WinkelDiffSoll : REAL ;	//SollWertWinkeldifferenz
      Hydraulik : REAL ;	
      Restart : BOOL ;	
    END_VAR
    VAR_TEMP
      WinkelDifferenzIst : REAL ;	//IstWertWinkeldifferenz
    END_VAR
    BEGIN
    NETWORK
    TITLE =Scale
    //Skaliere Neigungssensor 1
          L     #RohNeigSchiff; 
          ITD   ; 
          DTR   ; // mach erstmal REAL
          L     2.764800e+004; // 
          /R    ; 
          L     #Winkel1Faktor; 
          *R    ; 
          L     #Winkel1Offset; 
          -R    ; 
          T     #WinkelSchiff; 
    NETWORK
    TITLE =Scale1
    //Skaliere Neigungssensor 1
          L     #RohNeigAusgl; 
          ITD   ; 
          DTR   ; // mach erstmal REAL
          L     2.764800e+004; // 
          /R    ; 
          L     #Winkel2Faktor; 
          *R    ; 
          L     #Winkel2Offset; 
          -R    ; 
          T     #WinkelAusgleich; 
          L     #WinkelSchiff; 
          -R    ; 
          T     #WinkelDifferenzIst; // Istwertspeichern
    NETWORK
    TITLE =
    //Manuelles Fahren abfragen
          U     #VerstellOben; 
          O     #VerstellUnten; 
          SPB   man; 
    NETWORK
    TITLE =
    
          CALL "CONT_C" , DB    80 (
               COM_RST                  := #Restart,
               SP_INT                   := #WinkelDiffSoll,
               PV_IN                    := #WinkelDifferenzIst,
               LMN_HLM                  := 1.000000e+001,
               LMN_LLM                  := -1.000000e+001,
               LMN                      := #Hydraulik);
    
    NETWORK
    TITLE =
    //Restart Löschen und ab zum Normieren Propventil
          SET   ; 
          R     #Restart; 
          BE;
    NETWORK
    TITLE =
    //Restart Setzen
    man:  SET   ; 
          S     #Restart; 
    L WinkelDifferenzIst
    T WinkelDifferenzSoll // Hinterher ergänzt, sonst gehtnich!
    
    NETWORK
    TITLE =
    //Manuelles fahren der Hydraulik (aber jetzt nur ganz einfach ein Schritt / Zyklus
    //... und ich weiß, daß ich hierfür totgeschlagen werde ....
          UN    #VerstellOben; 
          SPB   runt; 
          L     1; 
          L     #HydraulikRoh; 
          +I    ; 
          T     #HydraulikRoh; 
          SPA   norm; 
    NETWORK
    TITLE =
    
    runt: L     #HydraulikRoh; 
          L     1; 
          -I    ; // Minus! vorher stand hier nen Plus. Ich DOOF! :oops: 
          T     #HydraulikRoh; 
    
    NETWORK
    TITLE =
    
    norm: L     #HydraulikRoh; 
          ITD   ; 
          DTR   ; 
          L     2.764800e+004; 
          /R    ; 
          L     2.000000e+001; 
          *R    ; 
          L     1.000000e+001; 
          -R    ; 
          T     #Hydraulik; 
          BE    ; 
    END_FUNCTION_BLOCK
    HIV - Hatt ich vergessen ... hinters Netzwerk mit dem Cont_C
    Code:
          L     #Hydraulik
          L     1.000000e+001
          +R    
          L     2.000000e+001
          /R    
          L     2.764600e+004
          *R    
          RND   
          T     #HydraulikRoh
    Muß ja noch den -10 ... 10 V Wert zurücknormieren, Mist

    Gruß Ralf

  3. #23
    Registriert seit
    25.05.2004
    Beiträge
    172
    Danke
    0
    Erhielt 39 Danke für 7 Beiträge

    Standard

    Wär übrigens auch nicht ganz sinnlos, beim Sollwertschießen (man Auf-Ab) dien ausgangswert zu begrenzen...

    Ralf

  4. #24
    Registriert seit
    10.06.2004
    Beiträge
    98
    Danke
    1
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Hallo,

    die Anlage läuft jetzt mit einem CONT_C. Allerdings habe ich jetzt Überschwingungen in meinem hydraulischen Arm, d. h. er fährt mir über den Sollwert und dann wieder zurück usw.

    Wie bekommt man dieses in den Griff? Ich habe schon mit TI (sehr groß), Gain (sehr klein) und Totband herumprobiert aber noch keine zufriedenstellende Lösung gefunden.

    MfG
    C-F

  5. #25
    Registriert seit
    25.05.2004
    Beiträge
    172
    Danke
    0
    Erhielt 39 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hatte hier schon mal was zu geschrieben
    http://www.sps-forum.de/phpBB2/viewt...light=regelung
    versuchs mal so einzustellen

    Gruß

    Ralf

Lesezeichen

Berechtigungen

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