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

Schleife über Ausgänge

Cybot
2005-05-25
2005-06-01
  • Cybot - 2005-05-25

    Ich würde gerne in einer Schleife über 23 Digitale Ausgaänge, jeden ausgang für 4 Minuten mit TRUE ansteuern

    hat jemand ein Tipp oder Ansatzpunkt wie ich das umsetzen kann?

    Oder muss ich tatsächlich jeden Ausgang einzeln nacheinander ansteuern?

     
  • Cybot - 2005-05-30

    P.S. ich bin blutoiger Anfänger! aber trotzdem einfache Stichpunkte würden mir reichen,

    Wenn ich z. B. ein Array von Adressen habe, wie kann ich dies durchlaufen?

     
  • RolandWagner

    RolandWagner - 2005-06-01

    Was man machen kann, wäre die Ausgänge in einem WORD zusammenzufassen:

    VAR

    Out AT %QW0:WORD;

    END_VAR

    Die einzelnen Ausgangsbits kann man ja dann über ein entsprechendes Bitmuster setzen. Wenn Du jeden Ausgang nacheinander 4 Minuten auf TRUE setzen möchtest, könntest Du z.B. folgendes machen:

    Out := 1; ( Das LSB von Out wird auf TRUE gesetzt, alle anderen auf FALSE )

    Und nach 4 Minuten schiebst Du das entsprechende Bit um eine Stelle weiter:

    Out := SHL(Out,1);

    Somit wird nun das 2. Bit auf TRUE gesetzt. usw.

    Wenn Du mit einem Array arbeiten möchtest, könntest Du Dir auch eine Funktion schreiben, die jedes einzelne Ausgangs-Bit in eine booleschen Variable eines Arrays schreibt bzw. eine entsprechende "Gegenfunktion", die Bits entsprechend wieder zurück auf die Ausgangs-Bits schreibt.

    Aber generell kann man kann eine Ausgangsbits in Arrays stecken.

     

Log in to post a comment.