Zeitverzögerung im Programm (CFC oder ST)

Xine
2008-01-31
2008-02-03
  • Xine - 2008-01-31

    Nabend alle zusammen!

    Ich habe ein Problem bei meinem CoDeSys-Programm, welches ich in CFC aufbaue, einzelne Bausteine aber in ST selbst schreibe. Allerdings komme ich nun beim selbst schreiben auch nicht weiter.

    Ich möchte zwei Signale auf Gleichheit überprüfen. Genauer sind es nicht zwei, sondern ein und dasselbe Signal - einmal direkt, einmal zeitverzögert. Ich hab versucht, mit mit einem TON-Baustein etwas selbst zu basteln, aber irgendwie macht es nie das was es soll:

    Eigentlich soll es ganz simpel sein: "Wert_direkt" und "Wert_um_5_Sekunden_zeitverzögert" sollen in einen EQ-Baustein geführt und halt auf Gleichheit überprüft werden. Wenn ich den Wert in eine Variable speichere, dann einen TON mit 5 Sekunden benutze und mit dessen Ausgang dann einen weiteren Baustein aktiviere, der den Wert dann in eine andere Variable speichert, funktioniert der EQ-Vergleich nicht. Angeblich sind die Werte immer gleich, aber da ich sie ja beim Durchlauf verändere, weiß ich, dass sie es NICHT sind. Das kann doch so schwierig nicht sein... Hat jemand vielleicht einen entscheidenden Hinweis, wie man das handhaben könnte? (Hab schon mehrere Versionen ausprobiert, sowohl in ST, als auch in CFC - nix geht, immer gleiches Ergebnis...).

    Danke schon einmal für eure Hilfe!!!

    Xine

     
  • hugo - 2008-01-31

    wenn du es in cfc machen willst dann geh in die oscat lib unter w www.oscat.de w und hol dir einen der sample and hold bausteine damit kannst du einen wert 5 sekunden lang speichern

    die gausteine heisen sh???

     
  • Xine - 2008-01-31

    hi hugo!

    danke für den tipp! kannte ich noch nicht. werde ich morgen früh gleich mal durchforsten die seite. sind ja verschiedene lib-versionen auf der seite, wie ich gerade gesehen habe. bin gespannt.

    merci! XINE

     
  • Xine - 2008-02-01

    hi hugo.

    habe mir die lib mal angeschaut und auch die SH-bausteine. feine sache! für meine problematik wäre ja der 2. (also SH_1) baustein dieser reihe geeignet, sprich der mit der zeitaktivierung.

    es taucht auf tx := DWORD_TO_TIME(T_PLC_MS()), worin jedoch T_PLC_MS() auftaucht. die bausteinbeschreibung zu T_PLC_MS habe ich gefunden. mir wurde heute gesagt, dass ich diese "fremden" bausteine nicht einfach übernehmen soll. leider.

    nun fehlt mir so natürlich die möglichkeit, den SH-baustein einfach alle x sekunden zu aktivieren. mit TON geht dies ja wieder nicht so einfach, da der TON sich ja immer neu aktivieren müsste. findet man denn dafür irgendwo den quelltext, der in CoDeSys auch verwendet werden kann (ohne, dass die kollegen angst bekommen, dass bausteine verwendet werden die sie nicht nachvollziehen können)?

    vielleicht stell ich mich auch zu paddelig an...

    danke für eure hilfe!

     
  • Oberchefe - 2008-02-03

    Zitat:
    mit TON geht dies ja wieder nicht so einfach, da der TON sich ja immer neu aktivieren müsste

    MeinTon(IN:=NOT(MeinTon.Q) , PT:=t#5s , Q=> , ET=> );
    
     

Log in to post a comment.