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

Ergebnis 1 bis 10 von 10

Thema: Inkremental Geber Baustein

  1. #1
    Registriert seit
    19.03.2016
    Beiträge
    13
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin Leute,
    kennt jemand einen Baustein der ein inkrementales Geber Signal auswerten und mit zählen kann? Also der auch Drehrichtung verrechnen kann. Wenn ich manuell so ein Baustein programmiere ist Berechnung zu langsam und er zählt nicht genau.
    Zitieren Zitieren Inkremental Geber Baustein  

  2. #2
    Registriert seit
    07.06.2007
    Beiträge
    143
    Danke
    2
    Erhielt 24 Danke für 24 Beiträge

    Standard

    Wenn der selbst programmierter Baustein zu langsam ist gibt es 2 Gründe dafür:

    1. Nicht performat programmiert und somit Zyklen verschwendet,...
    2. Dein SPS Zyklus ist zu hoch und du bekommst nicht alle Inkremente mit.

    Lösung:
    1. Baustein performater programmieren (dazu brauchen wir deinen Code)
    2. Absolutwertgeber kaufen der die immer die absolute Position meldet. Dann ist es nicht so schlimm wenn du nicht alle Inkremente mitbekommst da du ja immer den Absolutwert erhälst.

    Tipp:
    Lösung 2 nutzen oder: Einen Inkrementalgebereingangskarte kaufen
    - bei Siemens gibt es sog. Zählerkarten die genau dafür sind im Prinzip sind das kleine CPUs mit ausreichend Leistung um alle Inkremente zu erkennen und diese dann in den langsamen SPS Zyklus zu übergeben als Absolutwert o.ä.
    - Bei Codesys gibt es das natürlich auch, bei Wago z.B. oder bei Festo das Encodermodul auf der CECX Basis (geht nicht bei CPX)

    Wenn du einen selbst programmierten Baustein nutzt musst du immer das "Nyquist-Shannon-Abtasttheorem" im Kopf haben. Das sagt aus: Deine Abtastfrequenz muss immer größer als zwei mal die abzutastende Frequenz sein sonst erhälst du Aliasingeffekte.
    fAbtast > 2*f

    Bei 1000 ink/s bedeutet das => 1 ink / ms
    Daraus ergibt sich eine Abtastungsperiode von max 0,4999.. ms also eine Frequenz von 1/0,00049999s = 2000Hz
    Das würde keine SPS packen..


    ==> Kauf dir eine Zählerkarte/Encoderkarte oder ein Absolutwertgeber mit Busanschluss (CAN, PB, PN, Ethercat,.. was auch immer)

  3. #3
    Purple ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.03.2016
    Beiträge
    13
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Das sind ja schon mal ein paar Möglichkeiten. Es ist so das meine SPS die Signale schnell genug aufnimmt. Nur ab und zu verzählt er sich bei den Wendepunkten um ein oder zwei Impulse. Wenn ich es aufwendiger mit kompletter Sicherheit programmiere läuft das dann aber nicht mehr wirklich. Daher wollte ich mal so einen Baustein ausprobieren weil die ja ideal ausgelegt sind bevor ich mir was anderes kaufe.

  4. #4
    Registriert seit
    07.06.2007
    Beiträge
    143
    Danke
    2
    Erhielt 24 Danke für 24 Beiträge

    Standard

    Naja einen Baustein kenne ich da nicht. Interessant wäre dein Geber. Hast du dir da was selbst gebaut mit nur einem Ini/Lichtschranke,.. oder hast du zwei? Du brauchst min. 2 um die Drehrichtung ermitteln zu können. Dann solltest du dein Programm so erstellen, dass du nicht eine Schrittkette nutzt die evtl. in einem Schritt steht wo ein Ink nicht mitgezählt wird. Du musst sicherstellen, dass dein Programm in jedem Zyklus mitzählen kann. Logischerweise musst du immer min. ein Zyklus ein "TRUE" Signal haben und min ein Zyklus ein "FALSE" Signal damit du alle Inkremente mitbekommst.

    Vielleicht auch eine seperate hochpriore Task erstellen die mit kleinster Zykluszeit läuft damit du keine Schwankungen des Zyklus des restlichen SPS Programms einfängst.

    So wie du das beschreibst geht es eigentlich nicht um das Erkennen der Inkremente, sondern nur um das Erkennen der Drehrichtung damit du + oder - rechnen kannst.

    Fangen wir vorne an:
    Wie sieht dein Geber aus? Inis, Lichtschranken oder ein gekaufter Geber mit RSxxx?

  5. #5
    Purple ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.03.2016
    Beiträge
    13
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich habe einen inkrementalen Drehgeber gekauft der 360p/rpm hat un 2 versetzte Signale ausgibt. Ein Motor treibt ihn mit 15 rpm an. Das macht 90 Impulse in der Minute. Das sollte ein SPS doch hinbekommen oder?

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

    Knaller (26.03.2016)

  7. #6
    Registriert seit
    23.10.2009
    Beiträge
    390
    Danke
    58
    Erhielt 112 Danke für 86 Beiträge

    Standard

    Bei der geringen Drehzahl kann das kein Geschwindigkeitsproblem sein.
    Wenn Du an den Umkehrpunkten Zählfehler hast, dann stimmt Deine Auswertelogik nicht.
    Zu der Geberauswertung habe ich mal eine Aufgabe im Programmierwettbewerb gestellt.
    Den Thread findest Du hier. Da sind einige interessante Lösungen drin.

    Gruß
    Erich

  8. #7
    Registriert seit
    13.09.2007
    Beiträge
    566
    Danke
    50
    Erhielt 65 Danke für 57 Beiträge

    Standard

    Moin
    Du meinst sicher 90 Impulse pro Sekunde.



    Sent from my iPhone using Tapatalk

  9. #8
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    90 Imp./Sek. macht bei 2 um 90° versetzten Signalspuren 360 Signalflanken/Sek. im Abstand von 2.77 ms. Da sollte Deine SPS ihr Programm schon in einem festen 1ms-Zeitraster bearbeiten. Sollte es aber Deine Absicht gewesen sein, die Motorumdrehung mit 360° aufzulösen, bist Du mit dem Geber zu hochauflösend unterwegs.
    Dafür bräuchtest Du einen Geber mit 90 Imp./Umdrehung.

  10. #9
    Registriert seit
    21.02.2014
    Ort
    Sachsen-Anhalt
    Beiträge
    1.487
    Danke
    261
    Erhielt 243 Danke für 222 Beiträge

    Standard

    Wichtig ist in diesem Zusammenhang auch die Filterzeit der Digitaleingänge. Die Aufgabe ist schon sportlich über einen normalen Digitaleingang (Flanke alle 5.5ms pro Spur).
    Ich würde mich also als erstes dafür interessieren, welche SPS und welche Digin-BG Du benutzt. Im allgemeinen würde ich eine spezielle A/B-Zählerkarte bevorzugen.

  11. Folgender Benutzer sagt Danke zu weißnix_ für den nützlichen Beitrag:

    ostermann (27.03.2016)

  12. #10
    Purple ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.03.2016
    Beiträge
    13
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja ich meine natürlich 90 Impulse pro Sekunde. Ich hatte es am Anfang erst als Kettenschaltung programmiert. Jetzt hab ich es relativ einfach umgesetzt und er zählt nahezu fehlerfrei. Allerdings nicht mit der Geschwindigkeit des Motors. Bei 10 rpm funktioniert es aber schon. Ich benutze eine ILC 150 eth von Phoenix Contact.

    Merkwürdig ist nur das ich vorher nur einen Kanal benutzt habe um die Position mitzuzählen. So konnte ich nicht die Richtung bestimmen aber das konnte die SPS ohne Probleme mitzählen.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Purple (27.03.2016 um 16:24 Uhr)

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 16.03.2017, 09:15
  2. Inkremental-Drehgeber
    Von Messi90 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 10.07.2015, 11:47
  3. Antworten: 0
    Letzter Beitrag: 11.09.2010, 10:04
  4. Karte für Inkremental geber
    Von mitchih im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 17.10.2009, 18:01
  5. Inkremental Geber Baustein
    Von Poldi007 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 03.10.2009, 23:13

Lesezeichen

Berechtigungen

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