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

Ergebnis 1 bis 10 von 10

Thema: Zeitmessung mittels Drehgeber/Encoder

  1. #1
    Registriert seit
    28.08.2012
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen,

    nachdem ich die Suchfunktion erfolglos gequält habe, nun hier meine Frage:

    Hardware:

    IM 151-7 F CPU

    Problemstellung:

    Zeitmessung bzw. Geschwindigkeitsermittlung eines Förderbandes mit der maximalen Bahngeschwindigkeit von 0,5 m/s mit Hilfe eines Drehgebers/Encoders mit der Strichzahl 8 (8 Striche/Pulse pro Umdrehung).

    Es soll die Zeit ermittelt werden, bis 8 positive Flanken erkannt wurden. Das ganze soll im Rahmen einer Bachelorarbeit geschehen. Nun soll die Abfrage über 24 Stunden erfolgen und jeder einzelne Wert im DB festgehalten werden um nach 24 Stunden eine Auswertung zu erstellen.

    Wir wollten das mit dem OB35 realisieren (Abrufzeit auf 10ms geändert), da außer der Messung sonst nichts in die S7 kommt.

    Erster Ansatz war:

    Rückwärtszähler von 8 auf 0 Runter. Solang Zähler aktiv ist, einen Timer aktivieren. Wenn der Zähler bei 0 angekommen ist, den Timerwert in einen DB festhalten und Messung erneut beginnen.
    Was sagen die Experten dazu? Kenntnisse in AWL sind bei 0 wenn nicht sogar bei -1...



    Kommando zurück! Alternative Lösung:

    Zählerkarte ranhängen. Alle 300 ms Anzahl der Pulse abfragen und über diese Anzahl der Pulse die Geschwindigkeit ermitteln. So zumindest in der Theorie. Wie die Umsetzung aussieht, ist die nächste Frage. Der Wert, der alle 300ms ermittelt wird, soll ja gespeichert werden und nicht jedesmal überschrieben werden. s = Umfang/8 * Anzahl Pulse ; v = s / 300ms

    Ich hoffe ihr könnt mir helfen

    Greetings,

    Joe
    Geändert von Big Joe (28.08.2012 um 08:47 Uhr)
    Zitieren Zitieren Zeitmessung mittels Drehgeber/Encoder  

  2. #2
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Wenn du schon mit einer Zählerkarte arbeitest, wieso misst du dann nicht einfach die Frequenz? Diese sollte doch propotional zur Geschwindigkeit sein.
    Wieso möchtest du die Geschwindigkeit über 24h speichern?
    mfG Aventinus

  3. #3
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Anstatt einen Timer zu starten, würde ich die Systemzeit mit SysTck auslesen. Endzeit - Startzeit=...

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.223
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Wenn nichts weiter in der SPS läuft, kannst du das auch im OB1 machen. In dessen Kopf gibt es auch schon eine Date_Time (OB1-Anforderung), mit der kann man arbeiten. Immer 10 Impulse des Geber zählen (Flanke und Datenwort hochzählen oder Zähler der SPS nutzen). Dann beim 10-ten Impuls eine Flanke bilden und:

    1. Dauer = "aktuelle Uhrzeit" - "letzte Speicherzeit" ,
    2. aktuelle Speicherzeit in die letzte Speicherzeit transferieren
    3. Zähler wider auf Null stellen
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #5
    Big Joe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.08.2012
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Servus,

    die Messung soll nach 24 Stunden ausgewertet werden, um eventuelle Abweichungen der Bahngeschwindigkeit zu ermitteln. Deshalb die 24 Stunden Messung.

    Greetings,

    Joe

  6. #6
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.626
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Es wird ziemlich viel Daten.
    24 stunden, und ein Wert (REAL ?) jede 300 ms. Das gibt 1152000 bytes = ~1MB.
    Ein IM151-7 hat nur 128kB Arbeitsspeicher. Wie soll das klappen ?
    Jesper M. Pedersen

  7. #7
    Big Joe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.08.2012
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hmmm... Auf den MMC Karte was ablegen wird nicht gehen? Sorry das ich so blöd frag

  8. #8
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.626
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Es wäre ein Möglichkeit, z.B. jede Stunde (24 kB) die Daten mittels SFC84 WRIT_DBL auf den MMC Karte zu verschieben. Die DBs auf den MMC Karte müssen dann "unlinked" sein.
    Finde ich aber Umständlich.
    Dies wäre ein typische PC Anwendung, die Daten auf den PC zu speichern, wo man dann die Daten analysieren kann.
    Jesper M. Pedersen

  9. #9
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Wie groß sind die zu erwartenden Geschwindigkeitsänderungen? Reicht es evtl. die Änderungen zu protokollierern?
    Beispiel:
    0:0:10.123 89
    0:0:46.767 82
    usw...
    mfG Aventinus

  10. #10
    Big Joe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.08.2012
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also,

    gerade nochmal alles besprochen: Sie wollen lieber die Geschwindigkeit und nicht die Änderung. Jetzt ist die Idee, einen DB vollzuschreiben (Zähler!), ist dieser voll wird er auf den PC übertragen und währenddessen ein zweiter DB vollgeschrieben. Der übertragene DB soll dann mit Zenon ausgewertet werden. Das ist aber nicht mehr meine Baustelle.

    Ich soll jetzt eigentlich "nur" alle 300ms den Wert in einen DB schreiben und nach 32000 Schreibvorgängen in den 2. DB wechseln.


    Ach ja, desweiteren soll die Messung nur noch 8 Stunden dauern. Des wären somit 3 DBs vollschreiben bei 300ms Abfrageintervall, lieg ich da richtig?


    Nächster Edit:

    Ich hab jetzt ein Array im DB erstellt. Jetzt stellt sich mir die Frage, wie ich ein Word nach dem anderen befülle? Also das er automatisch zum nächsten Word springt, wenn er eins beschrieben hat.

    Wie hört sich das für euch an?
    Geändert von Big Joe (28.08.2012 um 14:44 Uhr)

Ähnliche Themen

  1. Zeitmessung in Structur Text
    Von Leto im Forum CODESYS und IEC61131
    Antworten: 18
    Letzter Beitrag: 03.04.2012, 11:58
  2. Beckhoff Zeitmessung
    Von cas im Forum CODESYS und IEC61131
    Antworten: 10
    Letzter Beitrag: 15.08.2011, 17:53
  3. Zeitmessung über Prozessalarm
    Von tigger im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 14.06.2011, 22:44
  4. Zeitmessung
    Von bastler im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 06.09.2009, 09:31
  5. S5 Zeitmessung
    Von Buh im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 01.08.2005, 07:16

Stichworte

Lesezeichen

Berechtigungen

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