# Fehler Auswerten mit OB82/86



## Ricko (7 Oktober 2009)

Hallo SPS_ler!

ich möchte einfache Fehler im OB82 (Spannung fehlt) und im OB86 (Teilnehmer Ausfall) auswerten.

Die Anlage besteht nur aus 2 CPU 315-2DP (Master/Slave).
Die fehlende Steuerspannung (24V) soll mit Hilfe Diagnosefähiger AE Baugruppe gemeldet werden. Fehler Anzeige an dem MPanel.

*Im OB82*
L #OB82_FLT_ID
L B#16#42
== I
S M1.1 (wird angezeigt), aber wie setze ich ihn zurück ?


oder 
U #OB82_EXT_VOLTAGE
= M1.2 (wird angezeigt), brauche es nicht RS !?

Muss ich alle Fehler auswerten damit die CPU nicht in STOP geht?


*Im OB86*
L #OB86_FLT_ID
L B#16#C4 (Ausfall einer Station)
== I
= M1.3 (wird nicht angezeigt!)

oder sollte ich den FC3 (DP_DIAG) nehmen?

Auf dem Master zeigt dann den Slave Ausfall und umgekehrt?


Grüße
Ricko


----------



## wolder (7 Oktober 2009)

> Muss ich alle Fehler auswerten damit die CPU nicht in STOP geht?



Nein. Wenn ein Fehler auftritt, dann versucht die CPU den Fehler-OB aufzurufen.
Ist dieser nicht vorhanden geht Sie in den meisten Fällen auf STOP.
Ist dieser in der Steuerung vorhanden, dann geht die CPU nicht in STOP.

Wenn du willst, dass sie in STOP geht, dann mußt du ihr das sagen.

```
call sfc46 "STP"
```

gruß wolder


----------



## Ricko (7 Oktober 2009)

wolder!

in Ordnung.
Aber warum wird mein M1.3 (Profibusfehler) nicht angezeigt obwohl z.Z. der Slave fehlt!   CPU am Master zeigt SF/BF 

Ricko


----------



## Bernard (7 Oktober 2009)

*Fehlerauswertung OB86*

Dieses Beispiel gibt Aufgrund eines Stationsausfalles ein Bit aus (#Kommender_Fehler=1).
Desweiteren enthält das Byte #NR_ST die Nummer der ausgefallenen Station.
Über die Bedeutung von LB11 lies bitte die Doku OB86.Es beinhaltet die Nummer der Station.

```
// wenn eine Station ausfälllt gebe ein Bit 1=aktiv aus
L #OB86_FLT_ID // Auswertung Fehler kommend
L W#16#39
= #Fehler_Ereignis_ID_kommt
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
L #OB86_FLT_IDL  // Auswertung Fehler ID w#16#c4 Ausfall einer DP Station Fehler kommend
L B#16#C4
==I 
U #Fehler_Ereignis_ID_kommt
= #Kommender_Fehler //Bitzuweisung bool
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
L #OB86_FLT_ID // Auswertung Fehler ID w#16#c4 Ausfall einer DP Station Fehler gehend
L B#16#C4
UN #Fehler_Ereignis_ID_kommt
==I 
R #Kommender_Fehler //Bitzuweisung bool
//Auswertung Nr der Ausgefallenen DP Station
L 0 //Vorbelegung der ausgefallenen Stationnummer mit 0
T #NR_ST //Nummer der DP Station ablage in Byte
CLR 
U #Kommender_Fehler // wenn kein Stationsausfall Ende
SPBN m001
L LB 11 // Nummer der ausgefallenen Station 
T #NR_ST
m001: NOP 0
```


----------



## OHGN (7 Oktober 2009)

So sollte es auch funktionieren:


```
U(
L #OB86_FLT_ID
L B#16#C4                //Ausfall einer Station
== I
)
U(
L #OB86_EV_CLASS
L B#16#39                //kommendes Ereignis
== I
)
S  M1.3

U(
L #OB86_FLT_ID
L B#16#C4                //Ausfall einer Station
== I
)
U(
L #OB86_EV_CLASS
L B#16#38                //gehendes Ereignis
== I
)
R  M1.3
```
Wenn es nur einen Slave im Mastersystem gibt, erübrigt sich ja die Ermittlung der Adresse des ausgefallenen Teilnehmers.


----------



## Ralle (7 Oktober 2009)

OHGN schrieb:


> So sollte es auch funktionieren:
> 
> 
> ```
> ...



Sieh auf jeden Fall auch noch eine Möglichkeit vor, den Fehler (M1.3) außerhalb des OB zurückzusetzen. Ich habe es schon erlebt, daß ein gehendes Ereignis vom OB nicht registriert wurde und der Fehlermerker ist dann nicht mehr wegzubekommen, außer, ein neuer Fehler tritt auf. Außerdem gibt es von Siemens fertige Fehler-FC/FB, die dir ziemlich gute Auskünfte geben, aber ein wenig Zykluszeit konsumieren. Die alten FC/FB waren die FC125, FB125, die Neuen sind glaube ich FC126,FB126)


----------



## Bernard (7 Oktober 2009)

*Sieh auf jeden Fall auch noch eine Möglichkeit Fc125,FB125,FB126*

Die von Siemens können auch nicht Zaubern.
Wenn das AS einen Fehler nicht registriert,werden die angegeben Bausteine auch nicht gestartet.


----------



## Ralle (7 Oktober 2009)

Bernard schrieb:


> Die von Siemens können auch nicht Zaubern.
> Wenn das AS einen Fehler nicht registriert,werden die angegeben Bausteine auch nicht gestartet.



Und was willst du uns damit nun genau sagen?


----------



## Bernard (7 Oktober 2009)

*Und was willst du uns damit nun genau sagen?*

Wenn ein Fehler geht und die SPS das Ereignis nicht erkennt,weden die entsprechenden OB`s auch  nicht gestartet.Somit auch nicht fc125,fb125,fb126.Ausserdem kann man dann nicht innerhalb der OB`s  diffenzieren ob die SPS in STOP gehen soll oder nicht.Das muß dann wieder händisch in den OB`s nachprogrammiert werden. Lange Rede kurzer Sinn,
wenn das System auf die eigenen Bedürfnisse angepasst werden soll, kommt man nicht darum hin,sich mit den Deklarationen der OB`s auseinanderzusetzen.

Viele Grüße Bernard


----------



## Ralle (7 Oktober 2009)

Bernard schrieb:


> Wenn ein Fehler geht und die SPS das Ereignis nicht erkennt,weden die entsprechenden OB`s auch  nicht gestartet.Somit auch nicht fc125,fb125,fb126.Ausserdem kann man dann nicht innerhalb der OB`s  diffenzieren ob die SPS in STOP gehen soll oder nicht.Das muß dann wieder händisch in den OB`s nachprogrammiert werden. Lange Rede kurzer Sinn,
> wenn das System auf die eigenen Bedürfnisse angepasst werden soll, kommt man nicht darum hin,sich mit den Deklarationen der OB`s auseinanderzusetzen.
> 
> Viele Grüße Bernard



Ich hab noch nie eine SPS als Fehlerreaktion absichtlich (  )in den Stop geschickt. Wenn schon, dann schalte ich die Anlage aus, aber nie die SPS in Stop. Der FB125 liefert eigentlich fast alle nur möglichen Informationen, schon fast zu viele, daher nutzen einige ja den FC125. Bisher hat der mein Informationsbedürfnis und das der Kunden immer eher übererfüllt.  Ich sehe keinen Grund, außer bei älteren VIPA, bei denen der FB nicht funktioniert, da um jeden Preis selbst Hand anzulegen. Ok, Zykluszeit sparen, das wäre der einzige Grund.


----------



## Bernard (7 Oktober 2009)

*Ich hab noch nie eine SPS als Fehlerreaktion absichtlich (  )in den Stop geschickt*

Ich schon,um mir im Inbetriebnahmefall nicht die Diagnosedaten zu zerschrotten(B_Stack,U_Stack).


----------



## mitchih (7 Oktober 2009)

Ralle schrieb:


> Ok, Zykluszeit sparen, das wäre der einzige Grund.



Setz du nicht auch viele Vipa CPU`s ein??

Die sind ja eher zu schnell als zu langsam. ;-)


