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

Seite 6 von 8 ErsteErste ... 45678 LetzteLetzte
Ergebnis 51 bis 60 von 75

Thema: Drehzahlmessung

  1. #51
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... hast ja recht ... Beitrag #41 von dir ...
    Aber die Sache FB kontra FC finde ich in diesem Zusammenhang gar nicht so schlecht ...
    das könnte man mal abwägen, japp ... da fällt mir die frage ein, die mir schon lange unter den nägeln brennt: was soll die CPU sonst noch machen? wenn sie wirklichst nur für die drehzahl-dingens ist, könnte man das auch alles global machen ... egal: nachteil FC: kann nich speichern, also alles was du späters brauchst mußt du irgendwo ablegen ... also stift, prüfe mal, ob du vielleicht mit einem FB besser fährst ...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  2. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    stift (08.04.2008)

  3. #52
    Registriert seit
    15.01.2008
    Ort
    München
    Beiträge
    256
    Danke
    76
    Erhielt 17 Danke für 14 Beiträge

    Standard

    was soll die CPU sonst noch machen? wenn sie wirklichst nur für die drehzahl-dingens ist, könnte man das auch alles global machen ...
    Mit der CPU steuere ich einen Motor, messe die Drehzahl des Getriebes, Errechne die Beschleunigung und die Verfahrgeschwindigkeit eines Tischen und fahre eine Strommessung bei 4 steckdosen, deren min und max strom man über ein touch-panel einstellen kann.

    also stift, prüfe mal, ob du vielleicht mit einem FB besser fährst ...
    ein fb ist echt besser... den hab ich jetzt auch gleich erstellt aber leider funktioniert die sache immer noch nicht. mein zwischenwert wird nach jedem zyklus auf null gesetzt und bei allen zeilen beim programm-teil "schmitt-trigger" ist vke überall 1.

    Code:
    FUNCTION_BLOCK "Drehzahlerrechnung"
    TITLE =
    VERSION : 0.1
     
    VAR_INPUT
      Motor_Ein : BOOL ; 
      Zykluszeit : INT ; 
      Drehzahlsensor : BOOL ; 
    END_VAR
    VAR_OUTPUT
      Zeit_fuer_Umdrehung : REAL ; 
      Momentandrehzahl : INT ; 
    END_VAR
    VAR
      Zwischenspeicher : INT ; 
      Vergleichswert : REAL ; 
      unterer_Schaltpunkt : REAL ; 
      oberer_Schaltpunkt : REAL ; 
      Flankenmerker : BOOL ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =Stoppen der Zeit für eine Umdrehung
     
          U     #Motor_Ein; 
          SPBN  M002; 
     
    //Aufaddieren der Zykluszeit von 0b1 zum erhalten der Zeit für eine halbe Umdrehung in ms
          L     #Zykluszeit; 
          L     #Zwischenspeicher; 
          +I    ; 
          T     #Zwischenspeicher; 
     
    //Bedingung für weiteren Verlauf
          U     #Drehzahlsensor; 
          U     #Flankenmerker; 
          SPB   M001; 
     
    //Berechnen der Zeit für Umdrehung in s (Datentyp real)
          L     #Zwischenspeicher; 
          L     2; 
          *I    ; 
          ITD   ; 
          DTR   ; 
          L     1.000000e+003; 
          /R    ; 
          T     #Vergleichswert; 
     
    //Schmitt-Trigger zum Stabilisieren aller folgenden Rechenwerte
          L     #Vergleichswert; 
          L     2.000000e-001; 
          +R    ; 
          T     #oberer_Schaltpunkt; 
          L     #Vergleichswert; 
          L     2.000000e-001; 
          -R    ; 
          T     #unterer_Schaltpunkt; 
          L     #oberer_Schaltpunkt; 
          L     #Vergleichswert; 
          >R    ; 
          SPBN  M010; 
          L     #Vergleichswert; 
          T     #Zeit_fuer_Umdrehung; 
    M010: L     #unterer_Schaltpunkt; 
          L     #Vergleichswert; 
          <R    ; 
          SPBN  M011; 
          L     #Vergleichswert; 
          T     #Zeit_fuer_Umdrehung; 
     
    //Rücksetzten des Zwischenspeichers
    M011: L     0; 
          T     #Zwischenspeicher; 
    M001: U     "Sensor-Drehzahl"; 
          =     #Flankenmerker; 
    M002: NOP   0; 
    NETWORK
    TITLE =Berechnen der Drehzahl
     
          L     6.000000e+001; 
          L     #Zeit_fuer_Umdrehung; 
          /R    ; 
          RND   ; 
          DTB   ; 
          BTI   ; 
          T     #Momentandrehzahl; 
     
    END_FUNCTION_BLOCK
    ich habe auch schon folgendes probiert:
    Code:
    ...
    //Bedingung für weiteren Verlauf
          U     #Drehzahlsensor; 
          FP    #Flankenmerker; 
          SPB   M001;
     
    ...
     
    M001: U     "Sensor-Drehzahl"; 
          =     #Flankenmerker;
    hat aber auch nicht funktionert
    Geändert von stift (08.04.2008 um 11:24 Uhr)

  4. #53
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    tausche mal den inhalt von marke M010 und M011 und passe die sprünge entsprechend an ... das laden von 0 wird immer durchgeführt ...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #54
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    ... ist für mich logisch, was da passiert ...

    Wenn dein INI "Drehzahlsensor" nicht da ist, dann solltest du auch nach M001 springen ...

  6. #55
    Registriert seit
    15.01.2008
    Ort
    München
    Beiträge
    256
    Danke
    76
    Erhielt 17 Danke für 14 Beiträge

    Standard

    den programmteil "Schmitt-Trigger" hab ich jetzt mal ausgeklammert und habe auch programmiert dass ich zu m001 springe sobald "Sensor-Drehzahl" nicht da ist.
    Jetzt ist folgendes:
    Solange "Sensor-Drehzahl" da ist wird mein zwischenspeicher in jedem zyklus auf null gesetzt. Man sieht außerdem den wert direkt d.h. er wird nicht einmal bei steigender flanke auf mein dbd gelegt, welches ich über den fb ansteuere sondern er wird in jedem zyklus geschoben.
    Sobald "Sensor-Drehzahl" nicht mehr da ist wird mein zwischenspeicher wie gewohnt erhöht. Kommt aber der "sensor-Drehzahl wieder wird alles wieder auf null gesetzt.

  7. #56
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    dann versuch es mal so :
    Code:
          UN     #Drehzahlsensor; 
          O    #Flankenmerker; 
          SPB   M001;

  8. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    stift (08.04.2008)

  9. #57
    Registriert seit
    15.01.2008
    Ort
    München
    Beiträge
    256
    Danke
    76
    Erhielt 17 Danke für 14 Beiträge

    Standard

    das war die lösung.
    bis auf den schmitt-trigger funktioniert jetzt alles. aber den bekomm ich auch noch zum laufen. danke!

  10. #58
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    ... nicht verzagen ... Larry fragen ...

    Was klappt den an deinem "Schmitt-Trigger" nicht ?
    Das Code-Segment sah für mich erstmal nicht schlecht aus ...
    Aber ... was war der Sinn des Ganzen ...? Glättung der Werte ?
    Das Ginge auch schön mit :
    Code:
    L  letzter_Messwert
    L  neuer_Messwert
    +  R
    L  2.0
    /  R
    T  neuer_Messwert

  11. #59
    Registriert seit
    15.01.2008
    Ort
    München
    Beiträge
    256
    Danke
    76
    Erhielt 17 Danke für 14 Beiträge

    Standard

    ich versuch erst mal selbst den fehler im schmitt-trigger zu finden.
    aber jetzt mal ne blöde frage:
    wieso hat die flankenauswertung mit
    Code:
    U "Sensor-Drehzahl"
    U #Flankenmerker
    SPA ....
    in OB1 funktionert und in meinem FB dann plötzlich nicht mehr trotz statischer variable für den flankenmerker

  12. #60
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von stift Beitrag anzeigen
    ich habe auch schon folgendes probiert:
    Code:
    ...
    //Bedingung für weiteren Verlauf
          U     #Drehzahlsensor; 
          FP    #Flankenmerker; 
          SPB   M001;
     
    ...
     
    M001: U     "Sensor-Drehzahl"; 
          =     #Flankenmerker;
    hat aber auch nicht funktionert
    das kann auch nicht funktionieren ... den flankenmerker zu beschreiben macht keinen sinn und die operation auch z.T. funktionsunfähig ... denn wie die hilfe weiß wird in diesem bit der zustand gespeichert ...

    FP <Bit> (Flanke Positiv) erkennt eine steigende Flanke, wenn das VKE von "0" auf "1" wechselt und zeigt dies mit VKE = 1 an.

    Während eines jeden Programmzyklus wird der Signalzustand des VKE-Bits mit dem Signalzustand des VKE-Bits des vorherigen Zyklus verglichen, um Änderungen des Zustands festzustellen. Um den Vergleich ausführen zu können, muß der vorherige VKE-Zustand in der Adresse des Flankenmerkers (<Bit>) gespeichert werden. Unterscheidet sich der aktuelle Signalzustand des VKE-Bits vom vorherigen Zustand ("0") (Erkennung einer steigenden Flanke), ist das VKE-Bit nach dieser Operation "1".
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  13. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    stift (08.04.2008)

Ähnliche Themen

  1. Drehzahlmessung mit SPS
    Von kleiner_thomas im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 02.10.2011, 17:47
  2. Drehzahlmessung mit Fm-3501
    Von awe_wolfsburg im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 28.06.2010, 15:07
  3. Drehzahlmessung mit normalen DI??
    Von s7-spsler im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 12.10.2009, 21:55
  4. Drehzahlmessung über Zähler
    Von Nordkurve im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 03.04.2007, 17:32
  5. Drehzahlmessung mit S7-300
    Von VyRuz im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 08.11.2005, 07:34

Lesezeichen

Berechtigungen

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