Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Moeller XC201 und Inkrementalgeber

Borsti
2010-03-16
2010-03-18
  • Borsti - 2010-03-16

    Hallo zusammen!

    Ich bin ein blutiger Codesys- und leider auch Moeller Neuling, daher bitte ich vorab schonmal um Verzeihung

    Ich habe eine Moeller CPU 201- in welcher man die Eingänge 0.0-0.3 für einen Drehgeber verwenden kann.

    Soweit so gut, das funktioniert auch alles. Der Drehgeber gibt auch die Werte von 0-7999 ab, springt wieder

    auf null und zählt wieder hoch. (permanente Hardwarereferenzierung)

    Nun will ich aber jeden Nulldurchgang erfassen, und da stehe ich vor meinem Problem:

    wenn ich sehr langsam drehe erkennt er die null, sobald ich etwas schneller drehe (langsamer als 1U/sec.)

    wird der Nulldurchgang nicht mehr erkannt.

    Vom Programm her siehts so aus

    LD %IW2 (Zählerstand-Low-Word)

    EQ 0 (Vergleich mit Null)

    S Nulldurchgang (Variable - BOOL)

    Rückgesetzt wird später im Programm, wenn denn mal gesetzt wird und ich nicht zu schnell

    am Drehgeber gedreht habe....

    Wäre sehr dankbar für Eure Hilfe!!!

     
  • Michael.Klank - 2010-03-17

    Wie soll das auch gehen? Sobald du eine Geschwindigkeit größer 1 Inkrement/Abtastzeit hast, wirst du nur zufällig mal die Null erwischen! Du kannst also nur den Zyklus rausfinden in dem der Modulowert gekippt ist.

     ModuloWert:=8000;
     iDiff:=iGeberWert-iGeberWertOld; 
     iGeberWertOld:=iGeberWert;
     if ABS(iDiff)>(ModuloWert/2) then
       bNullDurchgang:=true;
     end_if
    ...
    

    Es geht auch noch etwas genauer mit Totzeitkompensation usw. (Nockenschaltwerk) aber das sollte so funktionieren, ist aber nicht getestet, weil ich nicht im Büro bin.

    Ich hoffe das hilft Dir weiter.

    Michael

     
  • Borsti - 2010-03-18

    Danke Michael, ich werds mal testen...

    LG

     

Log in to post a comment.