----------



## Ralle (7 Oktober 2009)

Bernard schrieb:


> Ich schon,um mir im Inbetriebnahmefall nicht die Diagnosedaten zu zerschrotten(B_Stack,U_Stack).



Wir sprachen ja auch von regulären Betrieb der SPS und nicht davon, den OB82 für die IBN zu präparieren.


----------



## Bernard (7 Oktober 2009)

*Setz du nicht auch viele Vipa CPU`s ein??*

Nein,hauptsächlich CPU315 2 PN/DP oder neuerdings WINAC 2008 RTX.
Die Soft SPS allerdings erst einmal nur zum testen im Büro


----------



## Bernard (7 Oktober 2009)

*Wir sprachen ja auch von regulären Betrieb der SPS und nicht davon, den OB82 für die*

Egal welcher Betrieb auch Immer.Meines Erachtens sollte ein S7-Programmierer in der Lage sein ,den OB-Deklarationsteil auszuwerten.
Die Frage des Themenstarters bezog sich auf die Fehlerauswertung mittels Deklarationsteil der OB`s.Nichts gegen die FC-FB von Siemens,aber wer den allgemeinen Ablauf nicht versteht,dem ist damit nicht unbedingt geholfen.

Viele Grüß Bernard


----------



## wolder (8 Oktober 2009)

Ich hab auch immer mit den Temporären Variablen gearbeitet.
Jetzt such ich die FC125,FB125... um die mal auszuprobieren.

Wo sind die zu finden?
In den Bibliotheken kann ich die nicht finden, oder muß ich mir die irgendwo bei Siemens runterladen?

Gruß wolder


----------



## Ralle (8 Oktober 2009)

wolder schrieb:


> Ich hab auch immer mit den Temporären Variablen gearbeitet.
> Jetzt such ich die FC125,FB125... um die mal auszuprobieren.
> 
> Wo sind die zu finden?
> ...



Den FB125 bekommst du bei Siemens nicht mehr, aber den Nachfolger: http://support.automation.siemens.com/WW/view/de/387257

Den alten FB bekommst du hier (1. Downloadlink): FB125


----------



## Larry Laffer (8 Oktober 2009)

Bernard schrieb:


> Egal welcher Betrieb auch Immer.Meines Erachtens sollte ein S7-Programmierer in der Lage sein ,den OB-Deklarationsteil auszuwerten.


... wenn er sich denn sinnvoll auswerten läßt ...
Ich hatte irgendwann auch einmal versucht mittels der Ereignis-Bits /-Bytes eine Fehler-Auswertung zu programmieren. Die hat nicht unbedingt immer sauber funktioniert. Das hat sich dann gelegt, wo ich die Bausteine von Siemens dafür eingesetzt habe - bei mir war es dann der FC125 (der reichte mir völlig). Hier gibt es dann allerdings auch den signifikanten Unterschied. Der FC125 wertet gar nicht irgendwelche OB-Bits aus sondern der wird nur angetriggert und holt sich seine Infos mittels des SFC51 für jeden Teilnehmer und korrigiert seinen gespeicherten Status dann auch entsprechend.

Gruß
LL


----------

