USINT Variable nicht mit '0' initialisieren

kdebu
2014-06-02
2014-06-05
  • kdebu - 2014-06-02

    Hallo,

    gibt es eine Möglichkeit, eine Variable vom Datentyp nicht mit einer '0' zu initialisieren?
    Das Problem besteht darin, dass beim Starten der SPS kurzzeitig eine '0' auf den Ausgang geschrieben wird. Dies hat zurfolge, dass die sich am Ausgang befindenden Relais kurzzeitig anziehen.

    Eine Einschaltverzögerung kommt leider nicht in Frage.

    Auch eine Initialisierung mit

    out : USINT := 16#FF;
    

    scheint nicht zu funktionieren.

    Gibt es noch eine andere Möglichkeit?

    Gruß
    kdebu

     
  • glimnix - 2014-06-04

    Wäre nicht ein simpler Init-State für deine DOs eine Lösung, den du nach dem Einschalten durchlaufen lässt? In diesem setzt du den Wert, den du haben willst und verlässt ihn erst wenn der Wert übernommen wurde. Im nächsten dann beginnst du erst mit der Ausgabe auf deine DOs.

     
  • kdebu - 2014-06-05

    Moin,

    das mit dem Init-State wäre vielleicht eine Möglichkeit... Allerdings lässt sich das wohl mit dem Raspberry Pi nicht so einfach umsetzen...

    Ich habe das Problem nun anders lösen können:

    i := Read(ADR(in), 1); // i ist Rückgabeparameter der Methode
    out := in;
    IF i = 1 THEN
       Write(ADR(out), 1);
    END_IF
    

    Somit wird der Ausgang erst nach erfolgreicher Leseoperation beschrieben.

    Gruß
    kdebu

     

Log in to post a comment.