Re: 3 bit Vorwärtszähler

singleton
2011-12-19
2011-12-24
  • singleton - 2011-12-19

    Hi,
    wenn ich das richtig verstanden habe, sollst Du einen Binärzähler erstellen.
    Bei jedem Eingangsimpuls soll hochgezählt werden, dass letztendlich so was bei raus kommt:

    000
    001
    010
    011
    100
    ....

    Das lässt sich relativ einfach lösen, in dem man bspw. bei jedem Eingangsimpuls eine Variable (bspw. vom Typ word) um eins erhöht.
    An den Ausgängen wird die Variable bitweise (wMyCounter.0, wMyCounter.1, ...) ausgegeben. Bei Reset den Counter wieder auf 0 setzen.

     
  • singleton - 2011-12-19

    Wieso Schaltung? Habt Ihr da Vorgaben bekommen in welcher Sprache (AWL, AS, KOP, ST, ...) das zu implementieren ist?

    Ich würde so was in ST (Structured Text) realisieren. Und das hat wirklich nicht mal Ansatzweise etwas mit einer Schaltung zu tun.

    Nimms mir nicht krumm, aber ich denke Du hast noch prinzipiellen Nachholbedarf in Sachen IEC 61131-3.

     
  • singleton - 2011-12-19

    Falls Du wirklic FUP verwenden musst und auch CoDeSys Funktionalitäten nehmen darfst, dann könnte es so wie im Screenshot gehen.
    Alternativ müsstest Du den CTU Baustein selbst implementieren.
    Das ist jetzt nur eine von vielen Lösungen...

    IMG: Example.gif

     
  • Pitsch - 2011-12-21

    Hallo

    Mit einen 3-Bit Zähler kannst du nur auf 7 Zählen. Du hast also 8 Kombinations-Möglichkeiten 0 - 7.

    Versuchs mal so wie im Bild!

    Mit freundlichen Grüssen! Pitsch

    IMG: 3

     
  • singleton - 2011-12-21

    Abgesehen davon, dass Dein Prof. für diese unzulängliche Aufgabenstellung gefeuert werden sollte... (Enstschuldigung Herr Prof. wenn Sie die Aufgabe doch präziser gestellt haben)
    ...lese ich das so:

    Bei jeder steigenden Flanke eines Eingangssignals (BOOL) soll am Ausgang der Wert eines Zählers binär an Hand von drei Ausgängen dargestellt werden.
    Dann sollte die Lösung passen. Das Ganze müsste noch in einen FB verpackt werden um das auch optisch (Ein-/Ausgänge) darzustellen.

     
  • Pitsch - 2011-12-22

    Hallo

    Vielleicht entspricht das eher deiner Vorstellung.

    IMG: 3

     
  • Pitsch - 2011-12-24

    Hallo kaddi88

    Sorry:Ich habe noch etwas vergessen.
    Damit der Reset-Eingang funktioniert, muss im 'Count_3_Bit(FB)' noch ein Codeblock hinzugefügt werden.
    Schreib einfach unter die letzte Zeile noch:

    IF Reset = TRUE THEN
       Count := 0;
    END_IF
    

    Viel Spass beim Testen!

    Mit freundlichen Grüssen! Pitsch

     

Log in to post a comment.