vierlagig (05.02.2009)
Hi!
Zykluszeit ist die gesamte Zeit die eine CPU für die Abarbeitung des gesmaten Anwenderprogramms benötigt. Die ist bei mir als maximale Zykluszeit mit 5 ms angegeben.
Ich habe in meinem Programm 5 FCs und jedes davon steuert ein Lauflicht mit jeweils 5 Sekunden.
Prinzipiell müßte die Zykluszeit dann min. 25 Sekunden betragen, oder?
Die CPU springt in ein FC bearbeitet diesen und setzt die Bearbeitung im OB1 fort.
Kann mir jemand das erklären?
Danke!
vierlagig (05.02.2009)
Die Zykluszeit ist die, die die SPS benötigt einmal komplett durch ihr Programm durchzulaufen und zusätzlich noch die Eingänge zu lesen, sowie die Augänge zu schreiben. Die SPS bleibt ja nicht in jedem FC stehen und wartet 5 Sekunden, das wäre eine Katastrophe, denn was passiert in dieser Zeit mit den restlichen Abläufen? Also rast die SPS immer durch eine Endlosschleife, hier 5 ms und arbeitet das Programm ab. Die Timer laufen dabei "unabhängig" von der Zykluszeit. Laufen sie ab, wird im Zyklus X von der SPS festgestellt, der Timer ist abgelaufen, dann werden die weiteren Verknüpfungen mit dem Timer entspechend der programmierten Logik dazu führen, daß z.Bsp. ein Ausgang (Licht) eingeschaltet wird.
Gruß
Ralle
... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
and the third kinds of people … those who love TIA-Portal
das s7 programm wird immer von oben nach unten durchlaufen
und normalerweise von nichts und niemanden aufgehalten
bei zeiten wartet er nicht 5 sek bis sie geschalten haben sondern geht einfach weiter und wenn die 5 sek abgelaufen sind und er wieder vorbei kommt wird die aktion ausgeführt
stell dir mal vor du programmierst eine zeit und deswegen darfst du keine eingänge mehr lesen
Danke schön!
Na gut, also wenn ich jetzt z.B. hinter einem "5 Sekunden FC" einen Ausgang per Schalter setzen möchte, würde es nicht gehen? Oder doch? (also bevor die 5 Sekunden abgelaufen sind)?
wenn du die zeitabfragst ob sie abgelaufen ist und dann erst schaltest dann hast du recht
wenn einfach einen neuen befehl schreibst ist er unabhängig von der zeit
mister_chaos (05.02.2009)
Ich hoffe, du hast keinen wirklichen 5-Sekunden-FC geschrieben. Wenn du einen FC schreiben würdest, der tatsächlich in einer Schleife 5 Sekunden hängen bleiben würde, dann geht deine SPS in STOP, denn das ist nicht erlaubt. Die SPS läuft in deinem Falle alle 5 ms durch den FC und bearbeitet ihn. Alles was darin steht wird ausgeführt. Ich denke, du hast einen Timer darin, der 5 Sekunden laufen soll. Die SPS kommt also alle 5 ms vorbei und schaut nach, ob der Timer schon die 5 Sekunden gelaufen ist. In deinen Logikschaltungen hast du z.Bsp. stehen
U T0
= A0.0
Wenn also die SPS nach X Zyklen vorbeikommt und der Timer ist abgelaufen, dann ist T 0 auf True und nun schaltet die SPS A0.0 auf True. Vorher war T0 auf False und die SPS hat den Ausgang immer auf 0 geschaltet.
Das ist eigentlich schon alles.
Gruß
Ralle
... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
and the third kinds of people … those who love TIA-Portal
mister_chaos (05.02.2009)
Bookmarks