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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Adressregister konsistenz

  1. #1
    Registriert seit
    08.07.2011
    Beiträge
    37
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo alle zusammen,
    ich habe eine Frage, die ein wenig SPS-S7-Systemkenntnisse voraussetzt und ich mir selbst aus diesem Grund nicht zu 100% beantworten kann.

    Wenn ich mit den Adressregistern arbeite (AR1,AR2) in einem Funktionsbaustein der in OB1 aufgerufen wird, können mir diese Register während eines Durchlaufes des genannten FBs von höher priorisierten OBs/FBs mit anderen Werten überschrieben werden.
    Also kann ich davon ausgehen, dass wenn ich am Anfang des FBs AR1 setzte, dass der gesetzte Wert auch am Ende des FBs immer noch im Register steht?

    Wenn ja wie kann ich das verhindern, gibt es eine z.B. eine Möglichkeit eine "Interruptfreie-Zone" zu schaffen?

    Oder besitzt jeder FB/OB seinen eigenen Adressregister?

    Ich hoffe ich konnte meine Frage einigermaßen deutlich formulieren und bin auf eure Meinung oder Wissen sehr gespannt.

    Beste Grüße
    FinalMistery
    Zitieren Zitieren Adressregister konsistenz  

  2. #2
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard

    Du könntest doch AR1 und AR2 retten
    und am Ende wieder zurück

    z.B.

    Code:
    TAR1 #RETTEAR1 (DWORD)
    TAR2 #RETTEAR2 (DWORD)
     . 
     . 
     .
     .
    LAR1  #RETTEAR1
    LAR2  #RETTEAR2
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

  3. #3
    Registriert seit
    08.07.2011
    Beiträge
    37
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das ist natürlich eine Möglichkeit, doch kann mir auch dort wo du die Punkte gemacht hast (also zwischen Retten und Zurückschreiben) durch einen anderen FB oder DB dazwischen geschossen werden?
    Mein FB wird nach Fertigstellung in ein großes System integriert in dem ich nicht weiß, wie mit den Adressregistern umgegangen wird.

  4. #4
    Registriert seit
    22.01.2010
    Ort
    Dresden
    Beiträge
    33
    Danke
    2
    Erhielt 12 Danke für 11 Beiträge

    Standard

    Damit man Interrupts (Alarme) überhaupt sinnvoll einsetzen kann, muss das Betriebssystem der S7 alle zentralen Register (AKKUs, ARs) und Flags retten und nach Bearbeitung des Interrupt-Handlers (OB) wiederherstellen. Auch wenn diese Behauptung zwingend ist, habe ich keine passende Stelle in einem Siemens-Handbuch gefunden, die das belegt. Mit SFC41 und SFC42 kann die Alarmbearbeitung verzögert und wieder freigegeben werden (Interrupt-freie Zone). Auch wenn Du Dich nicht um die CPU-internen Register kümmern musst - gemeinsame Speicherbereiche wie Merker, DBs, etc. könnten sich nach dem Interrupt schon geändert haben.

    Viele Grüße,
    Jens
    GWT-TUD GmbH
    www.autospy.de

  5. #5
    Registriert seit
    08.09.2006
    Beiträge
    170
    Danke
    4
    Erhielt 26 Danke für 16 Beiträge

    Standard

    Zitat Zitat von AutoSPy Beitrag anzeigen
    Damit man Interrupts (Alarme) überhaupt sinnvoll einsetzen kann, muss das Betriebssystem der S7 alle zentralen Register (AKKUs, ARs) und Flags retten und nach Bearbeitung des Interrupt-Handlers (OB) wiederherstellen. Auch wenn diese Behauptung zwingend ist, habe ich keine passende Stelle in einem Siemens-Handbuch gefunden, die das belegt. Mit SFC41 und SFC42 kann die Alarmbearbeitung verzögert und wieder freigegeben werden (Interrupt-freie Zone). Auch wenn Du Dich nicht um die CPU-internen Register kümmern musst - gemeinsame Speicherbereiche wie Merker, DBs, etc. könnten sich nach dem Interrupt schon geändert haben.

    Viele Grüße,
    Jens
    Eine Unterbrechung einer Prioritätsebene (z.B. OB1) durch eine andere führt NICHT zum Verlust der Register. Es werden alle Restauriert.

    Der Aufruf eines FBs oder FCs innerhalb einer Prioritätsebene sichert aber nur die DB Register/DI Register/ Local-Stack-Pointer/V-Stack-Pointer und noch ein paar Kleinigkeiten.
    NICHT die ARs.
    Das Statusregister wird bei der Rückkehr aus dem Baustein auf einen fixen Wert gesetzt, geht also auch verloren.

  6. #6
    Registriert seit
    08.07.2011
    Beiträge
    37
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Longbow Beitrag anzeigen
    Eine Unterbrechung einer Prioritätsebene (z.B. OB1) durch eine andere führt NICHT zum Verlust der Register. Es werden alle Restauriert.

    Der Aufruf eines FBs oder FCs innerhalb einer Prioritätsebene sichert aber nur die DB Register/DI Register/ Local-Stack-Pointer/V-Stack-Pointer und noch ein paar Kleinigkeiten.
    NICHT die ARs.
    Das Statusregister wird bei der Rückkehr aus dem Baustein auf einen fixen Wert gesetzt, geht also auch verloren.
    Das ist so ziemlich die Antwort die ich hören wollte, auch wenn es nicht unbedingt der Inhalt ist, den ich hören wollte.

    Also mit anderen Worten bin ich einfach darauf angewiesen, dass der Rest des Programms (andere OBs) so programmiert ist, dass die ARs nicht verloren gehen?

  7. #7
    Registriert seit
    08.09.2006
    Beiträge
    170
    Danke
    4
    Erhielt 26 Danke für 16 Beiträge

    Standard

    Zitat Zitat von FinalMistery Beitrag anzeigen
    Das ist so ziemlich die Antwort die ich hören wollte, auch wenn es nicht unbedingt der Inhalt ist, den ich hören wollte.

    Also mit anderen Worten bin ich einfach darauf angewiesen, dass der Rest des Programms (andere OBs) so programmiert ist, dass die ARs nicht verloren gehen?
    Die OBs managed das S7-Betriebssystem (also keine Änderung an den ARs), aber die FBs und FCs die man zwischen den beiden Zugriffen auf die ARs benutzt sichern entweder selbständig die ARs oder lassen die Finger davon (oder Ändern sie eben bleibend).

  8. #8
    Registriert seit
    19.12.2008
    Beiträge
    336
    Danke
    19
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Hat Nordischerjung nicht die Antwort schon gegeben ?
    Ein Interrupt-OB würde ja auch bei Aufruf die AR's sichern und kurz vor Ende wieder zurückschreiben können ...

  9. #9
    Registriert seit
    08.07.2011
    Beiträge
    37
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Lupo Beitrag anzeigen
    Hat Nordischerjung nicht die Antwort schon gegeben ?
    Ein Interrupt-OB würde ja auch bei Aufruf die AR's sichern und kurz vor Ende wieder zurückschreiben können ...
    Ja da hast Du recht. Nur habe ich die Interrupt-OBs ja nicht programmiert und wollte wissen wie sicher man gegenüber einem Interrupt ist wenn er ausgelöst wird.
    Aber ich glaube ich habe mittlerweile ein paar gute Antworten bekommen

  10. #10
    Registriert seit
    08.09.2006
    Beiträge
    170
    Danke
    4
    Erhielt 26 Danke für 16 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Lupo Beitrag anzeigen
    Hat Nordischerjung nicht die Antwort schon gegeben ?
    Ein Interrupt-OB würde ja auch bei Aufruf die AR's sichern und kurz vor Ende wieder zurückschreiben können ...
    OBs und FBs/FCs verhalten sich beim Sichern der Register unterschiedlich, dass kam aus den anderen Posts nicht so deutlich raus. IMHO

Ähnliche Themen

  1. Baustein konsistenz prüfen
    Von Züttu im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 25.04.2011, 23:44
  2. Antworten: 9
    Letzter Beitrag: 06.08.2010, 13:26
  3. Hardwarekonfig - Konsistenz prüfen - Absturz
    Von Grubba im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.02.2010, 10:12
  4. Baustein Konsistenz. Was ist das?
    Von ottopaul im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 24.10.2007, 09:37
  5. Antworten: 6
    Letzter Beitrag: 31.12.2006, 20:42

Lesezeichen

Berechtigungen

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