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

Ergebnis 1 bis 6 von 6

Thema: 32Bit Zähler mit Drehgebersignalauswertung + Richtung

  1. #1
    Registriert seit
    22.10.2010
    Beiträge
    188
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    bin zwar erst Neuling bezüglich S7 programmieren, aber ich glaube ich komm ganz gut voran.
    Mir fehlen viele fertige Standardbausteine, wie z.b bei einer Siemens Logo.

    Es gibt zwar teilweise fertige Bibliotheken, aber ich hab jetzt mal selber zum Erstellen angefangen. Da lernt man eh am besten.

    Folgendes hab ich bereits gemacht:

    Einen Wandler, der mir bei einen Merkerdoppelwort die zwei Wörter vertauscht (wegen HMI-Display, MW´s sind vertauscht)
    Einen 32Bit-Zähler mit Eingangssignal A u. B + Richtungsauswertung. Desweiteren kann eine Abschaltung ab einen bestimmten Wert erfolgen. (Einsatzbereich Wickeltechnik; Meterzählung + Meterabschaltung)


    Beides kann in meiner eigenen Bibliothek als FC aufgerufen werden. Ist ganz praktisch, da man ja immer die selben Funktionen braucht.


    Nun aber zu meiner Frage bezüglich Drehrichtungsauswertung:

    1. Reicht es, wenn beim Kommen des Signals A vom Drehgeber abgefragt wird, ob das B-Signal aktuell 1 oder 0 ist und daraufhin ein Impuls in positiver oder negativer Richtung ausgegeben wird?

    Hab zuerst mehr oder weniger beide Signale abgefragt. Wenn Signal A kommt und danach B , dann positiv. Wenn zuerst B und dann A kommt, dann negativ.
    Wenn ich mir aber die Funktion von einen Drehgeber so anschaue, dann müsste es doch reichen, die Abfrage so wie in Punkt 1 zu machen oder?
    Zitieren Zitieren 32Bit Zähler mit Drehgebersignalauswertung + Richtung  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Hi,

    es würde theoretisch mit deiner einfachen Auswertung funktionieren, damit hast du aber nur ein viertel der Auflösung die der Drehgeber eigentlich hätte.
    Ein weiterer Nachteil ist, dass deine Erkennung empfindlich auf ein wackelndes Signal auf deiner der Leitungen reagiert.
    Wenn z.B. Spur A sporadisch flackert und Spur B stabil bleibt, dann würde deine Auswertung bei jedem Signalwechsel eine Wertänderung in eine Richtung registrieren.
    Dein Zähler würde damit voll aus dem Ruder laufen.

    Besser ist es, die Signale des Gebers vom Gray-Code in den Wert zurückzuwandeln.
    Dazu kannst du anhand der Signale die Wertigkeit anhand folgender Tabelle bilden:

    Zustand : Wert
    --------------------
    A=0 und B=0: 0
    A=1 und B=0: 1
    A=1 und B=1: 2
    A=0 und B=1: 3

    Bei jedem Aufruf vergleichst du den Wert mit dem vom letzten Aufruf und bildest die Differenz.

    Wenn jetzt z.B. B=0 ist, und A zwischen 1 und 0 flackert, bekommst du bei der Differenz abwechselnd -1 und +1 heraus.
    Damit ist deine Zählerauswertung um maximal 1 verkehrt.

  3. #3
    Xplosion ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.10.2010
    Beiträge
    188
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich google grad ein bisschen. Glaub ich verstehe schon was du meinst. Aber wie man sowas umsetzt entzieht sich meiner Kenntnis.

    Ich weiß wie ein Inkrementalgeber funktioniert und habe eigentlich immer welche mit den Anschlüssen: A,Anicht,B,Bnicht,0,0nicht

    Jetzt müsstest mir nochmal erklären, welche Signale ich wirklich davon verwenden sollte für eine exakte und fehlerfreie Messung.

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

    Standard

    Sie brauchen fur eine zahler nur die kanale A und B.
    Jede kanal abfragen auf FP und FN , ist ein resultat 1 dan das resultat vergleigen mit der zustand von das andere kanal und an had davon die zahler adieren mit +1 oder -1, mit dieser lossung haben Sie die 4 fache auslossung von der Encoder.

    Code:
      U     #Ingang_A
          FP    #FP_A
          =     #MerkerA
    
          U     #Ingang_B
          FP    #FP_B
          =     #MerkerB
    
          U     #Ingang_A
          FN    #FN_A
          =     #MerkerC
    
          U     #Ingang_B
          FN    #FN_B
          =     #MerkerD
    
         
    
          O     #MerkerA
          O     #MerkerB
          O     #MerkerC
          O     #MerkerD
          SPBN  end
    
         
          U     #MerkerA
          UN    #Ingang_B
          O     
          U     #MerkerB
          U     #Ingang_A
          O     
          U     #MerkerC
          U     #Ingang_B
          O     
          U     #MerkerD
          UN    #Ingang_A
          SPBN  en1a                        // als status = 0 dan omlaag tellen anders optellen
          L     L#1
          SPA   en1b
    en1a: L     L#-1
    en1b: T     #hulp
          L     #Totaal
          +D    
          T     #Totaal

  5. #5
    Registriert seit
    16.06.2004
    Beiträge
    60
    Danke
    3
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo,
    für Deine theorethische Auswertung reicht es, wenn Du das Richtungs-Signal als Master betrachtest.
    Richtung = +, dann Vorwärts / Richtung = -, dann Rückwärts

    In der Praxis wird eine Zählerbaugruppe, bzw, Zählerkarte verwendet.
    Dazu gibt es entsprechende F_B/C's, die mit der HW leider nicht mitgeliefert werden.
    Z.B: FM-350-1;

    Aber zum Guten: hier im Forum gibt es ein Thema über Zählerauswertung.
    Ah, es wurde sogar ein Programmierwettbewerb durchgeführt.

    Für Details ist es aber für mich zu Wochenendig.

    Ein schönes WE
    jb

  6. #6
    Xplosion ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.10.2010
    Beiträge
    188
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Für meine Insevis-CPU gibt es auch eine Zählerkarte. Aber diese hat doch nur die Funktion der schnellen Zählung oder?

    Oder gibt es dann dafür auch spezielle Funktionsbausteine oder Funktionen?

    Prinzipjell geht es mir erstmal darum, diese Erkennung richtig zu programmieren. Danach muss ich natürlich schauen, wie es mit den "normalen Digitaleingängen" ausschaut bezüglich der Erkennungszeit.

    Brauche eigentlich nur einen "normalen Meterzähler". Hab so einen schonmal in der Siemens Logo genutzt. Man muss halt aufpassen, dass die Zykluszeit immer unter der effektiven Impulsdauer ist.

    Es reicht, wenn ich eine Ware mit einer Geschwindigkeit von 300m/min in 10cm-Schritten messen kann. Das sind 5m/s und bei einem 50cm-Messrad (Umfang) ergibt das 50 Impulse pro Sekunde.
    Mit einer 0BA7 Logo mit 4ms Zykluszeit hab ich diese Auswertung nicht mehr ganz geschafft. Bin dann auf 25cm-Schritte zurückgegangen. Seitdem funktioniert es 100%ig genau.

    Da ich solche Aufgaben aber in Zukunft mit der S7 lösen möchte, versuche ich mich in diese Thematik schonmal rechtzeitig einzuarbeiten.

    Falls ich doch so ein Zählermodul benötige, wie funktioniert das dann eigentlich? Sobald ich einen Funktionsbaustein oder Funktion aufrufe, benötigt das doch eine Abarbeitungszeit.

    Bei der Logo durfte man schnelle Eingänge nur direkt auf einen Zähler geben. Sobald eine andere Funktion dazwischen war, hängt man wieder in der Zykluszeit fest.
    Geändert von Xplosion (28.06.2013 um 20:51 Uhr)

Ähnliche Themen

  1. Weiterbildung in Richtung SPS
    Von Mahlzeit86 im Forum Stammtisch
    Antworten: 8
    Letzter Beitrag: 07.12.2012, 09:56
  2. FIFO Puffer mit 32Bit
    Von Anonymous im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 22.06.2011, 18:58
  3. Antworten: 0
    Letzter Beitrag: 17.10.2009, 16:39
  4. Antworten: 5
    Letzter Beitrag: 24.05.2009, 14:02
  5. Antworten: 31
    Letzter Beitrag: 04.11.2007, 02:05

Lesezeichen

Berechtigungen

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