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

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

Thema: Geberauswertung

  1. #21
    PG710 ist offline Benutzer
    Themenstarter
    Registriert seit
    25.05.2008
    Beiträge
    45
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    dank Helmut hätten wir nun mal die Drehrichtung.
    Aber wie kann man den Überlauf am besten auswerten.

    Ich bin für jede Hilfe dankbar.

    Gruß

  2. #22
    Registriert seit
    13.10.2007
    Beiträge
    12.064
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Hallo PG710,
    hier noch mal ein ansatz für den überlauf , den du mal testen solltest.
    Ich weiß nicht ob es funktioniert und es ist auch noch nicht vollständig.
    Gib mal eine Rückmeldung ob wir darauf weiter aufbauen können.

    Code:
    FUNCTION_BLOCK "SSI"
    TITLE =Singelturn Geber
    VERSION : 0.1
     
    VAR_INPUT
      IN_Geber : INT ; 
    END_VAR
    VAR_OUTPUT
      OUT_DIR_P : BOOL ; //Positive Drehrichtung
      OUT_DIR_N : BOOL ; //Negative Drehrichtung
      OUT_UL_P : BOOL ; //Überlauf Positiv
      OUT_UL_N : BOOL ; //Überlauf Negativ
    END_VAR
    VAR
      Stillstand : "TON"; //Zeit Stillstand erkennen
      Ueberlauf : "TON"; //Zeit Überlauf
      HM1_Stillstand : BOOL ; //Hilfsmerker Stillstand erkennen
      HM2_Stillstand : BOOL ; //Hilfsmerker Stillstand erkennen
      Speicher : INT ; //Zwischenspeicher Geber
      HM_P_ueberlauf : BOOL ; //Hilfsmerker positiver überlauf
      HM_N_ueberlauf : BOOL ; //Hilfsmerker negativer überlauf
      HM1_ueberlauf : BOOL ; //Hilfsmerker überlauf
      HM2_ueberlauf : BOOL ; //Hilfsmerker überlauf
    END_VAR
    BEGIN
    NETWORK
    TITLE =Drehrichtung feststellen
    //Positive Drehrichtung
          L     #IN_Geber; 
          L     #Speicher; 
          >I    ; 
          S     #OUT_DIR_P; 
          O     #OUT_DIR_P; 
          O     #HM2_Stillstand; 
          R     #OUT_DIR_N; 
    //Negative Drehrichtung
          <I    ; 
          S     #OUT_DIR_N; 
          O     #OUT_DIR_N; 
          O     #HM2_Stillstand; 
          R     #OUT_DIR_P; 
    //Stillstand 
          ==I   ; 
          =     #HM1_Stillstand; 
    //Verzögerung Stillstand erfassen
          CALL #Stillstand (
               IN                       := #HM1_Stillstand,
               PT                       := T#500MS,
               Q                        := #HM2_Stillstand);
    //Zählerstand speichern
          L     #IN_Geber; 
          T     #Speicher; 
    NETWORK
    TITLE =Positiver überlauf erfassen
    //Speicherung halber Drehgeberwert
          L     #IN_Geber; 
          L     500; 
          >I    ; 
          U     #OUT_DIR_P; 
          S     #HM_P_ueberlauf; 
          R     #HM_N_ueberlauf; 
    //Positiver üeberlauf
          <I    ; 
          U     #OUT_DIR_P; 
          U     #HM_P_ueberlauf; 
          S     #OUT_UL_P; 
    NETWORK
    TITLE =Negativer überlauf erfassen
    //Speicherung halber Drehgeberwert
          L     #IN_Geber; 
          L     500; 
          <I    ; 
          U     #OUT_DIR_N; 
          S     #HM_N_ueberlauf; 
          R     #HM_P_ueberlauf; 
    //Negativer überlauf
          >I    ; 
          U     #OUT_DIR_N; 
          U     #HM_N_ueberlauf; 
          S     #OUT_UL_N; 
    NETWORK
    TITLE =Überlauf auswerten
    //Verknüpfen
          O     #OUT_UL_P; 
          O     #OUT_UL_N; 
          =     #HM1_ueberlauf; 
    //Bausteinaufruf
          CALL #Ueberlauf (
               IN                       := #HM1_ueberlauf,
               PT                       := T#500MS);
    //Rücksetzen
          U     #Ueberlauf.Q; 
          R     #OUT_UL_P; 
          R     #OUT_UL_N; 
    //an dieser stelle kommt später der zähler
    //um den Offset auszurechenen
          U     #HM1_ueberlauf; 
          FP    #HM2_ueberlauf; 
          SPBN  KU; 
          SET   ; 
          R     #HM_N_ueberlauf; 
          R     #HM_P_ueberlauf; 
    KU:   NOP   0; 
    END_FUNCTION_BLOCK
    Geändert von rostiger Nagel (06.01.2010 um 16:30 Uhr)
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  3. #23
    PG710 ist offline Benutzer
    Themenstarter
    Registriert seit
    25.05.2008
    Beiträge
    45
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Helmut,

    super dass du dir soviel Mühe machst.
    Werde deinen Code am Montag testen und dann berichten.

    Gruß

Lesezeichen

Berechtigungen

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