CoDeSys Impulsgeber mit Impuls = 1 SPS-Zyklus in FUP

SPS_Bananen

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Liebe Community,

wir haben ein Problem bei der Bearbeitung einer Studienarbeit. Evtl. wurde das Problem in einem vorherigen Beitrag schon beschrieben, falls dem so ist, haben wir die Lösung allerdings nicht verstanden. Wir sind übrigens CoDeSys-Anfänger.

Wir suchen einen Impulsgeber der alle x-Sekunden einen Impuls (Bool) ausgibt, welcher genau einen SPS-Zyklus andauert. Dieser sollte in FUP programmiert sein. Neben den Standard-Bausteinen von CoDeSys steht uns zusätzlich die Oscat-Bibliothek zur Verfügung.

Vielen Dank für eure Hilfe
 
Diese Aufgabenstellung assoziiert irgendwie das Stichwort Flankenerfassung, mit dem Ihr Euch mal befassen solltet.
 
Also, stefan hat Euch eine komplette Lösung präsentiert. tcycletime_IN ist eine Eingangsvariable dieses Funktionsblocks und entspricht x-sekunden Eurer Aufgabenstellung.
Das ganze liesse sich auch noch auf die Hälfte kürzen.
Habt Ihr eine Runtime zur Simulation zur Verfügung? Unbedingt besorgen, und stefan's Tip mal ausprobieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ja uns ist schon klar, dass tCycletimeIN eine Eingangsvariable dieses Blockes ist, aber wie rufen wir den Wert der Zykluszeit ab? Wir wissen ja nicht genau wie lange die Zykluszeit ist und können daher ja nichts eintragen. Gibt es eine Funktion zum Abruf dieser Zeit?
 
Es handelt sich dabei um einen Funktionsblock.Am Eingang tCycletime_IN könntet ihr den Abstand des Taktsignals vorgeben. Aufrufen könnt Ihr den FB dann in eurem Hauptprogramm.
 

Anhänge

  • AufrufTakt.jpg
    AufrufTakt.jpg
    30,3 KB · Aufrufe: 79
Also langsam:

Eure Aufgabenstellung lautet: Alle x-sekunden einen Impuls für einen Zyklus.

Alle x-sekunden bedeutet in der praktischen Anwendung die Realisierung einer extern vorgegebenen Zeit.
Für einen Zyklus bedeutet, die Kenntnis über die zyklische Arbeitsweise einer SPS vorausgesetzt, Den kürzestmöglichen programmgesteuerten Impuls zu erzeugen.

x-sekunden entspricht tCycletime_IN zum testen mal beliebig zum Beispiel t#1s
xTrigger_OUT entspricht dem Ausgangsimpuls. Hier braucht Ihr keine weiteren absoluten Zeitangaben. 1 ZYKLUS ist als relative Zeitangabe absolut perfekt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Weißnix hat übrigens absolut recht. Ihr braucht nur einen TON Baustein. Mit dem Ausgang des TON den Ausgang xTrigger_OUT beschalten, und den TON mit dem negierten Ausgang wieder triggern. Den Zeitwert braucht Ihr dann auch nicht zu halbieren.
 
Zurück
Oben