Step 7 Erfahrungswerte Indirekte Adressierung bei Verwendung von Weckalarmen

Michael-FCK

Level-1
Beiträge
8
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich stehe gerade vor der Aufgabe einen FILO-Speicher zu erstellen.
Als Basis hierfür nehme ich die FAQ http://www.sps-forum.de/faq/8887-pointer-zeiger-fifo-lifo.html?highlight=filo

Die Bearbeitung erfolgt immer mit dem Befehl "AUF #DB" am Anfang.

Wir hatten bereits mal Probleme, dass bei der Verwendung der Indirekten Adressierung mit vorherigem öffnen des Datenbausteins die Abarbeitung sporadisch fehlerhaft wurde, wenn die Abarbeitung des OB1 durch einen Weckalarm (z.B. OB35) unterbrochen wurde.
Aus diesem Grund sind wir bei uns angehalten die Programme ohne indirekte Adressierung auszuführen.

Irgendwo hier im Form habe ich gelesen, dass beim Unterbrechen des OBs alle Daten gesichert werden und nach beenden des Weckalarms diese Daten wieder geladen werden. Im Grunde müsste das OB1-Programm doch dann nach Ende des Unterbrechenden OBs wieder genau so weiterarbeiten, wie wenn es nicht durch einen anderen OB unterbrochen wurde.

Hat dazu vielleicht noch jemand Erfahrungwerte oder eine Idee, an was das liegen kann? Die Daten, die im durch den OB1 aufgerufenen FC verwendet werden, werden im unterbrechenden Weck-Alarm nicht verwendet und auch nicht verändert.
(Die Probleme sind auf einer 317-2 PN/DP aufgetreten)

Wenn man den Fehler ausschließen kann, würde der Verwendung mit dieser Art der Adressierung im Prinzip nichts im Wege stehen.


Michael
 
Moin,
ich kann mir vorstellen, dass wenn ich im OB35 einen anderen DB öffne, dass es zu einem solchen Fehlverhalten kommen kann.
Wenn ich im OB35 keine DB öffne sollte es dazu nicht kommen dürfen.
Kann man aber leicht testen..
2 versch. DB mit jeweils zwei bool (default 0), der OB 1 macht db1 auf und schreibt nach einer zeit von vll 5sec ins erste bool eine 1, der OB35 öffnet das 2.db und schreibt auf das 2. bool eine 1.
Wenn der erste bool im 2. db iwann eine 1 hast, hat sich dein verdacht bestätigt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Normalerweise ist es so: Wenn ein OB das laufende Programm unterbricht, dann werden alle Register und Stacks gesichert und danach wieder hergestellt. Das unterbrochene Programm kriegt gar nicht mit, daß es unterbrochen wurde (es sei denn, es kommuniziert absichtlich mit dem unterbrechenden OB über globale Variablen oder fragt Systemzeiten ab). Indirekte Adressierung wird nicht von Unterbrechungen beeinflußt.

Bei Dir könnte die Ursache ein Firmwarefehler sein, der in der V3.2.8 gefixt wurde.
Betriebssystem-Updates für CPU 317-2 PN/DP (6ES7317-2EK14-0AB0)
Mit dem Firmware-Update V3.2.8 werden die folgenden Änderungen wirksam:
  • ...
  • AUF DB/DI indirekt führt nicht mehr sporadisch dazu, dass ein falscher DB geöffnet wird.

Harald
 
Hallo Harald,

vielen Dank für den Hinweis. Beim nächsten Einsatz dort müssen wir dann einmal auf die Firmwareversion achten. Die CPU auf der Anlage wurde im Dezember 2011 durch Siemens ausgeliefert. Aktuell können wir nicht nachvollziehen, welche Firmware dort eingesetzt ist.

@elektrowolf
Wir haben hier im Büro eine 317-2PNDP liegen. Beim Test ist jetzt unter mehrerern Konstellationen nichts aufgetaucht. Aber der Fehler, der auf besagter Anlage aufgetaucht ist hatten wir vorher auch noch auf keiner Anlage. Und die Funktionalität ist jahrelang auf dieversen anderen Anlagen Einwandfrei gelaufen. Ich denke Harald hat hier den entscheidenden Hinweis geliefert.

Michael
 
Zurück
Oben