Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: S7 -200

  1. #11
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nein !

    Ich steh im Wald !

  2. #12
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Ok.
    Deine SPS arbeitet ihr normales Programm ab, indem sie vorne beginnt, alle Anweisungen ausführt und dann vorne wieder anfängt.
    Bei einem Interrupt-Ereignis unterbricht sie die Ausführung, arbeitet das Interrupt-Unterprogramm bis zum RETI ab und macht dann mit der Ausführung des (Haupt-)Programms da weiter, wo sie unterbrochen wurde.

    Nehmen wir an, sie braucht 10ms für die Ausführung deines Programs. Die Anweisung wo dein INI an E4.0 etwas in der Schrittkette bewirkt, komme 4ms nach Programmstart. Kommt nun der E4.0 etwas später als 4ms nach Programmstart, wird er in diesem Zyklus nichts mehr bewirken. Die nächste Chance kommt nach 14ms. Ist er zu diesem Zeitpunkt schon wieder 0, passiert gar nichts.
    Dies ist nicht die ganze ahrheit, da die SPS im Zyklus mit Zwischen den Zyklen gemachten "Schnappschüssen" der Eingänge arbeitet.

    Interrupts geben dir nun die Möglichkeit auf externe Ereignisse sehr schnell zu reagieren: Wenn dein Eingang (nicht e4.0, sondern einer auf der CPU, z.B E0.0) seinen Zustand ändert, SOFORT in das Unterprogramm zu springen. Dafür ist spezielle Hardware in der CPU vorhanden, die den Programmablauf unterbricht und den Befehlszähler auf den Anfang des Unterprogramms setzt (und die Stelle der Unterbrechung des Hauptprogramms speichert).
    Diese Hardware ist der Grund, warum es nicht mit Eingängen von Erweiterungsmodulen geht. Du mußt also umverdrahten.
    Hast du nun dem Unterprogramm INT_0 das Ereignis "steigende Flanke an E0.0" zugeordnet, so beginnt die CPU innerhalb von einigen 10uS nach dem Ereignis mit der Ausführung des Unterprogramms INT_0. Dein Hauptprogramm und deine Schrittkette "merken" davon erstmal GAR NICHTS. Wenn im Unterprogramm INT_0 nur RETI steht, wird es eben sofort beendet.
    Daher mein Vorschlag, daß du einen Merker setzt. Dieser speichert die Information, daß überhaupt das Ereignis aufgetreten ist. Im Hauptprogramm wertest du nun STATT des E4.0 oder E0.0 den Merker aus. Und du mußt ihn zurücksetzen, damit der Mechanismus erneut funktionieren kann.

  3. #13
    Registriert seit
    12.06.2005
    Beiträge
    38
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Aha ... das ist doch mal eines fette und nette Aussage! Habs kapiert und gleich in die Tat umgesetzt! Gut, dass die CPU bis zu 4 Eingänge mit diesen Anforderungen steuern kann! Ich brauche nämlich auch 4 ^^!
    Ich denke ich werde mich morgen dran ergötzten können!

    THX für deine Schreibmühen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •