OSCAT Forum

oscat.lib => oscat.lib fuer TwinCAT/CoDeSys => Thema gestartet von: Klimamensch am 22. Januar 2013, 08:51:13

Titel: Baustein DELAY funktioniert nur in Simulation
Beitrag von: Klimamensch am 22. Januar 2013, 08:51:13
Hallo,

der Baustein DELAY tut bei mir nich was er soll. Es handelt sich dabei um einen Baustein, der eingehende Werte speichert und nach vorgegebenen, n-Zyklen weitergibt. Im Simulationsmodus funktioniert dies auch. Wenn ich aber mein Programm auf der SPS starte, werden die Werte mit lediglich mit minimaler Verzögerung weitergegeben. Das ist schlecht, weil ich ja eigentlich eine große Verzögerung brauche.
Meine Vermutung ist, dass diese Unterschiede durch verschiedene Zyklus-Zeiten der SPS und der SImulation zustande kommen. Leider weiß ich auch nicht, wo ich diese Zeiten anschauen, bzw. ändern kann.

Über hilfreiche Ideen würde ich mich sehr freuen.
Titel: Re: Baustein DELAY funktioniert nur in Simulation
Beitrag von: linsenpago am 22. Januar 2013, 11:04:36
Ich bin jetzt auch nicht der Profi. Was ich mir aber gerade denke ist, wenn du Online gehst und dann in den Reiter "Recourcen" und weiter in die "Taskkonfiguration" dann siehst du zumindest wie schnell die Zyklen laufen und dementsprechend den Wert anpassen.

Bei mir läuft das sehr sehr schnell nach oben.
Titel: Re: Baustein DELAY funktioniert nur in Simulation
Beitrag von: Omalik am 22. Januar 2013, 23:39:53

Hallo ,
Du kannst auch mehrere delay Bausteine in Serie schalten  ;)  , dass du so dein Delay kriegst .

Gruß
Titel: Re: Baustein DELAY funktioniert nur in Simulation
Beitrag von: Klimamensch am 23. Januar 2013, 11:33:00
Hallo,

ich habe den Code des Bausteins so verändert, dass das Array, in den die Eingangswerte geschrieben werden, anstatt 32 nun 4096 Werte aufnehmen und speichern kann. Damit komme ich an die gewünschte Totzeit von ca. 30 Sekunden. Scheinbar hat meine SPS eine Zykluszeit von 7ms.

Vielen Dank für die Hilfe
Titel: Re: Baustein DELAY funktioniert nur in Simulation
Beitrag von: shooter am 23. Januar 2013, 13:16:56
klima mensch
if you do this your delaytime is different from simulation (sim is very slow)

if you do this with a trigger by a timer it will shift every rising edge of it.

you can also put this in a separate task and have it timed on 1 second. then use N:=30
in this case the PLC_PRG has to be set on high priority (like 15)
and it should be in the task list as the only freewheeler.