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

Ergebnis 1 bis 7 von 7

Thema: Auswertung Drehgeber (Handrad)

  1. #1
    Registriert seit
    13.06.2007
    Ort
    Amberg
    Beiträge
    89
    Danke
    15
    Erhielt 9 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forum Mitglieder,

    ich habe folgendes Software Problem, an einem Profibus - Master ist ein Drehgeber
    angeschlossen; der Drehgeber ist ein Handrad, diese liefert einen Zählerwert mit einer
    größe von einem Byte (0-255) zurück, wird das Handrad nach rechts gedreht wird
    der Wert größer (links kleiner), wird der Wert aber größer als 255, beginnt der Zähler wieder bei
    null, es gibt auch kein Signal für einen Überlauf.
    Nun möchte ich einen Sollert für einen FU, mit diesem Signal (Zählerstand) erzeugen
    von 0-1000, durch diesen unkontrollierbaren Überlauf ist das aber leider nicht ganz
    einfach, zudem sollte das ganz natürlich auch abwärts zählend funktionieren,
    dabei ist der null Durchgang, wieder das Problem.
    Wer kann mir da einen Lösungsvorschlag unterbreiten, SPS - Sprache egal, kann
    ich selbst an die Steuerung anpassen.

    Gruß
    GFI
    Zitieren Zitieren Auswertung Drehgeber (Handrad)  

  2. #2
    Registriert seit
    31.10.2005
    Beiträge
    26
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Servus,

    den Überlauf musst du dir dann selber programmieren:
    Steigt der Wert im Bereich von 0 - 50 --> = Merker_POS (positive Richtung)
    Sinkt der Wert im Bereich von 255 - 205 --> = Merker_NEG (negative Richtung)
    mit den beiden Merkern wiederum über flanken Auswertung ein "Store"-Byte oder Int hoch/runterzählen


    HTH

    Tobi

  3. #3
    GFI ist offline Benutzer
    Themenstarter
    Registriert seit
    13.06.2007
    Ort
    Amberg
    Beiträge
    89
    Danke
    15
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Hallo Tobi,

    danke für die schnelle Antwort, der Tip mit den Bereichen ist gut, aber
    das Problem das der Drehgeber beim links lauf von 0 auf 255 springt
    und ich dann einen höheren Wert statt eines niedrigeren Wertes
    bekomme, ist damit aber auch nicht gelöst... oder habe ich da etwas nicht
    ganz verstanden?

    Gruß

  4. #4
    Registriert seit
    27.04.2006
    Ort
    Sauerland
    Beiträge
    626
    Danke
    183
    Erhielt 88 Danke für 81 Beiträge

    Standard

    Ich mache sowas gerne, indem ich die Differenz auswerte und dementsprechend ein DW hoch(runter)zähle.
    Die Kunst in der Personalführung ist es
    die Mitarbeiter so über den Tisch zu ziehen,
    dass sie die Reibungshitze als Nestwärme empfinden.

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

    Standard

    Also, ich schreib mal das Prinzip auf, wie ich es angehen würde.
    Jeden SPS-Zyklus (kann auch ein Zeittrigger sein) speichert man den Neu_Wert des vorhergehenden Zyklus in die Variable Alt_Wert, den aktuellen Wert in die Variable Neu_Wert. Dann bildet man die Differenz (Neu_Wert - Alt_Wert) aus diesen beiden Werten. Ist die Differenz negativ und z.Bsp. < 150, gab es einen Sprung von 255 --> 0, ist der Wert positiv und > 150 gab es einen Sprung von 0 --> 255.

    Bsp:

    1. rechts drehen (Wert steigt)

    Alt_Wert = 100
    Neu_Wert = 112
    Diff = 12
    alles normal

    Alt_Wert = 240
    Neu_Wert = 10
    Diff = -230
    Sprung von 255 --> 0

    2. links drehen (Wert fällt)

    Alt_Wert = 120
    Neu_Wert = 105
    Diff = -15
    alles normal

    Alt_Wert = 5
    Neu_Wert = 250
    Diff = 245
    Sprung von 0 --> 255

    Weiterhin führt man eine Variable Basiswert mit:
    Diese ist am Anfang = 0
    Stellt man einen Sprung 255 --> 0 fest, bildet man eine Flanke und addiert 256 zum Basiswert dazu
    Stellt man einen Sprung 0 --> 255 fest, bildest man eine Flanke und subtrahiert 256 vom Basiswert.

    Der aktuelle Stellwert ergibt sich dann immer aus:

    Basiswert + Neu_wert

    Zusätzlich sollte man den Basiswert bzw. den Stellwert noch auf seine erlaubten Grenzen hin überwachen.

    Basiswert: es wird nach links gedreht, der Basiswert wird Null, der Neu_Wert wird Null --> Sperrmerker setzen, Stellwert Null, nichts mehr machen. Jetzt beim erneutern Sprung 255 --> 0 den Basiswert nicht hochzählen, sondern den Sperrmerker zurücksetzen. Selbiges, beim Erreichen des Max-Wertes.

    PS. Statt des addierens/subtrahierens, kann man natürlich auch zählen (wie Repök) und diesen Zählwert mit 256 multiplizieren. So bekommt man dann auch seinen Basiswert.
    Geändert von Ralle (14.02.2008 um 20:32 Uhr) Grund: Ja, addieren muß man 256 :-)
    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

  6. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    GFI (16.02.2008)

  7. #6
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Hier ein beispiel program

    Joop
    Angehängte Dateien Angehängte Dateien
    • Dateityp: pdf FB2.pdf (4,7 KB, 110x aufgerufen)

  8. #7
    GFI ist offline Benutzer
    Themenstarter
    Registriert seit
    13.06.2007
    Ort
    Amberg
    Beiträge
    89
    Danke
    15
    Erhielt 9 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Tips,

    ich habe das Problem gelöst, einen Basiswert wie von Ralle vorgeschlagen
    benötigt man nicht unbedingt, wenn man die Sprünge durch 0 oder 255 gar nicht auswertet, sondern bei einem Sprung die Information ignoriert, da ich immer die Differenz des Gebers addiere und ist dieser größer als 50 oder kleiner als -50 dann wird kein Wert addiert.
    Bei der Handbedienung fällt das auch keinem auf.

    Als Anlage das Programm als KOP für eine Mitsubishi -A-Serie SPS

    Gruß GFI
    Angehängte Dateien Angehängte Dateien

Ähnliche Themen

  1. Handrad mit PLC auswerten?
    Von Boxy im Forum Programmierstrategien
    Antworten: 21
    Letzter Beitrag: 15.07.2011, 14:31
  2. Antworten: 0
    Letzter Beitrag: 19.09.2009, 09:40
  3. Antworten: 7
    Letzter Beitrag: 13.07.2009, 19:23
  4. Drehgeber an S7-200
    Von smartie im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 08.01.2008, 13:47
  5. s7 200, drehgeber, td 200
    Von thomas82 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.11.2006, 15:03

Lesezeichen

Berechtigungen

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